Files
zulip/static/js/settings_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

48 lines
1.3 KiB
JavaScript

var settings_sections = (function () {
var exports = {};
var load_func_dict = new Dict(); // section -> function
var is_loaded = new Dict(); // section -> bool
exports.initialize = function () {
load_func_dict.set('your-account', settings_account.set_up);
load_func_dict.set('display-settings', settings_display.set_up);
load_func_dict.set('notifications', settings_notifications.set_up);
load_func_dict.set('your-bots', settings_bots.set_up);
load_func_dict.set('alert-words', alert_words_ui.set_up_alert_words);
load_func_dict.set('uploaded-files', attachments_ui.set_up_attachments);
load_func_dict.set('muted-topics', settings_muting.set_up);
load_func_dict.set('zulip-labs', settings_lab.set_up);
};
exports.load_settings_section = function (section) {
if (!load_func_dict.has(section)) {
blueslip.error('Unknown section ' + section);
return;
}
if (is_loaded.get(section)) {
// We only load sections once (unless somebody calls
// reset_sections).
return;
}
var load_func = load_func_dict.get(section);
// Do the real work here!
load_func();
is_loaded.set(section, true);
};
exports.reset_sections = function () {
is_loaded.clear();
};
return exports;
}());
if (typeof module !== 'undefined') {
module.exports = settings_sections;
}