diff -u b/core/modules/file/file.es6.js b/core/modules/file/file.es6.js --- b/core/modules/file/file.es6.js +++ b/core/modules/file/file.es6.js @@ -7,7 +7,7 @@ * prevents separate file fields from accidentally uploading files). */ -(function ($, Drupal, debounce) { +(function ($, Drupal) { /** * Attach behaviors to the file fields passed in the settings. * @@ -85,13 +85,13 @@ Drupal.behaviors.fileButtons = { attach(context) { const $context = $(context); - $context.find('.js-form-submit').on('mousedown.fileButtons', Drupal.file.disableFields); - $context.find('.js-form-managed-file .js-form-submit').on('mousedown.fileButtons', Drupal.file.progressBar); + $context.find('.js-form-submit').on('replaceProgressBar.fileButtons', Drupal.file.disableFields); + $context.find('.js-form-managed-file .js-form-submit').on('replaceProgressBar.fileButtons', Drupal.file.progressBar); }, detach(context) { const $context = $(context); - $context.find('.js-form-submit').off('mousedown.fileButtons'); - $context.find('.js-form-managed-file .js-form-submit').off('mousedown.fileButtons'); + $context.find('.js-form-submit').off('replaceProgressBar.fileButtons'); + $context.find('.js-form-managed-file .js-form-submit').off('replaceProgressBar.fileButtons'); }, }; @@ -167,10 +167,10 @@ * The event triggered. For example `change.autoFileUpload`. */ triggerUploadButton(event) { - // Calling event handlers before the form is submitted. Triggering - // mousedown on submit button may start an asynchronous upload thread. $(event.target).closest('.js-form-managed-file').find('.js-form-submit') - .trigger('mousedown.fileButtons') + // Setup required elements for progress bar. + .trigger('replaceProgressBar') + // Trigger ajax submission. .trigger('mousedown'); }, @@ -182,7 +182,7 @@ * @param {jQuery.Event} event * The event triggered, most likely a `mousedown` event. */ - disableFields: debounce(function (event) { + disableFields(event) { const $clickedButton = $(this).findOnce('ajax'); // Only disable upload fields for Ajax buttons. @@ -210,7 +210,7 @@ setTimeout(() => { $fieldsToTemporarilyDisable.prop('disabled', false); }, 1000); - }, 100, true), + }, /** * Add progress bar support if possible. @@ -220,7 +220,7 @@ * @param {jQuery.Event} event * The event triggered, most likely a `mousedown` event. */ - progressBar: debounce(function (event) { + progressBar(event) { const $clickedButton = $(this); const $progressId = $clickedButton.closest('div.js-form-managed-file').find('input.file-progress'); if ($progressId.length) { @@ -238,7 +238,7 @@ setTimeout(() => { $clickedButton.closest('div.js-form-managed-file').find('div.ajax-progress-bar').slideDown(); }, 500); - }, 100, true), + }, /** * Open links to files within forms in a new window. @@ -257 +257 @@ -})(jQuery, Drupal, Drupal.debounce); +}(jQuery, Drupal)); diff -u b/core/modules/file/file.js b/core/modules/file/file.js --- b/core/modules/file/file.js +++ b/core/modules/file/file.js @@ -5,7 +5,7 @@ * @preserve **/ -(function ($, Drupal, debounce) { +(function ($, Drupal) { Drupal.behaviors.fileValidateAutoAttach = { attach: function attach(context, settings) { var $context = $(context); @@ -49,13 +49,13 @@ Drupal.behaviors.fileButtons = { attach: function attach(context) { var $context = $(context); - $context.find('.js-form-submit').on('mousedown.fileButtons', Drupal.file.disableFields); - $context.find('.js-form-managed-file .js-form-submit').on('mousedown.fileButtons', Drupal.file.progressBar); + $context.find('.js-form-submit').on('replaceProgressBar.fileButtons', Drupal.file.disableFields); + $context.find('.js-form-managed-file .js-form-submit').on('replaceProgressBar.fileButtons', Drupal.file.progressBar); }, detach: function detach(context) { var $context = $(context); - $context.find('.js-form-submit').off('mousedown.fileButtons'); - $context.find('.js-form-managed-file .js-form-submit').off('mousedown.fileButtons'); + $context.find('.js-form-submit').off('replaceProgressBar.fileButtons'); + $context.find('.js-form-managed-file .js-form-submit').off('replaceProgressBar.fileButtons'); } }; @@ -90,10 +90,9 @@ } }, triggerUploadButton: function triggerUploadButton(event) { - $(event.target).closest('.js-form-managed-file').find('.js-form-submit').trigger('mousedown.fileButtons').trigger('mousedown'); + $(event.target).closest('.js-form-managed-file').find('.js-form-submit').trigger('replaceProgressBar').trigger('mousedown'); }, - - disableFields: debounce(function (event) { + disableFields: function disableFields(event) { var $clickedButton = $(this).findOnce('ajax'); if (!$clickedButton.length) { @@ -110,9 +109,8 @@ setTimeout(function () { $fieldsToTemporarilyDisable.prop('disabled', false); }, 1000); - }, 100, true), - - progressBar: debounce(function (event) { + }, + progressBar: function progressBar(event) { var $clickedButton = $(this); var $progressId = $clickedButton.closest('div.js-form-managed-file').find('input.file-progress'); if ($progressId.length) { @@ -131,9 +129,8 @@ - }, 100, true), - + }, openInNewWindow: function openInNewWindow(event) { event.preventDefault(); $(this).attr('target', '_blank'); window.open(this.href, 'filePreview', 'toolbar=0,scrollbars=1,location=1,statusbar=1,menubar=0,resizable=1,width=500,height=550'); } }; -})(jQuery, Drupal, Drupal.debounce); \ No newline at end of file +})(jQuery, Drupal); \ No newline at end of file reverted: --- b/core/modules/file/file.libraries.yml +++ a/core/modules/file/file.libraries.yml @@ -7,4 +7,3 @@ - core/jquery.once - core/drupal - core/drupalSettings - - core/drupal.debounce