summaryrefslogtreecommitdiff
path: root/guix-web/view/html.scm
diff options
context:
space:
mode:
authorDavid Thompson <dthompson2@worcester.edu>2015-01-30 23:52:52 -0500
committerDavid Thompson <dthompson2@worcester.edu>2015-01-30 23:56:23 -0500
commit05664ee58924c39d641db83c63e44d4d7579b641 (patch)
tree634448e0f194b94cd590d427b6da75d05f93c870 /guix-web/view/html.scm
parent16001bd47e035475888f5bb1396a4a3d48a20084 (diff)
Render package details on the client.
* js/routes.js: Add new route. * js/controller/packageInfo.js: New file. * js/view/packageInfo.js: New file. * js/model/packages.js (guix.packages.PackagesByName): New function. * js/view/ui.js (guix.ui.licenseList): New function. * js/view/packages.js (guix.packages.view): Render package links as Mithril URLs. Remove factorized inner 'renderLicese' function. * guix-web/view/html.scm (javascripts): Add new JS files. (view-package): Delete.
Diffstat (limited to 'guix-web/view/html.scm')
-rw-r--r--guix-web/view/html.scm61
1 files changed, 5 insertions, 56 deletions
diff --git a/guix-web/view/html.scm b/guix-web/view/html.scm
index c72421a..83ff226 100644
--- a/guix-web/view/html.scm
+++ b/guix-web/view/html.scm
@@ -51,11 +51,13 @@
(javascript "/js/view/ui.js" agpl3+)
(javascript "/js/view/layout.js" agpl3+)
(javascript "/js/model/packages.js" agpl3+)
- (javascript "/js/view/packages.js" agpl3+)
- (javascript "/js/controller/packages.js" agpl3+)
(javascript "/js/model/generations.js" agpl3+)
- (javascript "/js/view/generations.js" agpl3+)
+ (javascript "/js/controller/packages.js" agpl3+)
+ (javascript "/js/controller/packageInfo.js" agpl3+)
(javascript "/js/controller/generations.js" agpl3+)
+ (javascript "/js/view/packages.js" agpl3+)
+ (javascript "/js/view/packageInfo.js" agpl3+)
+ (javascript "/js/view/generations.js" agpl3+)
(javascript "/js/routes.js" agpl3+)))
(define stylesheets
@@ -98,59 +100,6 @@
(define (all-packages)
(main-layout "Packages" (map render-javascript javascripts)))
-;; This should be moved client-side and the server should just serve
-;; the relevant JSON.
-(define (view-package name)
- (define (describe-inputs package package-inputs description)
- (define (describe-input input)
- `(li
- (a (@ (href ,(string-append
- "/"
- (encode-and-join-uri-path
- `("package" ,(package-name input))))))
- ,(string-append (package-name input) " "
- (package-version input)))))
- (let ((inputs (package-inputs package)))
- (if (null? inputs)
- '()
- `((dt ,description)
- (dd (ul ,@(map describe-input
- (filter package?
- (map second inputs)))))))))
-
- (define (describe-package package)
- `(dl
- (dt "Version")
- (dd ,(package-version package))
- (dt "Synopsis")
- (dd ,(package-synopsis package))
- (dt "Description")
- (dd ,(package-description package))
- (dt "License")
- (dd ,(render-package-license package))
- ,@(describe-inputs package package-inputs "Inputs")
- ,@(describe-inputs package package-native-inputs "Native Inputs")
- ,@(describe-inputs package package-propagated-inputs
- "Propagated Inputs")))
-
- (let ((packages (find-packages-by-name name)))
- (define (format-package-count)
- (let ((count (length packages)))
- (format #f "~d ~a"
- count
- (if (> count 1)
- "versions"
- "version"))))
-
- (main-layout
- name
- `((h1 ,name (span (@ (class "badge"))
- ,(format-package-count)))
- (ul (@ (class "list-unstyled"))
- ,@(map (lambda (p)
- `(li ,(describe-package p)))
- packages))))))
-
(define (librejs)
(define (weblabel js)
(let ((source (javascript-source-uri js)))