diff options
Diffstat (limited to 'install/ui/navigation.js')
-rw-r--r-- | install/ui/navigation.js | 44 |
1 files changed, 40 insertions, 4 deletions
diff --git a/install/ui/navigation.js b/install/ui/navigation.js index 84df7f4d..72c91426 100644 --- a/install/ui/navigation.js +++ b/install/ui/navigation.js @@ -191,7 +191,7 @@ IPA.navigation = function(spec) { // push entity path and facet state state = {}; - $.extend(state, that.get_path_state(tab.entity.name)); + $.extend(state, that.get_path_state(tab.name)); $.extend(state, facet.state); $.bbq.pushState(state, 2); @@ -206,6 +206,26 @@ IPA.navigation = function(spec) { $.bbq.removeState(key); }; + that.show_tab = function(tab_name, pkey) { + + var tab = that.get_tab(tab_name); + + var state = that.get_path_state(tab.name); + + if (tab.entity) { + + if (tab.facet) { + state[tab.entity.name + '-facet'] = tab.facet; + } + + if (pkey) { + state[tab.entity.name + '-pkey'] = pkey; + } + } + + return that.push_state(state); + }; + that.show_page = function(entity_name, facet_name, pkey) { var state = that.get_path_state(entity_name); @@ -243,6 +263,22 @@ IPA.navigation = function(spec) { return that.push_state(state); }; + that.get_tab_facet = function(tab_name) { + + var facet = null; + var tab = that.get_tab(tab_name); + + if (tab.entity) { + if (tab.facet) { + facet = tab.entity.get_facet(tab.facet); + } else { + facet = tab.entity.get_facet(tab.entity.redirect_facet); + } + } + + return facet; + }; + that.create = function() { @@ -279,7 +315,7 @@ IPA.navigation = function(spec) { } // selection is triggered by mouse click, update the URL state - return that.show_page(name); + return that.show_tab(name); } }); }; @@ -389,8 +425,8 @@ IPA.navigation = function(spec) { that.content); if (!entity_container.length) { tab.content = $('<div/>', { - name: tab.name, - title: tab.label, + name: tab.entity.name, + title: tab.entity.label, 'class': 'entity' }).appendTo(that.content); tab.entity.create(tab.content); |