123 |
123 |
|
124 |
124 |
$(function() {
|
125 |
125 |
var autosave_timeout_id = null;
|
|
126 |
var autosave_is_running = false;
|
126 |
127 |
if ($('form[data-has-draft]:not([data-autosave=false])').length == 1) {
|
127 |
128 |
var last_auto_save = $('form[data-has-draft]').serialize();
|
128 |
129 |
function autosave() {
|
... | ... | |
130 |
131 |
if ($form.hasClass('disabled-during-submit')) return;
|
131 |
132 |
var new_auto_save = $form.serialize();
|
132 |
133 |
if (last_auto_save == new_auto_save) {
|
133 |
|
autosave_timeout_id = window.setTimeout(autosave, 5000);
|
|
134 |
install_autosave();
|
134 |
135 |
return;
|
135 |
136 |
}
|
|
137 |
autosave_is_running = true;
|
136 |
138 |
$.ajax({
|
137 |
139 |
type: 'POST',
|
138 |
140 |
url: window.location.pathname + 'autosave',
|
... | ... | |
143 |
145 |
}
|
144 |
146 |
},
|
145 |
147 |
complete: function() {
|
146 |
|
autosave_timeout_id = window.setTimeout(autosave, 5000);
|
|
148 |
autosave_is_running = false;
|
|
149 |
if (autosave_timeout_id !== null) {
|
|
150 |
install_autosave();
|
|
151 |
}
|
147 |
152 |
}
|
148 |
153 |
});
|
149 |
154 |
}
|
150 |
|
autosave_timeout_id = window.setTimeout(autosave, 5000);
|
|
155 |
|
|
156 |
function install_autosave() {
|
|
157 |
// debounce
|
|
158 |
window.clearTimeout(autosave_timeout_id);
|
|
159 |
autosave_timeout_id = window.setTimeout(autosave, 5000);
|
|
160 |
}
|
|
161 |
|
|
162 |
$(document).on('mouseover scroll keydown', function() {
|
|
163 |
if (autosave_timeout_id !== null && ! autosave_is_running) {
|
|
164 |
install_autosave();
|
|
165 |
}
|
|
166 |
});
|
|
167 |
|
|
168 |
install_autosave();
|
|
169 |
|
151 |
170 |
$('#tracking-code a').on('click', autosave);
|
152 |
171 |
$(document).on('wcs:set-last-auto-save', function() {
|
153 |
172 |
last_auto_save = $('form[data-has-draft]').serialize();
|
... | ... | |
360 |
379 |
});
|
361 |
380 |
$('form').on('submit', function(event) {
|
362 |
381 |
var $form = $(this);
|
363 |
|
if (autosave_timeout_id) {
|
|
382 |
/* prevent more autosave */
|
|
383 |
if (autosave_timeout_id !== null) {
|
364 |
384 |
window.clearTimeout(autosave_timeout_id);
|
|
385 |
autosave_timeout_id = null;
|
365 |
386 |
}
|
366 |
387 |
$form.addClass('disabled-during-submit');
|
367 |
388 |
if ($form.hasClass('download-button-clicked')) {
|
368 |
|
-
|