From b8448030adb6fa39b7fc962c4708553eb37aee93 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Fri, 30 Jan 2015 08:47:41 -0500 Subject: js: Extract modal creation function. * js/view/ui.js: New file. * guix-web/view/html.scm (javascripts): Add it. * js/view/packages.js (guix.packages.view): Use 'guix.ui.modal' function. --- guix-web/view/html.scm | 1 + js/view/packages.js | 21 ++++----------------- js/view/ui.js | 38 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 43 insertions(+), 17 deletions(-) create mode 100644 js/view/ui.js diff --git a/guix-web/view/html.scm b/guix-web/view/html.scm index c004ac3..c72421a 100644 --- a/guix-web/view/html.scm +++ b/guix-web/view/html.scm @@ -48,6 +48,7 @@ (list (javascript "/js/lib/underscore.js" expat) (javascript "/js/lib/mithril.js" expat) (javascript "/js/utils.js" agpl3+) + (javascript "/js/view/ui.js" agpl3+) (javascript "/js/view/layout.js" agpl3+) (javascript "/js/model/packages.js" agpl3+) (javascript "/js/view/packages.js" agpl3+) diff --git a/js/view/packages.js b/js/view/packages.js index 2abcf11..a006d29 100644 --- a/js/view/packages.js +++ b/js/view/packages.js @@ -1,5 +1,5 @@ // guix-web - Web interface for GNU Guix -// Copyright © 2014 David Thompson +// Copyright © 2014, 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 @@ -216,22 +216,9 @@ } if(ctrl.phase() != packages.PHASE_NONE) { - return [ - m(".modal-backdrop.in"), - m("div.modal.modal-open", { - style: { - display: "block" - } - }, m(".modal-dialog", [ - m(".modal-content", [ - m(".modal-header", [ - m("h4.modal-title", "Install Packages") - ]), - m(".modal-body", renderBody()), - m(".modal-footer", renderButtons()) - ]) - ])) - ]; + return guix.ui.modal("Install Packages", + renderBody(), + renderButtons()); } return null; diff --git a/js/view/ui.js b/js/view/ui.js new file mode 100644 index 0000000..49b02bc --- /dev/null +++ b/js/view/ui.js @@ -0,0 +1,38 @@ +// 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 ui = guix.ui = {}; + + ui.modal = function(title, body, footer) { + return [ + m(".modal-backdrop.in"), + m("div.modal.modal-open", { + style: { + display: "block" + } + }, m(".modal-dialog", [ + m(".modal-content", [ + m(".modal-header", [ + m("h4.modal-title", title) + ]), + m(".modal-body", body), + m(".modal-footer", footer) + ]) + ])) + ]; + }; +})(); -- cgit v1.2.3