From 95d0ed486cc845e8760a491d117ecdea10d9c498 Mon Sep 17 00:00:00 2001 From: John Milmine Date: Thu, 29 Jan 2015 13:18:39 +1300 Subject: [PATCH] fixing tab force active Wasn't getting li, plus was find tabs in child tabsets --- admin/javascript/LeftAndMain.js | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/admin/javascript/LeftAndMain.js b/admin/javascript/LeftAndMain.js index 62e3aa9ce..a4ac01580 100644 --- a/admin/javascript/LeftAndMain.js +++ b/admin/javascript/LeftAndMain.js @@ -813,26 +813,36 @@ jQuery.noConflict(); sessionStates = sessionData ? JSON.parse(sessionData) : false; this.find('.cms-tabset, .ss-tabset').each(function() { - var index, tabset = $(this), tabsetId = tabset.attr('id'), tab, - forcedTab = tabset.find('.ss-tabs-force-active'); + var index, + tabset = $(this), + tabsetId = tabset.attr('id'), + tab, + forcedTab = tabset.children('ul').children('li.ss-tabs-force-active'); if(!tabset.data('tabs')) return; // don't act on uninit'ed controls // The tabs may have changed, notify the widget that it should update its internal state. tabset.tabs('refresh'); - // Make sure the intended tab is selected. + // Make sure the intended tab is selected. Only force the tab on the correct tabset though if(forcedTab.length) { - index = forcedTab.index(); + index = forcedTab.first().index(); } else if(overrideStates && overrideStates[tabsetId]) { tab = tabset.find(overrideStates[tabsetId].tabSelector); if(tab.length) index = tab.index(); } else if(sessionStates) { - $.each(sessionStates, function(i, sessionState) { - if(tabset.is('#' + sessionState.id)) index = sessionState.selected; - }); - } - if(index !== null) tabset.tabs('select', index); + $.each(sessionStates, function(i, state) { + if(tabsetId == state.id) { + tabset.tabs('select', state.selected); + } + }); + + index = null; + } + + if(index !== null) { + tabset.tabs('select', index); + } }); },