app/javascript/beyond_canvas/initializers/buttons.js in beyond_canvas-0.22.0.pre vs app/javascript/beyond_canvas/initializers/buttons.js in beyond_canvas-0.23.0.pre

- old
+ new

@@ -21,29 +21,36 @@ $(BUTTON_SELECTORS).each(function () { $(this).buildButton(); }); }; - $(document).on('confirm:complete', function () { + $(document).on('confirm:complete', function () { $.restoreActionElements(); }); - $(document).on('click', BUTTON_SELECTORS, function () { + $(document).on('click', BUTTON_SELECTORS, function (e) { var button = $(this); + if(e.target.attributes.getNamedItem('target')?.value === '_blank') return; + $.disableActionElements(); if (!button.hasClass('button--no-spinner')) { $(this).showSpinner(); } }); $(document).on('ready page:load turbolinks:load', onDOMReady); + + $(document).on('beforeunload turbolinks:before-visit', function () { + $.restoreActionElements(); + }); })(jQuery); $.extend({ restoreActionElements: function () { + setTimeout(function () { // Hide spinners $(BUTTON_SELECTORS).each(function (_, button) { setTimeout(function () { // Hide the spinner $(button).find('.spinner').hide(); @@ -54,9 +61,10 @@ // Enable action elements $('a, input[type="submit"], input[type="button"], input[type="reset"], button').each(function () { $(this).removeClass('actions--disabled'); }); + }, 100); }, disableActionElements: function () { $('a, input[type="submit"], input[type="button"], input[type="reset"], button').each(function () { $(this).addClass('actions--disabled'); });