summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPetr Vobornik <pvoborni@redhat.com>2014-07-22 14:15:30 +0200
committerPetr Vobornik <pvoborni@redhat.com>2014-07-28 10:21:37 +0200
commitee61651bc9667462dec8e6dd2e64dbfeb249deed (patch)
tree9402136c7f32665f41a3392fec57680ae218e7f7
parentf1b4dfcfe1b734520c6c3e950696735919317a16 (diff)
downloadfreeipa-ee61651bc9667462dec8e6dd2e64dbfeb249deed.tar.gz
freeipa-ee61651bc9667462dec8e6dd2e64dbfeb249deed.tar.xz
freeipa-ee61651bc9667462dec8e6dd2e64dbfeb249deed.zip
webui: detach facet nodes
Detach/attach facet nodes when switching facets instead of hiding/showing. Keeps dom-tree more simple. Reviewed-By: Endi Sukma Dewata <edewata@redhat.com>
-rw-r--r--install/ui/src/freeipa/facet.js5
-rw-r--r--install/ui/src/freeipa/facets/Facet.js5
2 files changed, 10 insertions, 0 deletions
diff --git a/install/ui/src/freeipa/facet.js b/install/ui/src/freeipa/facet.js
index 0bb697be0..50c12d49c 100644
--- a/install/ui/src/freeipa/facet.js
+++ b/install/ui/src/freeipa/facet.js
@@ -672,6 +672,8 @@ exp.facet = IPA.facet = function(spec, no_init) {
if (!that.dom_node) {
that.create();
+ } else if (!that.dom_node.parentElement) {
+ construct.place(that.dom_node[0], that.container_node);
}
var state = that.state.clone();
@@ -728,6 +730,9 @@ exp.facet = IPA.facet = function(spec, no_init) {
*/
that.hide = function() {
that.is_shown = false;
+ if (that.dom_node[0].parentElement) {
+ that.container_node.removeChild(that.dom_node[0]);
+ }
that.dom_node.removeClass('active-facet');
};
diff --git a/install/ui/src/freeipa/facets/Facet.js b/install/ui/src/freeipa/facets/Facet.js
index e015329c9..0608ab6fb 100644
--- a/install/ui/src/freeipa/facets/Facet.js
+++ b/install/ui/src/freeipa/facets/Facet.js
@@ -285,6 +285,8 @@ define(['dojo/_base/declare',
if (!this.dom_node) {
this.create();
this.render_children();
+ } else if (!this.dom_node.parentElement) {
+ construct.place(this.dom_node, this.container_node);
}
dom_class.add(this.dom_node, 'active-facet');
@@ -295,6 +297,9 @@ define(['dojo/_base/declare',
* Un-mark itself as active facet
*/
hide: function() {
+ if (this.dom_node.parentElement) {
+ this.container_node.removeChild(this.dom_node);
+ }
dom_class.remove(this.dom_node, 'active-facet');
this.emit('hide', { source: this });
},