mirror of
https://github.com/zulip/zulip.git
synced 2025-11-05 06:23:38 +00:00
For the settings UI, we now wait until a user goes to a particular settings section before calling the appropriate function to set up the section (which usually involves setting up click handlers and populating initial data).
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)) {
|
|
// admin sections don't have loaders yet, and that's ok
|
|
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;
|
|
}
|