mirror of
https://github.com/zulip/zulip.git
synced 2025-11-05 14:35:27 +00:00
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.
48 lines
1.3 KiB
JavaScript
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;
|
|
}
|