From 32eb01642880c157eef795fa8e674d5d2b13b279 Mon Sep 17 00:00:00 2001 From: Zia Fazal Date: Tue, 27 Dec 2016 11:39:56 +0500 Subject: [PATCH] disable password reset button after click fixed quality violation --- .../spec/student_account/account_settings_fields_spec.js | 5 ++++- .../js/student_account/views/account_settings_fields.js | 8 ++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/lms/static/js/spec/student_account/account_settings_fields_spec.js b/lms/static/js/spec/student_account/account_settings_fields_spec.js index 7746a98ffc..727a033d48 100644 --- a/lms/static/js/spec/student_account/account_settings_fields_spec.js +++ b/lms/static/js/spec/student_account/account_settings_fields_spec.js @@ -31,11 +31,14 @@ define(['backbone', var fieldData = FieldViewsSpecHelpers.createFieldData(AccountSettingsFieldViews.PasswordFieldView, { linkHref: '/password_reset', - emailAttribute: 'email' + emailAttribute: 'email', + valueAttribute: 'password' }); var view = new AccountSettingsFieldViews.PasswordFieldView(fieldData).render(); + expect(view.$('.u-field-value > button').is(':disabled')).toBe(false); view.$('.u-field-value > button').click(); + expect(view.$('.u-field-value > button').is(':disabled')).toBe(true); AjaxHelpers.expectRequest(requests, 'POST', '/password_reset', 'email=legolas%40woodland.middlearth'); AjaxHelpers.respondWithJson(requests, {'success': 'true'}); FieldViewsSpecHelpers.expectMessageContains( diff --git a/lms/static/js/student_account/views/account_settings_fields.js b/lms/static/js/student_account/views/account_settings_fields.js index 3ce7ce8546..2da3447e30 100644 --- a/lms/static/js/student_account/views/account_settings_fields.js +++ b/lms/static/js/student_account/views/account_settings_fields.js @@ -151,6 +151,7 @@ }, linkClicked: function(event) { event.preventDefault(); + this.toggleDisableButton(true); this.resetPassword(event); }, resetPassword: function() { @@ -169,9 +170,16 @@ error: function(xhr) { view.showErrorMessage(xhr); view.setMessageTimeout(); + view.toggleDisableButton(false); } }); }, + toggleDisableButton: function(disabled) { + var button = this.$('#u-field-link-' + this.options.valueAttribute); + if (button) { + button.prop('disabled', disabled); + } + }, setMessageTimeout: function() { var view = this; setTimeout(function() {