forms: disable autosave while form is submitted (#31706)

This commit is contained in:
Frédéric Péters 2019-03-25 17:40:35 +01:00
parent ff55130941
commit 4da4dbcec8
1 changed files with 10 additions and 5 deletions

View File

@ -1,11 +1,13 @@
$(function() {
var autosave_timeout_id = null;
if ($('form[data-has-draft]').length == 1) {
var last_auto_save = $('form[data-has-draft]').serialize();
var timeout_id = null;
function autosave() {
var new_auto_save = $('form[data-has-draft]').serialize();
var $form = $('form[data-has-draft]');
if ($form.hasClass('disabled-during-submit')) return;
var new_auto_save = $form.serialize();
if (last_auto_save == new_auto_save) {
timeout_id = window.setTimeout(autosave, 5000);
autosave_timeout_id = window.setTimeout(autosave, 5000);
return;
}
$.ajax({
@ -18,11 +20,11 @@ $(function() {
}
},
complete: function() {
timeout_id = window.setTimeout(autosave, 5000);
autosave_timeout_id = window.setTimeout(autosave, 5000);
}
});
}
timeout_id = window.setTimeout(autosave, 5000);
autosave_timeout_id = window.setTimeout(autosave, 5000);
$('#tracking-code a').on('click', autosave);
}
$('.date-pick').each(function() {
@ -56,6 +58,9 @@ $(function() {
});
$('form').on('submit', function(event) {
var $form = $(this);
if (autosave_timeout_id) {
window.clearTimeout(autosave_timeout_id);
}
$form.addClass('disabled-during-submit');
if ($form.hasClass('download-button-clicked')) {
/* form cannot be disabled for download buttons as the user will stay on