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');
});