summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
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.js20
-rw-r--r--js/utils.js32
-rw-r--r--js/view/layout.js33
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)
+ ];
+};