summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Fix 404 rendering for static assets.David Thompson2014-10-131-1/+4
| | | | * guix-web/render.scm (render-static-asset): Build proper URI.
* view: Fix 'format' warning.David Thompson2014-10-121-0/+1
| | | | * guix-web/view.scm: Import (ice-9 format).
* Decouple static asset rendering from core server logic.David Thompson2014-10-123-22/+21
| | | | | | | * guix-web/server.scm (file-mime-types, serve-static-asset): Delete. * guix-web/render.scm (file-mine-types): New variable. (render-static-asset): New procedure. * guix-web/controller.scm (controller): Add static asset rendering.
* controller: Use match-lambda.David Thompson2014-10-121-25/+25
| | | | * guix-web/controller.scm (controller): Use 'match-lambda'.
* Add configurable HTTP server port.David Thompson2014-10-123-3/+6
| | | | | | * guix-web/config.scm (guix-web-port): New variable. * guix-web/render.scm (redirect): Use it. * guix-web/server.scm (start-guix-web): Ditto.
* Add development package.David Thompson2014-10-112-0/+31
| | | | | * package.scm: New file. * README.md ('Development'): New section.
* Makefile: Add 'dev-server' target.David Thompson2014-10-112-2/+5
| | | | | * Makefile.am (dev-server): New target. * README.md ('Use'): Document it.
* test: Add coverage for render module.David Thompson2014-09-122-0/+69
| | | | * tests/guix-web/render.scm: New file.
* test: Fix directory? test.David Thompson2014-09-121-2/+2
| | | | * tests/guix-web/util.scm ("directory?"): Use getcwd instead of ".".
* js: Extract more rendering to functions.David Thompson2014-08-301-35/+43
| | | | | * js/guix-packages.js (guix.view): Extract renderPackageTable and renderSearchBox functions.
* Add basic autotools files.David Thompson2014-08-308-6/+130
| | | | | | | | | | * Makefile.am: New file. * autogen.sh: New file. * configure.ac: New file. * env.in: New file. * guile.am: New file. * pre-inst-env.in: New file. * .gitignore: Ignore auto-generated files.
* Ignore .go files.David Thompson2014-08-301-0/+1
| | | | * .gitignore: New file.
* package: Do not open store connection upon module load.David Thompson2014-08-291-14/+14
| | | | | * guix-web/package.scm (%store): Delete it. (package-install): Use with-store.
* Add first unit tests.David Thompson2014-08-291-0/+48
| | | | * tests/guix-web/util.scm: New file.
* README: Add screenshot.David Thompson2014-08-161-0/+2
| | | | * README.md: Add screenshot.
* Use unquote-splicing feature of guile-json 0.4.0.David Thompson2014-08-162-22/+16
| | | | | * README.md ("Dependencies"): Specify guile-json >= 0.4.0. * guix-web/view.scm (package->json): Use unquote-splicing to dedupe code.
* Add a currently useless abort button to the package install modal.David Thompson2014-08-151-1/+1
| | | | * js/guix-packages.js (guix.view): Render abort button in derivation phase.
* Use the current user's guix profile.David Thompson2014-08-151-1/+3
| | | | * guix-web/package.scm (%profile): Use the per-user profile of $USER.
* Tweak messaging during package installation.David Thompson2014-08-151-1/+7
| | | | * js/guix-packages.js (guix.view): Tweak messaging during derivation phase.
* Always return to the first page of results after searching.David Thompson2014-08-151-0/+2
| | | | | * js/guix-packages.js (guix.controller.prototype.doSearch): Reset currentPageIndex to 0.
* Show close button on modal when installation fails.David Thompson2014-08-151-1/+1
| | | | * js/guix-packages.js (guix.view): Show close button on the error phase.
* Wrap controller procedure in a trampoline.David Thompson2014-08-151-1/+1
| | | | * scripts/guix-web: Trampoline it.
* Add basic, hacky package installation.David Thompson2014-08-154-4/+192
| | | | | | | | | | | * guix-web/controller.scm (controller): Add package installation route. * guix-web/package.scm: New file. * guix-web/render.scm (unprocessable-entity, created): New procedures. * js/guix-packages.js (guix.PHASE_NONE, guix.PHASE_PROMPT, guix.PHASE_DERIVATION, guix.PHASE_SUCCESS, guix.PHASE_ERROR): New variables. (guix.controller.phase, guix.controller.selectedPackage): New properties. (guix.controller.prototype.installSelectedPackage): New method. (guix.view): Add modal for package installation UI.
* Better encapsulate JS data types.David Thompson2014-08-131-88/+98
| | | | | * js/guix-packages.js (guix.Sorter, guix.controller): Use module pattern to encapsulate data type creation.
* Make logo link to package list.David Thompson2014-08-131-1/+2
| | | | * guix-web/view.scm (main-layout): Wrap image tag in anchor tag.
* Add javascript record type.David Thompson2014-08-131-15/+31
| | | | | | | | * guix-web/view.scm (<javascript>): New record type. (javascript, javascript?, javascript-source-uri, javascript-license, javascript-license-uri): New procedures. (javascripts): Use javascript constructor. (script-tag, librejs): Use new javascript procedures.
* Add column sorting to package table.David Thompson2014-08-133-9/+66
| | | | | | | | | | | * css/guix.css: New file. * guix-web/view.scm (main-layout): Include guix.css. * js/guix-packages.js (guix.Sorter.prototype.reverse): New method. (guix.controller.sorter): Make property. (guix.controller.columns): New variable. (guix.controller.prototype.paginate): Use sorter property. (guix.controller.prototype.sortBy): New method. (guix.view): Render column sorting UI.
* Add package sorting.David Thompson2014-08-131-0/+12
| | | | | | * guix-packages.js (guix.Sorter): New data type. (guix.Soter.prototype.sort): New method. (guix.controller): Sort by name by default.
* Move pagination function to controller prototype.David Thompson2014-08-131-6/+6
| | | | | | * js/guix-packages.js (guix.paginate): Delete it. (guix.controller): Use new paginate method. (guix.controller.prototype.paginate): New method.
* Add copyright and licensing information to page footer.David Thompson2014-08-111-3/+16
|
* Create utility module.David Thompson2014-08-092-9/+45
| | | | | | * guix-web/server.scm (file-extension, directory?, request-path-components): Delete them. * guix-web/util.scm: New module.
* Fix view-package.David Thompson2014-08-091-1/+2
| | | | * guix-web/view.scm (view-package): Filter out non-package inputs.
* README: Rephrase features.David Thompson2014-08-091-2/+2
| | | | * README.md ("Features"): Rephrase.
* Add JSON endpoint for a specific package name.David Thompson2014-08-092-30/+61
| | | | | | | | * guix-web/controller.scm (controller): Allow use of '.json' file extension. * guix-web/view.scm (view-package-json, license->json, package->json): New procedures. (all-packages-json): Refactor. (view-package): Filter out non-package inputs.
* README: Expand features and wishlist.David Thompson2014-08-091-0/+4
| | | | | * README.md ("Features"): Add LibreJS compatibility. ("Wishlist"): Add more desired features.
* README: Fix formatting of copyright information.David Thompson2014-08-091-0/+1
| | | | * README.md ("Copyright"): Fix formatting.
* Update README.David Thompson2014-08-091-0/+20
| | | | README.md ("Features", "Wishlist", "Dependencies"): New sections.
* Show package inputs when viewing package details.David Thompson2014-08-091-1/+26
| | | | | * guix-web/view.scm (view-package): Display inputs, native inputs, and propagated inputs when present.
* Remove unused variable guix-web-router.David Thompson2014-08-091-16/+1
| | | | * guix-web/config.scm (guix-web-router): Delete it.
* Move controller methods to prototype.David Thompson2014-08-091-24/+24
| | | | | * js/guix-packages.js: Move functions defined on each instance of guix.controller to guix.controller's prototype.
* Add pagination.David Thompson2014-08-091-7/+95
| | | | | | | | | | | | * js/guix-packages.js: (guix.chunk): New function. (guix.paginate): New function. (guix.controller.pages, guix.controller.currentPageIndex, guix.controller.pageSize): New variables. (guix.controller.currentPage, guix.controller.isFirstPage, guix.controller.isLastPage, guix.controller.isCurrentPage, guix.controller.packageCount): New functions. (guix.controller.doSearch): Paginate. (guix.view): Render pagination UI.
* Perform case insensitive search.David Thompson2014-08-081-1/+1
| | | | * js/guix-packages.js: Specify case insensitive mode when creating regexp.
* Add Emacs local variable compile-command setting.David Thompson2014-08-081-0/+1
| | | | * scripts/guix-web: Add it.
* Remove extraneous parens.David Thompson2014-08-081-1/+1
| | | | * scripts/guix-web: Remove them.
* Display visible packages in badge on package search page.David Thompson2014-08-071-1/+1
| | | | * js/guix-packages.js (guix.view): Display ctrl.visiblePackages() in badge.
* Break guix-web script into many modules.David Thompson2014-08-076-239/+361
| | | | | | | | | * guix-web/config.scm: New file. * guix-web/controller.scm: New file. * guix-web/render.scm: New file. * guix-web/server.scm: New file. * guix-web/view.scm: New file. * scripts/guix-web: Remove extracted code.
* Move guix-web to scripts directory.David Thompson2014-08-073-2/+8
| | | | | | | * README.md ("Use"): Update. * guix-web: Moved. * pre-inst-env: New file. * scripts/guix-web: New file.
* Rename guix-web.js to guix-packages.js.David Thompson2014-08-072-3/+8
| | | | | | * guix-web (javascripts): Update. * js/guix-packages.js: New file. * js/guix-web.js: Delete it.
* Allow connections from any computer on the network.David Thompson2014-08-071-1/+4
| | | | * guix-web: use INADDR_ANY for http server addr.
* Rename weblabels to librejs.David Thompson2014-08-071-3/+4
| | | | | | * guix-web (run-route): Call librejs. (weblabels): Renamed. (librejs): New procedure.