mirror of
https://github.com/zulip/zulip.git
synced 2025-11-06 15:03:34 +00:00
We move all of its logic into settings_sections. Note that this is slightly more than a refactor. We are slightly more aggressive about resetting sections. For example, if you go into Settings, then exit the overlay, then go into Manage Organization, we will now reset sections for both groups.
89 lines
2.6 KiB
JavaScript
89 lines
2.6 KiB
JavaScript
var settings_sections = (function () {
|
|
|
|
var exports = {};
|
|
|
|
var load_func_dict = new Dict(); // group -> function
|
|
var is_loaded = new Dict(); // group -> bool
|
|
|
|
exports.get_group = function (section) {
|
|
// Sometimes several sections all share the same code.
|
|
|
|
switch (section) {
|
|
case 'organization-profile':
|
|
case 'organization-settings':
|
|
case 'organization-permissions':
|
|
case 'auth-methods':
|
|
return 'org_misc';
|
|
|
|
case 'bot-list-admin':
|
|
case 'user-list-admin':
|
|
case 'deactivated-users-admin':
|
|
return 'org_users';
|
|
|
|
default:
|
|
return section;
|
|
}
|
|
};
|
|
|
|
exports.initialize = function () {
|
|
// personal
|
|
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);
|
|
|
|
// org
|
|
load_func_dict.set('org_misc', settings_org.set_up);
|
|
load_func_dict.set('org_users', settings_users.set_up);
|
|
load_func_dict.set('emoji-settings', settings_emoji.set_up);
|
|
load_func_dict.set('default-streams-list', settings_streams.set_up);
|
|
load_func_dict.set('filter-settings', settings_filters.set_up);
|
|
load_func_dict.set('invites-list-admin', settings_invites.set_up);
|
|
load_func_dict.set('user-groups-admin', settings_user_groups.set_up);
|
|
load_func_dict.set('profile-field-settings', settings_profile_fields.set_up);
|
|
};
|
|
|
|
exports.load_settings_section = function (section) {
|
|
var group = exports.get_group(section);
|
|
|
|
if (!load_func_dict.has(group)) {
|
|
blueslip.error('Unknown section ' + section);
|
|
return;
|
|
}
|
|
|
|
if (is_loaded.get(group)) {
|
|
// We only load groups once (unless somebody calls
|
|
// reset_sections).
|
|
return;
|
|
}
|
|
|
|
var load_func = load_func_dict.get(group);
|
|
|
|
// Do the real work here!
|
|
load_func();
|
|
is_loaded.set(group, true);
|
|
};
|
|
|
|
exports.reset_sections = function () {
|
|
is_loaded.clear();
|
|
settings_emoji.reset();
|
|
settings_filters.reset();
|
|
settings_invites.reset();
|
|
settings_org.reset();
|
|
settings_profile_fields.reset();
|
|
settings_streams.reset();
|
|
settings_user_groups.reset();
|
|
settings_users.reset();
|
|
};
|
|
|
|
return exports;
|
|
}());
|
|
|
|
if (typeof module !== 'undefined') {
|
|
module.exports = settings_sections;
|
|
}
|
|
window.settings_sections = settings_sections;
|