diff options
author | David Thompson <dthompson2@worcester.edu> | 2015-01-30 23:52:52 -0500 |
---|---|---|
committer | David Thompson <dthompson2@worcester.edu> | 2015-01-30 23:56:23 -0500 |
commit | 05664ee58924c39d641db83c63e44d4d7579b641 (patch) | |
tree | 634448e0f194b94cd590d427b6da75d05f93c870 /guix-web/view/html.scm | |
parent | 16001bd47e035475888f5bb1396a4a3d48a20084 (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.scm | 61 |
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))) |