Files
grecia/app/assets/javascripts/prevent_double_submission.js
Javi Martín d93a029ce5 Convert CofeeScript to JavaScript
Compiled using `coffee -c` with CoffeeScript 1.12.6.
2019-09-11 14:03:24 +02:00

51 lines
1.7 KiB
JavaScript

// Generated by CoffeeScript 1.12.6
(function() {
"use strict";
App.PreventDoubleSubmission = {
disable_buttons: function(buttons) {
return setTimeout(function() {
return buttons.each(function() {
var button, loading, ref;
button = $(this);
if (!button.hasClass("disabled")) {
loading = (ref = button.data("loading")) != null ? ref : "...";
button.addClass("disabled").attr("disabled", "disabled");
button.data("text", button.val());
return button.val(loading);
}
});
}, 1);
},
reset_buttons: function(buttons) {
return buttons.each(function() {
var button, button_text;
button = $(this);
if (button.hasClass("disabled")) {
button_text = button.data("text");
button.removeClass("disabled").attr("disabled", null);
if (button_text) {
button.val(button_text);
return button.data("text", null);
}
}
});
},
initialize: function() {
return $("form").on("submit", function(event) {
var buttons;
if (!(event.target.id === "new_officing_voter" || event.target.id === "admin_download_emails")) {
buttons = $(this).find(":button, :submit");
return App.PreventDoubleSubmission.disable_buttons(buttons);
}
}).on("ajax:success", function(event) {
var buttons;
if (!(event.target.id === "new_officing_voter" || event.target.id === "admin_download_emails")) {
buttons = $(this).find(":button, :submit");
return App.PreventDoubleSubmission.reset_buttons(buttons);
}
});
}
};
}).call(this);