var settings = (function () { var exports = {}; var header_map = { "your-account": i18n.t("Your account"), "display-settings": i18n.t("Display settings"), notifications: i18n.t("Notifications"), "your-bots": i18n.t("Your bots"), "alert-words": i18n.t("Alert words"), "uploaded-files": i18n.t("Uploaded files"), "muted-topics": i18n.t("Muted topics"), "organization-profile": i18n.t("Organization profile"), "organization-settings": i18n.t("Organization settings"), "organization-permissions": i18n.t("Organization permissions"), "emoji-settings": i18n.t("Emoji settings"), "auth-methods": i18n.t("Authorization methods"), "user-list-admin": i18n.t("Active users"), "deactivated-users-admin": i18n.t("Deactivated users"), "bot-list-admin": i18n.t("Bot list"), "default-streams-list": i18n.t("Default streams"), "filter-settings": i18n.t("Filter settings"), "invites-list-admin": i18n.t("Invitations"), "user-groups-admin": i18n.t("User groups"), "profile-field-settings": i18n.t("Profile field settings"), }; $("body").ready(function () { var $sidebar = $(".form-sidebar"); var $targets = $sidebar.find("[data-target]"); var $title = $sidebar.find(".title h1"); var is_open = false; var close_sidebar = function () { $sidebar.removeClass("show"); $sidebar.find("#edit_bot").empty(); is_open = false; }; exports.trigger_sidebar = function (target) { $targets.hide(); var $target = $(".form-sidebar").find("[data-target='" + target + "']"); $title.text($target.attr("data-title")); $target.show(); $sidebar.addClass("show"); is_open = true; }; $(".form-sidebar .exit").click(function (e) { close_sidebar(); e.stopPropagation(); }); $("body").click(function (e) { if (is_open && !$(e.target).within(".form-sidebar")) { close_sidebar(); } }); $("body").on("click", "[data-sidebar-form]", function (e) { exports.trigger_sidebar($(this).attr("data-sidebar-form")); e.stopPropagation(); }); $("body").on("click", "[data-sidebar-form-close]", close_sidebar); $("#settings_overlay_container").click(function (e) { if (!overlays.is_modal_open()) { return; } if ($(e.target).closest(".modal").length > 0) { return; } e.preventDefault(); e.stopPropagation(); // Whenever opening a modal(over settings overlay) in an event handler // attached to a click event, make sure to stop the propagation of the // event to the parent container otherwise the modal will not open. This // is so because this event handler will get fired on any click in settings // overlay and subsequently close any open modal. overlays.close_active_modal(); }); }); function setup_settings_label() { exports.settings_label = { // settings_notification // stream_notification_settings enable_stream_desktop_notifications: i18n.t("Visual desktop notifications"), enable_stream_sounds: i18n.t("Audible desktop notifications"), enable_stream_push_notifications: i18n.t("Mobile notifications"), // pm_mention_notification_settings enable_desktop_notifications: i18n.t("Visual desktop notifications"), enable_offline_email_notifications: i18n.t("Email notifications when offline"), enable_offline_push_notifications: i18n.t("Mobile notifications when offline"), enable_online_push_notifications: i18n.t("Mobile notifications always (even when online)"), enable_sounds: i18n.t("Audible desktop notifications"), pm_content_in_desktop_notifications: i18n.t("Include content of private messages"), // other_notification_settings enable_digest_emails: i18n.t("Send digest emails when I'm away"), message_content_in_email_notifications: i18n.t("Include message content in missed message emails"), realm_name_in_notifications: i18n.t("Include organization name in subject of missed message emails"), // display settings dense_mode: i18n.t("Dense mode"), high_contrast_mode: i18n.t("High contrast mode"), left_side_userlist: i18n.t("User list on left sidebar in narrow windows"), night_mode: i18n.t("Night mode"), twenty_four_hour_time: i18n.t("24-hour time (17:00 instead of 5:00 PM)"), translate_emoticons: i18n.t("Translate emoticons (convert :) to 😃 in messages)"), }; } exports.setup_page = function () { ui.set_up_scrollbar($("#settings_page .sidebar.left")); ui.set_up_scrollbar($("#settings_content")); var tab = (function () { var tab = false; var hash_sequence = window.location.hash.split(/\//); if (/#*(settings)/.test(hash_sequence[0])) { tab = hash_sequence[1]; return tab || settings_panel_menu.normal_settings.current_tab(); } return tab; }()); setup_settings_label(); var rendered_settings_tab = templates.render('settings_tab', { full_name: people.my_full_name(), page_params: page_params, zuliprc: 'zuliprc', botserverrc: 'botserverrc', timezones: moment.tz.names(), admin_only_bot_creation: page_params.is_admin || page_params.realm_bot_creation_policy !== settings_bots.bot_creation_policy_values.admins_only.code, settings_label: settings.settings_label, }); $(".settings-box").html(rendered_settings_tab); // Since we just swapped in a whole new settings widget, we need to // tell settings_sections nothing is loaded. settings_sections.reset_sections(); if (tab) { exports.launch_page(tab); settings_toggle.highlight_toggle('settings'); } }; exports.launch_page = function (tab) { var $active_tab = $("#settings_overlay_container li[data-section='" + tab + "']"); overlays.open_settings(); $active_tab.click(); }; exports.set_settings_header = function (key) { if (header_map[key]) { $(".settings-header h1 .section").text(" / " + header_map[key]); } else { blueslip.warn("Error: the key '" + key + "' does not exist in the settings" + " header mapping file. Please add it."); } }; return exports; }()); if (typeof module !== 'undefined') { module.exports = settings; }