summaryrefslogtreecommitdiffstats
path: root/install/static/webui.js
diff options
context:
space:
mode:
authorEndi S. Dewata <edewata@redhat.com>2010-09-27 23:35:09 -0500
committerAdam Young <ayoung@redhat.com>2010-09-28 17:35:23 -0400
commitd201a4350d8ce0adb97e8f161ab916bb6bc066a5 (patch)
tree618d2a9a42a51ce2f20915b2c70cf7a5564ca3f3 /install/static/webui.js
parentc298560a1e733908148224b0fef6cc6042cbbe82 (diff)
downloadfreeipa-d201a4350d8ce0adb97e8f161ab916bb6bc066a5.tar.gz
freeipa-d201a4350d8ce0adb97e8f161ab916bb6bc066a5.tar.xz
freeipa-d201a4350d8ce0adb97e8f161ab916bb6bc066a5.zip
Fixed tab selection on page reload.
jQuery tabs by default will display the first tab, so reloading a page or opening a page from bookmark may not show the active tab correctly. The nav_select_tabs() has been added to get the list of active tabs from the hash values in the URL and then activate the appropriate tabs. It will be called during page initialization and whenever the hash values change. The navigation.js and webui.js has been cleaned up to better utilize jQuery API. jQuery selectors are used to create DOM objects that can be used by subsequent codes. Tab selection handler is now added to the tabs object instead of anchors. The change event no longer needs to be triggered manually.
Diffstat (limited to 'install/static/webui.js')
-rw-r--r--install/static/webui.js18
1 files changed, 9 insertions, 9 deletions
diff --git a/install/static/webui.js b/install/static/webui.js
index e9045574b..aa17b414b 100644
--- a/install/static/webui.js
+++ b/install/static/webui.js
@@ -60,7 +60,6 @@ $(function() {
if (whoami.hasOwnProperty('memberof_rolegroup') &&
whoami.memberof_rolegroup.length > 0){
nav_tabs_lists = admin_tabs_lists;
- window_hashchange(null);
}else{
nav_tabs_lists = self_serv_tabs_lists;
@@ -69,7 +68,11 @@ $(function() {
'details'};
$.bbq.pushState(state);
}
- nav_create(nav_tabs_lists, $('#navigation'), 'tabs');
+
+ var navigation = $('#navigation');
+ nav_create(nav_tabs_lists, navigation, 'tabs');
+ nav_select_tabs(nav_tabs_lists, navigation);
+
$('#login_header').html(ipa_messages.login.header);
}else{
alert("Unable to find prinicpal for logged in user");
@@ -98,11 +101,8 @@ var window_hash_cache = {};
/* main loop (hashchange event handler) */
function window_hashchange(evt)
{
- $('.tabs').each(function () {
- var jobj = $(this);
- var index = $.bbq.getState(jobj.attr('id'), true) || 0;
- jobj.find('ul.ui-tabs-nav a').eq(index).triggerHandler('change');
- });
+ var navigation = $('#navigation');
+ nav_select_tabs(nav_tabs_lists, navigation);
for (var i = 0; i < nav_tabs_lists.length; ++i) {
var t = nav_tabs_lists[i];
@@ -111,7 +111,7 @@ function window_hashchange(evt)
var tt = t[2][j];
var obj_name = tt[0];
var entity_setup = tt[2];
- var div = $('#' + t[0] + ' div[title=' + obj_name + ']');
+ var div = $('#' + tt[0]);
var state = obj_name + '-facet';
var facet = $.bbq.getState(state, true) || 'search';
@@ -133,7 +133,7 @@ function window_hashchange(evt)
var last_pkey = window_hash_cache[state];
if (pkey != last_pkey)
entity_setup(div);
- } else if (facet == 'associate' || facet == 'enroll') {
+ } else if (facet == 'associate') {
state = obj_name + '-enroll';
var enroll = $.bbq.getState(state, true);
var last_enroll = window_hash_cache[state];