diff --git a/.eslintrc.json b/.eslintrc.json index 2f7c852e67..02e825bf6c 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -248,7 +248,6 @@ "settings_sections": false, "settings_streams": false, "settings_toggle": false, - "settings_ui": false, "settings_user_groups": false, "settings_users": false, "spoilers": false, diff --git a/frontend_tests/node_tests/settings_org.js b/frontend_tests/node_tests/settings_org.js index c75d790421..18c523f31e 100644 --- a/frontend_tests/node_tests/settings_org.js +++ b/frontend_tests/node_tests/settings_org.js @@ -90,7 +90,6 @@ const settings_account = rewiremock.proxy(() => zrequire("settings_account"), { "../../static/js/setup": {}, }); const settings_org = zrequire("settings_org"); -zrequire("settings_ui"); const dropdown_list_widget = zrequire("dropdown_list_widget"); run_test("unloaded", () => { diff --git a/static/js/bundles/app.js b/static/js/bundles/app.js index d41cf3dc8c..778907d965 100644 --- a/static/js/bundles/app.js +++ b/static/js/bundles/app.js @@ -153,7 +153,6 @@ import "../emoji_picker"; import "../compose_ui"; import "../panels"; import "../recent_topics"; -import "../settings_ui"; import "../search_pill"; import "../search_pill_widget"; import "../stream_ui_updates"; diff --git a/static/js/global.d.ts b/static/js/global.d.ts index 14cb40bd70..d623bdeefa 100644 --- a/static/js/global.d.ts +++ b/static/js/global.d.ts @@ -116,7 +116,6 @@ declare let settings_profile_fields: any; declare let settings_sections: any; declare let settings_streams: any; declare let settings_toggle: any; -declare let settings_ui: any; declare let settings_user_groups: any; declare let settings_users: any; declare let starred_messages: any; diff --git a/static/js/settings_account.js b/static/js/settings_account.js index 65a76415eb..ffd55134f3 100644 --- a/static/js/settings_account.js +++ b/static/js/settings_account.js @@ -8,6 +8,7 @@ const render_settings_dev_env_email_access = require("../templates/settings/dev_ const people = require("./people"); const pill_typeahead = require("./pill_typeahead"); +const settings_ui = require("./settings_ui"); const setup = require("./setup"); exports.update_email = function (new_email) { diff --git a/static/js/settings_display.js b/static/js/settings_display.js index 946dc9e9ca..d6843e9cfc 100644 --- a/static/js/settings_display.js +++ b/static/js/settings_display.js @@ -2,6 +2,7 @@ const emojisets = require("./emojisets"); const settings_config = require("./settings_config"); +const settings_ui = require("./settings_ui"); const meta = { loaded: false, diff --git a/static/js/settings_notifications.js b/static/js/settings_notifications.js index 22d3779d9b..900aeb1a94 100644 --- a/static/js/settings_notifications.js +++ b/static/js/settings_notifications.js @@ -3,6 +3,7 @@ const render_stream_specific_notification_row = require("../templates/settings/stream_specific_notification_row.hbs"); const settings_config = require("./settings_config"); +const settings_ui = require("./settings_ui"); exports.get_notifications_table_row_data = function (notify_settings) { return settings_config.general_notifications_table_labels.realm.map((column, index) => { diff --git a/static/js/settings_org.js b/static/js/settings_org.js index 8c8dca3cab..ea269a3824 100644 --- a/static/js/settings_org.js +++ b/static/js/settings_org.js @@ -5,6 +5,7 @@ const render_settings_admin_auth_methods_list = require("../templates/settings/a const render_settings_admin_realm_domains_list = require("../templates/settings/admin_realm_domains_list.hbs"); const settings_config = require("./settings_config"); +const settings_ui = require("./settings_ui"); const meta = { loaded: false, diff --git a/static/js/settings_profile_fields.js b/static/js/settings_profile_fields.js index 46a6ffdecc..3d60b94e94 100644 --- a/static/js/settings_profile_fields.js +++ b/static/js/settings_profile_fields.js @@ -5,6 +5,8 @@ const {default: Sortable} = require("sortablejs"); const render_admin_profile_field_list = require("../templates/admin_profile_field_list.hbs"); const render_settings_profile_field_choice = require("../templates/settings/profile_field_choice.hbs"); +const settings_ui = require("./settings_ui"); + const meta = { loaded: false, }; diff --git a/static/js/settings_ui.js b/static/js/settings_ui.js index 9c37ac5f8b..2a57a238f8 100644 --- a/static/js/settings_ui.js +++ b/static/js/settings_ui.js @@ -1,13 +1,11 @@ -"use strict"; - -exports.display_checkmark = function ($elem) { +export function display_checkmark($elem) { const check_mark = document.createElement("img"); check_mark.src = "/static/images/checkbox-green.svg"; $elem.prepend(check_mark); $(check_mark).css("width", "13px"); -}; +} -exports.strings = { +export const strings = { success: i18n.t("Saved"), failure: i18n.t("Save failed"), saving: i18n.t("Saving"), @@ -16,10 +14,10 @@ exports.strings = { // Generic function for informing users about changes to the settings // UI. Intended to replace the old system that was built around // direct calls to `ui_report`. -exports.do_settings_change = function (request_method, url, data, status_element, opts) { +export function do_settings_change(request_method, url, data, status_element, opts) { const spinner = $(status_element).expectOne(); spinner.fadeTo(0, 1); - loading.make_indicator(spinner, {text: exports.strings.saving}); + loading.make_indicator(spinner, {text: strings.saving}); let success_msg; let success_continuation; let error_continuation; @@ -35,7 +33,7 @@ exports.do_settings_change = function (request_method, url, data, status_element } } if (success_msg === undefined) { - success_msg = exports.strings.success; + success_msg = strings.success; } request_method({ @@ -44,7 +42,7 @@ exports.do_settings_change = function (request_method, url, data, status_element success(reponse_data) { setTimeout(() => { ui_report.success(success_msg, spinner, remove_after); - exports.display_checkmark(spinner); + display_checkmark(spinner); }, appear_after); if (success_continuation !== undefined) { if (opts !== undefined && opts.success_continuation_arg) { @@ -57,16 +55,16 @@ exports.do_settings_change = function (request_method, url, data, status_element error(xhr) { if (opts !== undefined && opts.error_msg_element) { loading.destroy_indicator(spinner); - ui_report.error(exports.strings.failure, xhr, opts.error_msg_element); + ui_report.error(strings.failure, xhr, opts.error_msg_element); } else { - ui_report.error(exports.strings.failure, xhr, spinner); + ui_report.error(strings.failure, xhr, spinner); } if (error_continuation !== undefined) { error_continuation(xhr); } }, }); -}; +} // This function is used to disable sub-setting when main setting is checked or unchecked // or two settings are inter-dependent on their values values. @@ -75,7 +73,7 @@ exports.do_settings_change = function (request_method, url, data, status_element // string id of setting. // * disable_on_uncheck is boolean, true if sub setting should be disabled // when main setting unchecked. -exports.disable_sub_setting_onchange = function (is_checked, sub_setting_id, disable_on_uncheck) { +export function disable_sub_setting_onchange(is_checked, sub_setting_id, disable_on_uncheck) { if ((is_checked && disable_on_uncheck) || (!is_checked && !disable_on_uncheck)) { $(`#${CSS.escape(sub_setting_id)}`).prop("disabled", false); $(`#${CSS.escape(sub_setting_id)}_label`) @@ -87,6 +85,4 @@ exports.disable_sub_setting_onchange = function (is_checked, sub_setting_id, dis .parent() .addClass("control-label-disabled"); } -}; - -window.settings_ui = exports; +} diff --git a/static/js/settings_users.js b/static/js/settings_users.js index 375e10afd5..3ac0132bbc 100644 --- a/static/js/settings_users.js +++ b/static/js/settings_users.js @@ -7,6 +7,7 @@ const render_admin_user_list = require("../templates/admin_user_list.hbs"); const people = require("./people"); const settings_config = require("./settings_config"); const settings_data = require("./settings_data"); +const settings_ui = require("./settings_ui"); const section = { active: {}, diff --git a/static/js/stream_edit.js b/static/js/stream_edit.js index 8fb8d48ca7..840bf6dcd5 100644 --- a/static/js/stream_edit.js +++ b/static/js/stream_edit.js @@ -11,6 +11,7 @@ const people = require("./people"); const pill_typeahead = require("./pill_typeahead"); const settings_config = require("./settings_config"); const settings_data = require("./settings_data"); +const settings_ui = require("./settings_ui"); const stream_pill = require("./stream_pill"); const util = require("./util");