webui: load page

Load page is a simple facet which is displayed up to 'runtime' phase.

On application start it tells the user that there is ongoing activity.

https://fedorahosted.org/freeipa/ticket/3903

Reviewed-By: Adam Misnyovszki <amisnyov@redhat.com>
This commit is contained in:
Petr Vobornik
2014-02-14 19:22:22 +01:00
parent a1c2512278
commit cb486136db
6 changed files with 110 additions and 7 deletions

View File

@@ -238,7 +238,8 @@
"aci",
"otptoken",
"radiusproxy",
"user"
"user",
"plugins.load"
]
}
]

View File

@@ -29,4 +29,22 @@
// FreeIPA uses logo with height: 20px instead of 10px.
padding: 2px 0;
}
}
body {
background-color: #1D2226;
background-image: url("../images/login-screen-background.jpg");
background-position: top left;
background-size: auto;
background-repeat: no-repeat;
}
@media (min-width: 1280px) {
body {
background-size: 100% auto;
}
}
#container {
background-color: white;
}

View File

@@ -0,0 +1 @@

View File

@@ -31,12 +31,13 @@ define([
'./widgets/App',
'./widgets/FacetContainer',
'./ipa',
'./reg',
'./navigation/Menu',
'./navigation/Router',
'./navigation/menu_spec'
],
function(declare, lang, array, Deferred, on, topic, query, dom_class,
JSON, App_widget, FacetContainer, IPA, Menu, Router, menu_spec) {
JSON, App_widget, FacetContainer, IPA, reg, Menu, Router, menu_spec) {
/**
* Application controller
@@ -113,6 +114,8 @@ define([
this.app_widget.hide();
simple_container.render();
simple_container.hide();
var load_facet = reg.facet.get('load');
this.show_facet(load_facet);
},
/**
@@ -154,8 +157,12 @@ define([
start_runtime: function() {
this.run_time = new Deferred();
// hide load or login facets
this.hide_facet();
IPA.update_password_expiration();
// now we are ready for displaying a facet,
// it can match a facet if hash is set
this.router.startup();
@@ -282,7 +289,10 @@ define([
},
on_facet_show: function(event) {
var facet = event.facet;
this.show_facet(event.facet);
},
show_facet: function(facet) {
// choose container
var container = this.containers[facet.preferred_container];
@@ -307,11 +317,18 @@ define([
facet.container_node = container.widget.content_node;
on(facet, 'facet-state-change', lang.hitch(this, this.on_facet_state_changed));
}
this.hide_facet();
this.current_facet = facet;
facet.show();
},
hide_facet: function() {
if (this.current_facet) {
this.current_facet.hide();
}
this.current_facet = facet;
facet.show();
this.current_facet = null;
},
_find_menu_item: function(facet) {

View File

@@ -19,9 +19,10 @@
*/
define([
//core
// core
'./app_container',
//entities
'./plugins/load_page',
// entities
'./aci',
'./automember',
'./automount',

View File

@@ -0,0 +1,65 @@
/* 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',
'../phases',
'../reg'
],
function(declare, lang, on, Facet, phases, reg) {
/**
* Load Facet plugin
*
* @class plugins.load
* @singleton
*/
var load = {};
load.facet_spec = {
name: 'load',
preferred_container: 'simple',
widgets: [
{
$type: 'activity',
name: 'activity',
text: 'Loading',
visible: true
}
]
};
phases.on('registration', function() {
var fa = reg.facet;
fa.register({
type: 'load',
factory: Facet,
spec: load.facet_spec
});
});
return load;
});