From 08dfa982eb35415e30d3b8f52015ce73d4b899c0 Mon Sep 17 00:00:00 2001 From: kikito Date: Sun, 13 Sep 2015 19:41:18 +0200 Subject: [PATCH] Fixes error in double_submission button It did not take into account that some forms can have more than 1 submit button, which made the code not include the button values in some puts and posts. --- .../prevent_double_submission.js.coffee | 36 ++++++++++--------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/app/assets/javascripts/prevent_double_submission.js.coffee b/app/assets/javascripts/prevent_double_submission.js.coffee index 867e6fa43..b3b833d43 100644 --- a/app/assets/javascripts/prevent_double_submission.js.coffee +++ b/app/assets/javascripts/prevent_double_submission.js.coffee @@ -1,26 +1,28 @@ App.PreventDoubleSubmission = - disable_button: (button) -> - unless button.hasClass('disabled') - loading = button.data('loading') ? '...' - button.addClass('disabled').attr('disabled', 'disabled') - button.data('text', button.val()) - button.val(loading) + disable_button: (buttons) -> + buttons.each (button)-> + unless button.hasClass('disabled') + loading = button.data('loading') ? '...' + button.addClass('disabled').attr('disabled', 'disabled') + button.data('text', button.val()) + button.val(loading) - reset_button: (button) -> - if button.hasClass('disabled') - button_text = button.data('text') - button.removeClass('disabled').attr('disabled', null) - if button_text - button.val(button_text) - button.data('text', null) + reset_button: (buttons) -> + buttons.each (button)-> + if button.hasClass('disabled') + button_text = button.data('text') + button.removeClass('disabled').attr('disabled', null) + if button_text + button.val(button_text) + button.data('text', null) initialize: -> $('form').on('submit', event, -> - button = $(this).find(':button, :submit') - App.PreventDoubleSubmission.disable_button(button) + buttons = $(this).find(':button, :submit') + App.PreventDoubleSubmission.disable_buttons(buttons) ).on('ajax:success', -> - button = $(this).find(':button, :submit') - App.PreventDoubleSubmission.reset_button(button) + buttons = $(this).find(':button, :submit') + App.PreventDoubleSubmission.reset_buttons(buttons) ) false