From bd70f47d4644fb2ccf1e5957c6007e0b94dc38ac Mon Sep 17 00:00:00 2001 From: Scott Taylor Date: Thu, 16 Oct 2014 05:53:15 +0000 Subject: [PATCH] In `wp.Uploader`, when `uploader:ready` is triggered, set `ready` to `true` on the instance. This allows media workflows to check for an existing uploaded instance when opening. Without this check, workflows might wait for `uploader:ready`, which could already have been fired. This would result in an unresponsive editor dropzone. Fixes #29689. git-svn-id: https://develop.svn.wordpress.org/trunk@29917 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/js/media-views.js | 9 +++++++-- src/wp-includes/js/plupload/wp-plupload.js | 3 ++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/wp-includes/js/media-views.js b/src/wp-includes/js/media-views.js index 16389bfda4..3d8d9d74bc 100644 --- a/src/wp-includes/js/media-views.js +++ b/src/wp-includes/js/media-views.js @@ -3724,7 +3724,7 @@ }, drop: function( event ) { - var $wrap = null; + var $wrap = null, uploadView; this.containerDragleave( event ); this.dropzoneDragleave( event ); @@ -3747,7 +3747,12 @@ title: wp.media.view.l10n.addMedia, multiple: true }); - this.workflow.on( 'uploader:ready', this.addFiles, this ); + uploadView = this.workflow.uploader; + if ( uploadView.uploader && uploadView.uploader.ready ) { + this.addFiles.apply( this ); + } else { + this.workflow.on( 'uploader:ready', this.addFiles, this ); + } } else { this.workflow.state().reset(); this.addFiles.apply( this ); diff --git a/src/wp-includes/js/plupload/wp-plupload.js b/src/wp-includes/js/plupload/wp-plupload.js index 01e7bb6ef7..b13db43991 100644 --- a/src/wp-includes/js/plupload/wp-plupload.js +++ b/src/wp-includes/js/plupload/wp-plupload.js @@ -158,7 +158,8 @@ window.wp = window.wp || {}; dropzone.trigger('dropzone:leave').removeClass('drag-over'); }, 0 ); }); - + + self.ready = true; $(self).trigger( 'uploader:ready' ); });