2019-11-02 00:06:25 +01:00
|
|
|
const Dict = require('./dict').Dict;
|
2019-02-08 11:56:33 +01:00
|
|
|
|
2019-11-02 00:06:25 +01:00
|
|
|
const load_func_dict = new Dict(); // group -> function
|
2020-02-01 04:50:07 +01:00
|
|
|
const loaded_groups = new Set();
|
2018-12-08 19:28:26 +01:00
|
|
|
|
|
|
|
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;
|
|
|
|
}
|
|
|
|
};
|
2017-04-07 01:30:13 +02:00
|
|
|
|
|
|
|
exports.initialize = function () {
|
2018-12-08 19:28:26 +01:00
|
|
|
// personal
|
2017-04-07 01:30:13 +02:00
|
|
|
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);
|
2018-12-08 19:28:26 +01:00
|
|
|
|
|
|
|
// 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);
|
2018-12-17 21:28:25 +01:00
|
|
|
load_func_dict.set('filter-settings', settings_linkifiers.set_up);
|
2018-12-08 19:28:26 +01:00
|
|
|
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);
|
2019-04-09 21:49:07 +02:00
|
|
|
load_func_dict.set('data-exports-admin', settings_exports.set_up);
|
2017-04-07 01:30:13 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
exports.load_settings_section = function (section) {
|
2019-11-02 00:06:25 +01:00
|
|
|
const group = exports.get_group(section);
|
2018-12-08 19:28:26 +01:00
|
|
|
|
|
|
|
if (!load_func_dict.has(group)) {
|
2017-04-17 16:51:27 +02:00
|
|
|
blueslip.error('Unknown section ' + section);
|
2017-04-07 01:30:13 +02:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2020-02-01 04:50:07 +01:00
|
|
|
if (loaded_groups.has(group)) {
|
2018-12-08 19:28:26 +01:00
|
|
|
// We only load groups once (unless somebody calls
|
2017-04-07 01:30:13 +02:00
|
|
|
// reset_sections).
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2019-11-02 00:06:25 +01:00
|
|
|
const load_func = load_func_dict.get(group);
|
2017-04-07 01:30:13 +02:00
|
|
|
|
|
|
|
// Do the real work here!
|
|
|
|
load_func();
|
2020-02-01 04:50:07 +01:00
|
|
|
loaded_groups.add(group);
|
2017-04-07 01:30:13 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
exports.reset_sections = function () {
|
2020-02-01 04:50:07 +01:00
|
|
|
loaded_groups.clear();
|
2018-12-08 19:28:26 +01:00
|
|
|
settings_emoji.reset();
|
2019-04-09 21:49:07 +02:00
|
|
|
settings_exports.reset();
|
2018-12-17 21:28:25 +01:00
|
|
|
settings_linkifiers.reset();
|
2018-12-08 19:28:26 +01:00
|
|
|
settings_invites.reset();
|
|
|
|
settings_org.reset();
|
|
|
|
settings_profile_fields.reset();
|
|
|
|
settings_streams.reset();
|
|
|
|
settings_user_groups.reset();
|
|
|
|
settings_users.reset();
|
2017-04-07 01:30:13 +02:00
|
|
|
};
|
|
|
|
|
2019-10-25 09:45:13 +02:00
|
|
|
window.settings_sections = exports;
|