Your IP : 18.219.40.177
/**
* Multi load tabs
* @param {object} window global object
* @param {object|function} $ jQuery
* @param {object} EventMgr Event manager
*/
App.MultiLoadTabs = function(window, $, EventMgr) {
'use strict';
var init = function() {
EventMgr.bind('readStorage', loadFromStorage);
EventMgr.bind('loadChildren', loadChildren);
EventMgr.bind('multiLoadTab', loadTabs);
},
pageInfo = window.pageInfo,
loadFromStorage = function(e, data) {
var cookie = data.tabs,
tabsObj;
try {
tabsObj = $.parseJSON(cookie);
EventMgr.trigger('multiLoadTab', { tabs: tabsObj.tabs });
} catch (exp) {}
},
loadTabs = function(e, data) {
var delay = 50,
children,
tabs = data.tabs,
isNotInit = data.isNotInit,
keyVar, len, param, curTab,
urlParams = App.u.parseParams(window.location.search),
showDashboard = (urlParams.sfrom === 'loginform') &&
!(pageInfo.startform !== '' ||
pageInfo.startpage !== 'dashboard');
if (pageInfo.tabPin && pageInfo.tabPin.length > 1 && !isNotInit) {
for (var i = 1, l = pageInfo.tabPin.length; i < l; i++) {
tabs.unshift([pageInfo.tabPin[i]]);
}
}
if (tabs !== null) {
/* jslint forin:true */
for (keyVar in tabs) {
curTab = tabs[keyVar][0];
len = tabs[keyVar].length;
delay += 50;
if (len > 1) {
tabs[keyVar].splice(0, 1);
children = tabs[keyVar];
} else {
children = null;
}
if (typeof curTab.params === 'object') {
if (curTab.beforeRequest) {
EventMgr.trigger('ajaxRequest', {
param: App.u.parseParams(curTab.beforeRequest),
trfunc: 'DoNothing',
queue: 'multiload'
});
}
/* jshint loopfunc:true*/
setTimeout(function(children, curTab) {
return function() {
if (curTab.status === 1 && !showDashboard) {
EventMgr.trigger('ajaxRequest', {
param: curTab.params,
noesc: pageInfo.startform !== '',
invar: { newtab: true, children: children, ignErr: true, __src_func: curTab.menuFunc },
type: 'get',
outtype: 'json',
trfunc: 'ajaxResponse',
queue: 'multiload' });
} else {
if (curTab.title) {
EventMgr.trigger('ajaxResponse', {
newtab: true,
children: children,
ignErr: true,
pin: curTab.pin,
__src_func: curTab.menuFunc,
pinIcon: curTab.pinIcon,
type: 'empty',
title: curTab.title,
urlObj: curTab.params });
}
}
param = null; children = null;
};
} (children, curTab), delay);
}
}
}
data = null;
},
loadChildren = function(e, data) {
var parent = data.parent,
children = data.children,
curTab = children[0],
urlParams = App.u.parseParams(window.location.search),
showDashboard = (urlParams.sfrom === 'loginform') &&
!(pageInfo.startform !== '' ||
pageInfo.startpage !== 'dashboard');
if (children.length > 1) {
children = children.splice(1, 1);
} else {
children = null;
}
if (curTab.beforeRequest) {
EventMgr.trigger('ajaxRequest', {
param: App.u.parseParams(curTab.beforeRequest),
trfunc: 'DoNothing',
queue: 'multiload'
});
}
setTimeout(function(children, parent, curTab) {
return function() {
if (curTab.status === 1 && !showDashboard) {
EventMgr.trigger('ajaxRequest', {
param: curTab.params,
invar: { parent: parent, children: children, ignErr: true, help: curTab.help },
type: 'get',
noesc: pageInfo.startform !== '',
outtype: 'json',
trfunc: 'ajaxResponse',
queue: 'multiload' });
EventMgr.trigger('tabLoading', { tabId: parent });
} else {
EventMgr.trigger('ajaxResponse', {
parent: parent,
children: children,
ignErr: true,
help: curTab.help,
type: 'empty',
title: curTab.title,
pinIcon: curTab.pinIcon,
urlObj: curTab.params });
}
};
} (children, parent, curTab), 50);
};
return {
init: init
};
}(window, $, EventMgr);