From ee61651bc9667462dec8e6dd2e64dbfeb249deed Mon Sep 17 00:00:00 2001 From: Petr Vobornik Date: Tue, 22 Jul 2014 14:15:30 +0200 Subject: 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 --- install/ui/src/freeipa/facet.js | 5 +++++ install/ui/src/freeipa/facets/Facet.js | 5 +++++ 2 files changed, 10 insertions(+) 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 }); }, -- cgit