From bf1c9420dfcc846a8339a4388c9ad0cc65a2b3cc Mon Sep 17 00:00:00 2001 From: Pragati Agrawal Date: Wed, 27 Feb 2019 20:15:26 +0530 Subject: [PATCH] org_settings: Refactor `build_realm_logo_widget` function. This commit deduplicates the code for `build_realm_logo_widget` and `build_realm_night_logo_widget`. It deduplicates the common code for `build_realm_day_mode_logo_widget` & `build_realm_night_mode_logo_widget` into tthe function `build_realm_logo_widget`. --- frontend_tests/node_tests/settings_org.js | 4 +- static/js/realm_logo.js | 68 +++++++++++------------ static/js/settings_org.js | 6 +- 3 files changed, 38 insertions(+), 40 deletions(-) diff --git a/frontend_tests/node_tests/settings_org.js b/frontend_tests/node_tests/settings_org.js index 37ffd12372..a1cbaa1f95 100644 --- a/frontend_tests/node_tests/settings_org.js +++ b/frontend_tests/node_tests/settings_org.js @@ -56,8 +56,8 @@ const _ui_report = { }; const _realm_logo = { - build_realm_logo_widget: noop, - build_realm_night_logo_widget: noop, + build_realm_day_mode_logo_widget: noop, + build_realm_night_mode_logo_widget: noop, }; set_global('channel', _channel); diff --git a/static/js/realm_logo.js b/static/js/realm_logo.js index 6ee02852e3..76f2bfb6b1 100644 --- a/static/js/realm_logo.js +++ b/static/js/realm_logo.js @@ -1,18 +1,20 @@ /* eslint indent: "off" */ var realm_logo = (function () { - var exports = {}; - exports.build_realm_logo_widget = function (upload_function) { + + function build_realm_logo_widget(args) { var get_file_input = function () { - return $('#realm_logo_file_input').expectOne(); + return args.file_input_elem.expectOne(); }; + if (page_params.realm_logo_source === 'D') { - $("#realm_logo_delete_button").hide(); + args.delete_button_elem.hide(); } else { - $("#realm_logo_delete_button").show(); + args.delete_button_elem.show(); } - var data = {night: JSON.stringify(false)}; - $("#realm_logo_delete_button").on('click', function (e) { + + var data = {night: JSON.stringify(args.is_night_mode)}; + args.delete_button_elem.on('click', function (e) { e.preventDefault(); e.stopPropagation(); channel.del({ @@ -23,39 +25,35 @@ var realm_logo = (function () { return upload_widget.build_direct_upload_widget( get_file_input, - $("#realm_logo_file_input_error").expectOne(), - $("#realm_logo_upload_button").expectOne(), - upload_function, + args.file_input_error_elem.expectOne(), + args.upload_button_elem.expectOne(), + args.upload_function, page_params.max_logo_file_size ); + } + + exports.build_realm_day_mode_logo_widget = function (upload_function) { + var args = { + delete_button_elem: $("#realm_logo_delete_button"), + file_input_elem: $('#realm_logo_file_input'), + file_input_error_elem: $("#realm_logo_file_input_error"), + is_night_mode: false, + upload_button_elem: $("#realm_logo_upload_button"), + upload_function: upload_function, + }; + return build_realm_logo_widget(args); }; - exports.build_realm_night_logo_widget = function (upload_function) { - var get_file_input = function () { - return $('#realm_night_logo_file_input').expectOne(); + exports.build_realm_night_mode_logo_widget = function (upload_function) { + var args = { + delete_button_elem: $("#realm_night_logo_delete_button"), + file_input_elem: $('#realm_night_logo_file_input'), + file_input_error_elem: $("#realm_night_logo_file_input_error"), + is_night_mode: true, + upload_button_elem: $("#realm_night_logo_upload_button"), + upload_function: upload_function, }; - if (page_params.realm_night_logo_source === 'D') { - $("#realm_night_logo_delete_button").hide(); - } else { - $("#realm_night_logo_delete_button").show(); - } - var data = {night: JSON.stringify(true)}; - $("#realm_night_logo_delete_button").on('click', function (e) { - e.preventDefault(); - e.stopPropagation(); - channel.del({ - url: '/json/realm/logo', - data: data, - }); - }); - - return upload_widget.build_direct_upload_widget( - get_file_input, - $("#realm_night_logo_file_input_error").expectOne(), - $("#realm_night_logo_upload_button").expectOne(), - upload_function, - page_params.max_logo_file_size - ); + return build_realm_logo_widget(args); }; exports.rerender = function () { diff --git a/static/js/settings_org.js b/static/js/settings_org.js index e6b75b7be3..5a580b274c 100644 --- a/static/js/settings_org.js +++ b/static/js/settings_org.js @@ -1154,10 +1154,10 @@ exports.build_page = function () { ui_report.error("", xhr, error_field); }, }); - } - realm_logo.build_realm_night_logo_widget(upload_realm_logo); - realm_logo.build_realm_logo_widget(upload_realm_logo); + + realm_logo.build_realm_day_mode_logo_widget(upload_realm_logo); + realm_logo.build_realm_night_mode_logo_widget(upload_realm_logo); $('#deactivate_realm_button').on('click', function (e) { if (!overlays.is_modal_open()) {