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.
This commit is contained in:
kikito
2015-09-13 19:41:18 +02:00
parent 8787f4b5a8
commit 08dfa982eb

View File

@@ -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