diff options
author | Petr Vobornik <pvoborni@redhat.com> | 2013-11-22 10:18:12 +0100 |
---|---|---|
committer | Petr Vobornik <pvoborni@redhat.com> | 2014-04-15 12:41:54 +0200 |
commit | 7c068f036f64b3b5156862fc2fc5855db612ef2e (patch) | |
tree | 1efbb8fec0c57fe831c5595556984d65de9b232c /install/ui | |
parent | efc9e66f4ddff7c0aaae5d460ab41f6026fbd32d (diff) | |
download | freeipa-7c068f036f64b3b5156862fc2fc5855db612ef2e.tar.gz freeipa-7c068f036f64b3b5156862fc2fc5855db612ef2e.tar.xz freeipa-7c068f036f64b3b5156862fc2fc5855db612ef2e.zip |
webui: login page
A facet with login sreen widget.
https://fedorahosted.org/freeipa/ticket/3903
Reviewed-By: Adam Misnyovszki <amisnyov@redhat.com>
Diffstat (limited to 'install/ui')
-rw-r--r-- | install/ui/doc/categories.json | 3 | ||||
-rw-r--r-- | install/ui/jsl.conf | 1 | ||||
-rw-r--r-- | install/ui/src/freeipa/Application_controller.js | 3 | ||||
-rw-r--r-- | install/ui/src/freeipa/app.js | 1 | ||||
-rw-r--r-- | install/ui/src/freeipa/plugins/login.js | 95 |
5 files changed, 101 insertions, 2 deletions
diff --git a/install/ui/doc/categories.json b/install/ui/doc/categories.json index 8d9fe6888..23792d364 100644 --- a/install/ui/doc/categories.json +++ b/install/ui/doc/categories.json @@ -239,7 +239,8 @@ "otptoken", "radiusproxy", "user", - "plugins.load" + "plugins.load", + "plugins.login" ] } ] diff --git a/install/ui/jsl.conf b/install/ui/jsl.conf index 4bc1fdecb..3e3bec05a 100644 --- a/install/ui/jsl.conf +++ b/install/ui/jsl.conf @@ -137,6 +137,7 @@ +process src/freeipa/dialogs/*.js +process src/freeipa/navigation/*.js +process src/freeipa/facets/*.js ++process src/freeipa/plugins/*.js +process src/freeipa/widgets/*.js +process src/*.js +process ./*.js
\ No newline at end of file diff --git a/install/ui/src/freeipa/Application_controller.js b/install/ui/src/freeipa/Application_controller.js index f67dccf31..135e9be87 100644 --- a/install/ui/src/freeipa/Application_controller.js +++ b/install/ui/src/freeipa/Application_controller.js @@ -331,9 +331,10 @@ define([ this.current_facet = null; }, + _find_menu_item: function(facet) { - var items; + var items = []; // entity facets if (facet.entity) { diff --git a/install/ui/src/freeipa/app.js b/install/ui/src/freeipa/app.js index a28ce8fc0..1915ccbe6 100644 --- a/install/ui/src/freeipa/app.js +++ b/install/ui/src/freeipa/app.js @@ -22,6 +22,7 @@ define([ // core './app_container', './plugins/load_page', + './plugins/login', // entities './aci', './automember', diff --git a/install/ui/src/freeipa/plugins/login.js b/install/ui/src/freeipa/plugins/login.js new file mode 100644 index 000000000..a659faaa9 --- /dev/null +++ b/install/ui/src/freeipa/plugins/login.js @@ -0,0 +1,95 @@ +/* Authors: + * Petr Vobornik <pvoborni@redhat.com> + * + * Copyright (C) 2013 Red Hat + * see file 'COPYING' for use and warranty information + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +define(['dojo/_base/declare', + 'dojo/_base/lang', + 'dojo/on', + '../facets/Facet', + '../auth', + '../phases', + '../reg', + '../widget', + '../widgets/LoginScreen' + ], + function(declare, lang, on, Facet, auth, phases, reg, widget, LoginScreen) { + + /** + * Login Facet plugin + * + * Creates and registers a facet with login page. + * + * @class plugins.login + * @singleton + */ + var login = {}; + + login.facet_spec = { + name: 'login', + preferred_container: 'simple', + widgets: [ + { + $type: 'activity', + name: 'activity', + text: 'Authenticating', + visible: false + }, + { + $type: 'login_screen', + name: 'login_screen' + } + ] + }; + + login.LoginFacet = declare([Facet], { + + can_leave: function() { + return auth.authenticated; + }, + + init: function() { + this.inherited(arguments); + var login_screen = this.get_widget('login_screen'); + var self = this; + on(login_screen, 'logged_in', function(args) { + self.emit('logged_in', args); + }); + + on(this, 'show', function(args) { + login_screen.refresh(); + }); + } + }); + + phases.on('registration', function() { + + var fa = reg.facet; + var w = reg.widget; + + w.register('login_screen', LoginScreen); + + fa.register({ + type: 'login', + factory: login.LoginFacet, + spec: login.facet_spec + }); + }); + + return login; +});
\ No newline at end of file |