From 5aea7dd51e8e3d2e0fefc097e06b0673a1d3b746 Mon Sep 17 00:00:00 2001 From: Dave Cranwell Date: Tue, 1 Sep 2015 16:32:15 +0100 Subject: [PATCH] Revert "applied @joshbarr tweaks" This reverts commit 8df933f58c49fa9c26283ffd2b5b2289ef72bc19. --- .../static_src/wagtailadmin/js/core.js | 52 +++++++++---------- 1 file changed, 25 insertions(+), 27 deletions(-) diff --git a/wagtail/wagtailadmin/static_src/wagtailadmin/js/core.js b/wagtail/wagtailadmin/static_src/wagtailadmin/js/core.js index 7d67af699..6dc47ba27 100644 --- a/wagtail/wagtailadmin/static_src/wagtailadmin/js/core.js +++ b/wagtail/wagtailadmin/static_src/wagtailadmin/js/core.js @@ -147,40 +147,38 @@ $(function() { $(document).on('click', 'button.button-longrunning', function(e){ var $self = $(this); var $replacementElem = $('em', $self); - - // Time (seconds) after which the button re-activates var reEnableAfter = 30; var dataName = 'disabledtimeout' - // Trigger form submission if it's a submit button - if (this.form && this.getAttribute('type') === 'submit') { - $(this.form).trigger('submit'); - } + // Disabling a button prevents it submitting the form, so disabling + // must occur on a brief timeout only after this function returns. + var timeout = setTimeout(function(){ + if(!$self.data(dataName)) { + // Button re-enables after a timeout to prevent button becoming + // permanently un-usable + $self.data(dataName, setTimeout(function(){ + clearTimeout($self.data(dataName)); + + $self.prop('disabled', '').removeData(dataName).removeClass('button-longrunning-active') + + if($self.data('clicked-text')){ + $replacementElem.text($self.data('original-text')); + } - if(!$self.data(dataName)) { - // Button re-enables after a timeout to prevent button becoming - // permanently un-usable - $self.data(dataName, setTimeout(function(){ - clearTimeout($self.data(dataName)); + }, reEnableAfter * 1000)); - $self.prop('disabled', '').removeData(dataName).removeClass('button-longrunning-active') - - if($self.data('clicked-text')){ - $replacementElem.text($self.data('original-text')); + if($self.data('clicked-text') && $replacementElem.length){ + // Save current button text + $self.data('original-text', $replacementElem.text()); + + $replacementElem.text($self.data('clicked-text')); } - }, reEnableAfter * 1000)); - - if($self.data('clicked-text') && $replacementElem.length){ - // Save current button text - $self.data('original-text', $replacementElem.text()); - - $replacementElem.text($self.data('clicked-text')); + // Disabling button must be done last: disabled buttons can't be + // modified in the normal way, it would seem. + $self.addClass('button-longrunning-active').prop('disabled', 'true'); } - - // Disabling button must be done last: disabled buttons can't be - // modified in the normal way, it would seem. - $self.addClass('button-longrunning-active').prop('disabled', 'true'); - } + clearTimeout(timeout); + },10); }); });