From 9b8c541a74d786a3180a8deec370d5ca4ec00df2 Mon Sep 17 00:00:00 2001 From: Tim Abbott Date: Fri, 2 Mar 2018 12:26:59 -0800 Subject: [PATCH] settings: Set state of name/email change fields from data. Rather than having a toggle function that just flips the state, it's more correct to have the state just be set to what it should be. Also, we clean up the use of .attr() for a thing better accessed via .prop(). We should probably rename the function at this point, but we save that for a future commit. --- frontend_tests/node_tests/settings_org.js | 37 ++++++++--------------- static/js/settings_org.js | 18 ++++++----- 2 files changed, 22 insertions(+), 33 deletions(-) diff --git a/frontend_tests/node_tests/settings_org.js b/frontend_tests/node_tests/settings_org.js index 78b97a7021..43b7674a6d 100644 --- a/frontend_tests/node_tests/settings_org.js +++ b/frontend_tests/node_tests/settings_org.js @@ -526,45 +526,32 @@ function test_change_allow_subdomains(change_allow_subdomains) { assert.equal($('#id_realm_default_language').val(), 'es'); page_params.is_admin = false; - var name_toggled; - $('.change_name_tooltip').toggle = function () { - name_toggled = true; - }; - name_toggled = false; - - $('#full_name').attr('disabled', 'disabled'); + page_params.realm_name_changes_disabled = false; settings_org.toggle_name_change_display(); assert.equal($('#full_name').prop('disabled'), false); - assert(name_toggled); + page_params.realm_name_changes_disabled = true; settings_org.toggle_name_change_display(); - assert.equal($('#full_name').attr('disabled'), 'disabled'); - assert(name_toggled); + assert.equal($('#full_name').prop('disabled'), true); - var email_tooltip_toggled; - $('.change_email_tooltip').toggle = function () { - email_tooltip_toggled = true; - }; - - $('#change_email .button').attr('disabled', false); + page_params.realm_email_changes_disabled = false; settings_org.toggle_email_change_display(); - assert.equal($("#change_email .button").attr('disabled'), 'disabled'); - assert(email_tooltip_toggled); + assert.equal($("#change_email .button").prop('disabled'), false); + + page_params.realm_email_changes_disabled = true; + settings_org.toggle_email_change_display(); + assert.equal($("#change_email .button").prop('disabled'), true); // Test should't toggle name display or email display for org admins. page_params.is_admin = true; - name_toggled = false; - $('#full_name').attr('disabled', false); + $('#full_name').prop('disabled', false); settings_org.toggle_name_change_display(); assert.equal($('#full_name').prop('disabled'), false); - assert(!name_toggled); - email_tooltip_toggled = false; - $('#change_email .button').attr('disabled', false); + $('#change_email .button').prop('disabled', false); settings_org.toggle_email_change_display(); - assert.equal($("#change_email .button").attr('disabled'), false); - assert(!email_tooltip_toggled); + assert.equal($("#change_email .button").prop('disabled'), false); page_params.realm_description = 'realm description'; settings_org.update_realm_description(); diff --git a/static/js/settings_org.js b/static/js/settings_org.js index b63fc36cc9..f6b80f349a 100644 --- a/static/js/settings_org.js +++ b/static/js/settings_org.js @@ -78,12 +78,13 @@ exports.toggle_name_change_display = function () { return; } - if ($('#full_name').attr('disabled')) { - $('#full_name').prop('disabled', false); + if (page_params.realm_name_changes_disabled) { + $('#full_name').prop('disabled', true); + $(".change_name_tooltip").show(); } else { - $('#full_name').attr('disabled', 'disabled'); + $('#full_name').prop('disabled', false); + $(".change_name_tooltip").hide(); } - $(".change_name_tooltip").toggle(); }; exports.toggle_email_change_display = function () { @@ -91,12 +92,13 @@ exports.toggle_email_change_display = function () { return; } - if ($('#change_email .button').attr('disabled')) { - $('#change_email .button').prop('disabled', false); + if (page_params.realm_email_changes_disabled) { + $('#change_email .button').prop('disabled', true); + $(".change_email_tooltip").show(); } else { - $('#change_email .button').attr('disabled', 'disabled'); + $('#change_email .button').prop('disabled', false); + $(".change_email_tooltip").hide(); } - $(".change_email_tooltip").toggle(); }; exports.toggle_allow_message_editing_pencil = function () {