From 32ce1e3a00149f3dea00d4e65c6e5e7d7b5862f5 Mon Sep 17 00:00:00 2001 From: Jacob Schatz Date: Wed, 21 Mar 2018 14:28:39 -0400 Subject: Disables the button when submitting comment. --- app/assets/javascripts/notes.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/assets/javascripts/notes.js b/app/assets/javascripts/notes.js index 2afa4e4c1bf..09f0ea37103 100644 --- a/app/assets/javascripts/notes.js +++ b/app/assets/javascripts/notes.js @@ -1727,6 +1727,7 @@ export default class Notes { // Get Form metadata const $submitBtn = $(e.target); + $submitBtn.prop('disabled', true); let $form = $submitBtn.parents('form'); const $closeBtn = $form.find('.js-note-target-close'); const isDiscussionNote = @@ -1761,7 +1762,6 @@ export default class Notes { // If comment is to resolve discussion, disable submit buttons while // comment posting is finished. if (isDiscussionResolve) { - $submitBtn.disable(); $form.find('.js-comment-submit-button').disable(); } @@ -1816,6 +1816,7 @@ export default class Notes { .then(res => { const note = res.data; + $submitBtn.prop('disabled', false); // Submission successful! remove placeholder $notesContainer.find(`#${noteUniqueId}`).remove(); @@ -1899,7 +1900,7 @@ export default class Notes { .catch(() => { // Submission failed, remove placeholder note and show Flash error message $notesContainer.find(`#${noteUniqueId}`).remove(); - + $submitBtn.prop('disabled', false); const blurEvent = new CustomEvent('blur.imageDiff', { detail: e, }); -- cgit v1.2.1 From e1213ff6ae1750f7b08caed73089e3ffb0951c73 Mon Sep 17 00:00:00 2001 From: Jacob Schatz Date: Wed, 21 Mar 2018 15:45:23 -0400 Subject: Adds tests --- spec/javascripts/notes_spec.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/spec/javascripts/notes_spec.js b/spec/javascripts/notes_spec.js index 8f317b06792..1858d6b6474 100644 --- a/spec/javascripts/notes_spec.js +++ b/spec/javascripts/notes_spec.js @@ -549,6 +549,20 @@ import timeoutPromise from './helpers/set_timeout_promise_helper'; }); }); + it('should disable the submit button when comment button is clicked', (done) => { + expect($form.find('.js-comment-submit-button').is(':disabled')).toEqual(false); + + mockNotesPost(); + $('.js-comment-button').click(); + expect($form.find('.js-comment-submit-button').is(':disabled')).toEqual(true); + + setTimeout(() => { + expect($form.find('.js-comment-submit-button').is(':disabled')).toEqual(false); + + done(); + }); + }); + it('should show actual note element when new comment is done posting', (done) => { mockNotesPost(); -- cgit v1.2.1