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. --- js/view/packages.js | 21 ++++----------------- js/view/ui.js | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 17 deletions(-) create mode 100644 js/view/ui.js (limited to 'js/view') 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