Files
zulip/static/js/admin_sections.js
Steve Howell 22e21cddcb admin/settings: Lazy-load Organization sections.
We now wait to load Organization sections until you
click on the section (or virtually click by using arrow
keys).

Some of the sections are coupled in terms of their setup,
so some sections will already be loaded if you had clicked
on a related section.
2017-04-17 20:55:42 -07:00

80 lines
1.8 KiB
JavaScript

var admin_sections = (function () {
var exports = {};
var is_loaded = new Dict(); // section -> bool
exports.load_admin_section = function (name) {
var section;
switch (name) {
case 'organization-settings':
case 'auth-methods':
section = 'org';
break;
case 'emoji-settings':
section = 'emoji';
break;
case 'bot-list-admin':
case 'user-list-admin':
case 'deactivated-users-admin':
section = 'users';
break;
case 'streams-list-admin':
case 'default-streams-list':
section = 'streams';
break;
case 'filter-settings':
section = 'filters';
break;
default:
blueslip.error('Unknown admin id ' + name);
return;
}
if (is_loaded.get(section)) {
// We only load sections once (unless somebody calls
// reset_sections).
return;
}
switch (section) {
case 'org':
settings_org.set_up();
break;
case 'emoji':
settings_emoji.set_up();
break;
case 'users':
settings_users.set_up();
break;
case 'streams':
settings_streams.set_up();
break;
case 'filters':
settings_filters.set_up();
break;
default:
blueslip.error('programming error for section ' + section);
return;
}
is_loaded.set(section, true);
};
exports.reset_sections = function () {
is_loaded.clear();
settings_org.reset();
settings_emoji.reset();
settings_users.reset();
settings_streams.reset();
settings_filters.reset();
};
return exports;
}());
if (typeof module !== 'undefined') {
module.exports = admin_sections;
}