diff --git a/core/themes/seven/js/dropzone.es6.js b/core/themes/seven/js/dropzone.es6.js index 16e87fd4d6..33c7a27095 100644 --- a/core/themes/seven/js/dropzone.es6.js +++ b/core/themes/seven/js/dropzone.es6.js @@ -87,6 +87,16 @@ }); }); + // Move error messages outside the dropzone element. + const validateExtension = Drupal.file.validateExtension; + Drupal.file.validateExtension = function(event) { + validateExtension.bind(this)(event); + $(this) + .closest('div.js-form-managed-file') + .find('.file-upload-js-error') + .insertBefore($(this).closest('.js-form-item')); + }; + Drupal.ajax.instances .filter(instance => { if (instance && instance.element) { diff --git a/core/themes/seven/js/dropzone.js b/core/themes/seven/js/dropzone.js index 77f50a7505..257e9f6fae 100644 --- a/core/themes/seven/js/dropzone.js +++ b/core/themes/seven/js/dropzone.js @@ -45,6 +45,12 @@ }); }); + var validateExtension = Drupal.file.validateExtension; + Drupal.file.validateExtension = function (event) { + validateExtension.bind(this)(event); + $(this).closest('div.js-form-managed-file').find('.file-upload-js-error').insertBefore($(this).closest('.js-form-item')); + }; + Drupal.ajax.instances.filter(function (instance) { if (instance && instance.element) { var element = $(instance.element);