用户中心减层:收敛本人入口与 panel 契约
This commit is contained in:
@@ -18,6 +18,8 @@
|
||||
var settingsNonce = cfg.settingsNonce || '';
|
||||
var userId = cfg.userId || 0;
|
||||
var i18n = cfg.i18n || {};
|
||||
var tabAliases = cfg.tabAliases || {};
|
||||
var tabUrls = cfg.tabUrls || {};
|
||||
|
||||
/* ==================== Dashboard 导航 ==================== */
|
||||
function initDashboardNavigation() {
|
||||
@@ -54,6 +56,10 @@
|
||||
|
||||
function switchTo(name) {
|
||||
if (!panels[name]) name = defaultTab;
|
||||
if (panels[name].panel.dataset.panelLoaded === 'false') {
|
||||
window.location.assign(tabUrls[name] || panels[name].panel.dataset.tabUrl || ('?tab=' + encodeURIComponent(name)));
|
||||
return;
|
||||
}
|
||||
|
||||
Object.keys(panels).forEach(function(key) {
|
||||
var active = key === name;
|
||||
@@ -72,10 +78,8 @@
|
||||
|
||||
function tabFromUrl() {
|
||||
var m = window.location.search.match(/[?&]tab=([^&]+)/);
|
||||
var name = m ? decodeURIComponent(m[1]) : defaultTab;
|
||||
if (name === 'signin') return 'credits';
|
||||
if (name === 'invite') return 'settings';
|
||||
return name;
|
||||
var name = m ? decodeURIComponent(m[1]) : (cfg.activeTab || defaultTab);
|
||||
return tabAliases[name] || name;
|
||||
}
|
||||
|
||||
function updateUrl(name) {
|
||||
@@ -90,16 +94,20 @@
|
||||
}
|
||||
|
||||
tabs.forEach(function(tab) {
|
||||
tab.addEventListener('click', function() {
|
||||
tab.addEventListener('click', function(e) {
|
||||
var name = this.getAttribute('data-tab');
|
||||
if (!panels[name] || panels[name].panel.dataset.panelLoaded === 'false') return;
|
||||
e.preventDefault();
|
||||
switchTo(name);
|
||||
updateUrl(name);
|
||||
});
|
||||
});
|
||||
|
||||
sidebarBtns.forEach(function(btn) {
|
||||
btn.addEventListener('click', function() {
|
||||
btn.addEventListener('click', function(e) {
|
||||
var name = this.getAttribute('data-tab');
|
||||
if (!panels[name] || panels[name].panel.dataset.panelLoaded === 'false') return;
|
||||
e.preventDefault();
|
||||
switchTo(name);
|
||||
updateUrl(name);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user