diff options
Diffstat (limited to 'js')
-rw-r--r-- | js/lib/mithril.js (renamed from js/mithril.js) | 0 | ||||
-rw-r--r-- | js/lib/underscore.js (renamed from js/underscore.js) | 0 | ||||
-rw-r--r-- | js/packages.js (renamed from js/guix-packages.js) | 22 | ||||
-rw-r--r-- | js/routes.js | 20 | ||||
-rw-r--r-- | js/utils.js | 32 | ||||
-rw-r--r-- | js/view/layout.js | 33 |
6 files changed, 88 insertions, 19 deletions
diff --git a/js/mithril.js b/js/lib/mithril.js index 128d1d4..128d1d4 100644 --- a/js/mithril.js +++ b/js/lib/mithril.js diff --git a/js/underscore.js b/js/lib/underscore.js index 9a4cabe..9a4cabe 100644 --- a/js/underscore.js +++ b/js/lib/underscore.js diff --git a/js/guix-packages.js b/js/packages.js index 437dca1..3ec473a 100644 --- a/js/guix-packages.js +++ b/js/packages.js @@ -15,21 +15,7 @@ // License along with this program. If not, see // <http://www.gnu.org/licenses/>. -var guix = {}; - -guix.chunk = function(array, size) { - return array.reduce(function(memo, value, i) { - var currentSlice = _(memo).last(); - - if(i / size < memo.length) { - currentSlice.push(value); - } else { - memo.push([value]); - } - - return memo; - }, []); -}; +var guix = guix || {}; guix.Packages = function() { return m.request({ method: "GET", url: "packages.json" }); @@ -388,7 +374,7 @@ guix.view = function(ctrl) { return null; } - return [ + return guix.withLayout([ m("h2", [ "Packages", m("span.badge", ctrl.packageCount()) @@ -397,7 +383,5 @@ guix.view = function(ctrl) { renderSearchBox(), renderPackageTable(), renderPagination() - ]; + ]); }; - -m.module(document.getElementById("guix"), guix); diff --git a/js/routes.js b/js/routes.js new file mode 100644 index 0000000..baa03f8 --- /dev/null +++ b/js/routes.js @@ -0,0 +1,20 @@ +// guix-web - Web interface for GNU Guix +// Copyright © 2014 David Thompson <davet@gnu.org> +// +// 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 +// <http://www.gnu.org/licenses/>. + +m.route(document.body, "/", { + "/": guix +}); diff --git a/js/utils.js b/js/utils.js new file mode 100644 index 0000000..6ca5663 --- /dev/null +++ b/js/utils.js @@ -0,0 +1,32 @@ +// guix-web - Web interface for GNU Guix +// Copyright © 2014 David Thompson <davet@gnu.org> +// +// 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 +// <http://www.gnu.org/licenses/>. + +var guix = guix || {}; + +guix.chunk = function(array, size) { + return array.reduce(function(memo, value, i) { + var currentSlice = _(memo).last(); + + if(i / size < memo.length) { + currentSlice.push(value); + } else { + memo.push([value]); + } + + return memo; + }, []); +}; diff --git a/js/view/layout.js b/js/view/layout.js new file mode 100644 index 0000000..310c6c9 --- /dev/null +++ b/js/view/layout.js @@ -0,0 +1,33 @@ +// guix-web - Web interface for GNU Guix +// Copyright © 2014 David Thompson <davet@gnu.org> +// +// 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 +// <http://www.gnu.org/licenses/>. + +var guix = guix || {}; + +guix.withLayout = function(elem) { + return [ + m("nav.navbar.navbar-default.navbar-static-top", { + role: "navigation" + }, m(".container", [ + m(".navbar-header", m("img.logo", { src: "/images/logo.png" })), + m("ul.nav.navbar-nav", [ + m("li.active", m("a", "Packages")), + ]), + m("ul.nav.navbar-nav.navbar-right") + ])), + m(".container", elem) + ]; +}; |