Files
nairobi/app/assets/javascripts/prevent_double_submission.js.coffee
Javi Martín 457ec11e6d Remove unnecessary return false statements
The `initialize` functions don't need to return anything, since their
returned value is never used.

Returning false is a common practice in jQuery to stop an event, but in
plain JavaScript methods it doesn't have any side effects.
2019-09-11 01:56:27 +02:00

37 lines
1.2 KiB
CoffeeScript

App.PreventDoubleSubmission =
disable_buttons: (buttons) ->
setTimeout ->
buttons.each ->
button = $(this)
unless button.hasClass("disabled")
loading = button.data("loading") ? "..."
button.addClass("disabled").attr("disabled", "disabled")
button.data("text", button.val())
button.val(loading)
, 1
reset_buttons: (buttons) ->
buttons.each ->
button = $(this)
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) ->
unless event.target.id == "new_officing_voter" ||
event.target.id == "admin_download_emails"
buttons = $(this).find(":button, :submit")
App.PreventDoubleSubmission.disable_buttons(buttons)
).on("ajax:success", (event) ->
unless event.target.id == "new_officing_voter" ||
event.target.id == "admin_download_emails"
buttons = $(this).find(":button, :submit")
App.PreventDoubleSubmission.reset_buttons(buttons)
)