diff --git a/app/assets/javascripts/preventDuplicateFormSubmissions.js b/app/assets/javascripts/preventDuplicateFormSubmissions.js new file mode 100644 index 000000000..0eca28039 --- /dev/null +++ b/app/assets/javascripts/preventDuplicateFormSubmissions.js @@ -0,0 +1,30 @@ +(function() { + + "use strict"; + + let disableSubmitButtons = function(event) { + + $submitButton = $(this).find(':submit'); + + if ($submitButton.data('clicked') == 'true') { + + event.preventDefault(); + + } else { + + $submitButton.data('clicked', 'true'); + setTimeout(renableSubmitButton($submitButton), 1500); + + } + + }; + + let renableSubmitButton = $submitButton => () => { + + $submitButton.data('clicked', ''); + + }; + + $('form').on('submit', disableSubmitButtons); + +})(); diff --git a/gulpfile.babel.js b/gulpfile.babel.js index 26dd6c96b..9ecc9c15d 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -67,6 +67,7 @@ gulp.task('javascripts', () => gulp paths.src + 'javascripts/listEntry.js', paths.src + 'javascripts/liveSearch.js', paths.src + 'javascripts/errorTracking.js', + paths.src + 'javascripts/preventDuplicateFormSubmissions.js', paths.src + 'javascripts/main.js' ]) .pipe(plugins.prettyerror())