From 293294f2401f3dac6d07e9af65b5582ba893a777 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Mon, 9 Feb 2015 08:34:37 -0500 Subject: js: Overhaul UI with FRP! * css/guix.css: New loading spinner. * js/lib/kefir.js: New file. * js/model/packages.js (guix.packages.Packages): Cache result. (guix.packages.Sorter, guix.packages.Pager): Delete. (guix.packages.installPackage): New function. * js/utils.js (K): New variable. (guix.withEmit, guix.withEmitAttr, guix.makeModule): New functions. * js/view/ui.js (guix.ui.paginate, guix.ui.spinUntil): New functions. (guix.ui.spinner): New variable. * js/controller/generations.js: Rewrite. * js/controller/packageInfo.js: Rewrite * js/controller/packages.js: Rewrite. * js/view/packages.js: Rewrite. * js/view/generations.js: Delete. * js/view/packageInfo.js: Delete. * js/routes.js: Use new modules. * guix/web/view/html.scm (javascripts): Update list. --- js/view/packageInfo.js | 73 -------------------------------------------------- 1 file changed, 73 deletions(-) delete mode 100644 js/view/packageInfo.js (limited to 'js/view/packageInfo.js') diff --git a/js/view/packageInfo.js b/js/view/packageInfo.js deleted file mode 100644 index 687d145..0000000 --- a/js/view/packageInfo.js +++ /dev/null @@ -1,73 +0,0 @@ -// guix-web - Web interface for GNU Guix -// Copyright © 2015 David Thompson -// -// This program is free software: you can redistribute it and/or -// modify it under the terms of the GNU Affero General Public License -// as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public -// License along with this program. If not, see -// . - -(function() { - var packageInfo = guix.packageInfo; - var spinner = m(".spinner-container", m(".spinner")); - - packageInfo.view = function(ctrl) { - var packages = ctrl.packages(); - var packageCount = (function() { - var count = packages.length; - var units = count > 1 ? " versions" : " version"; - - return count.toString().concat(units); - })(); - - function describeInputs(inputs, description) { - return _.isEmpty(inputs) ? [] : [ - m("dt", description), - m("dd", m("ul", inputs.map(function(p) { - return m("li", m("a", { - config: m.route, - href: "/package/".concat(p.name) - }, p.name.concat(" ").concat(p.version))); - }))) - ]; - } - - function describePackage(package) { - var baseDescription = [ - m("dt", "Version"), - m("dd", package.version), - m("dt", "Synopsis"), - m("dd", package.synopsis), - m("dt", "Description"), - m("dd", package.description), - m("dt", "License"), - m("dd", guix.ui.licenseList(package)) - ]; - var inputs = describeInputs(package.inputs, "Inputs"); - var nativeInputs = describeInputs(package.nativeInputs, - "Native Inputs"); - var propagatedInputs = describeInputs(package.propagatedInputs, - "Propagated Inputs"); - return m("li", - m("dl", _.flatten([ - baseDescription, - inputs, - nativeInputs, - propagatedInputs - ], true))); - } - - return guix.withLayout([ - guix.ui.headerWithBadge(ctrl.name, packageCount), - m("ul.list-unstyled", packages.map(describePackage)) - ]); - }; -})(); -- cgit v1.2.3