diff options
author | Petr Vobornik <pvoborni@redhat.com> | 2013-11-11 15:40:11 +0100 |
---|---|---|
committer | Petr Vobornik <pvoborni@redhat.com> | 2014-04-15 12:41:53 +0200 |
commit | 2680d21402d8ac51146bf03be3c0fd63ab49cada (patch) | |
tree | 44edc1f54346026fad32a4b64137c3014b8228bd /install/ui/src/freeipa/widgets/FacetContainer.js | |
parent | 75eaf0bddfe0ce3eaea86b42a767c16846379b4b (diff) | |
download | freeipa-2680d21402d8ac51146bf03be3c0fd63ab49cada.tar.gz freeipa-2680d21402d8ac51146bf03be3c0fd63ab49cada.tar.xz freeipa-2680d21402d8ac51146bf03be3c0fd63ab49cada.zip |
webui: facet container
A widget which servers as container for facets. FacetContainer is a base
class. App is specialization.
Doing this abstraction will allow us to implement various facet containers.
https://fedorahosted.org/freeipa/ticket/3903
Reviewed-By: Adam Misnyovszki <amisnyov@redhat.com>
Diffstat (limited to 'install/ui/src/freeipa/widgets/FacetContainer.js')
-rw-r--r-- | install/ui/src/freeipa/widgets/FacetContainer.js | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/install/ui/src/freeipa/widgets/FacetContainer.js b/install/ui/src/freeipa/widgets/FacetContainer.js new file mode 100644 index 000000000..d5e6add74 --- /dev/null +++ b/install/ui/src/freeipa/widgets/FacetContainer.js @@ -0,0 +1,88 @@ +/* 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/dom-construct', + 'dojo/dom-style', + 'dojo/Evented', + 'dojo/Stateful', + 'dojo/NodeList-dom' + ], + function(declare, lang, construct, dom_style, + Evented, Stateful) { + + /** + * Container for standalone facets + * + * Main feature is that this container doesn't produce any + * surroundings. Therefore facets can occupy the entire page. + * + * @class widgets.FacetContainer + */ + var FacetContainer = declare([Stateful, Evented], { + + id: 'simple-container', + + //nodes: + dom_node: null, + + container_node: null, + + content_node: null, + + render: function() { + + this.dom_node = construct.create('div', { + id: this.id, + 'class': 'app-container' + }); + + if (this.container_node) { + construct.place(this.dom_node, this.container_node); + } + + this.content_node = construct.create('div', { + 'class': 'content' + }, this.dom_node); + + return this.dom_node; + }, + + show: function() { + if (!this.dom_node) return; + + dom_style.set(this.dom_node, 'display', ''); + }, + + hide: function() { + if (!this.dom_node) return; + + dom_style.set(this.dom_node, 'display', 'none'); + }, + + constructor: function(spec) { + spec = spec || {}; + declare.safeMixin(this, spec); + } + }); + + return FacetContainer; +});
\ No newline at end of file |