Make WordPress Core

Ticket #24859: 24859.14.diff

File 24859.14.diff, 2.1 KB (added by gcorne, 11 years ago)
  • src/wp-includes/js/media-views.js

    diff --git a/src/wp-includes/js/media-views.js b/src/wp-includes/js/media-views.js
    index e0d181c..ad1f5df 100644
    a b  
    51035103                },
    51045104
    51055105                scroll: function() {
     5106                        var view = this,
     5107                                toolbar;
     5108
    51065109                        // @todo: is this still necessary?
    51075110                        if ( ! this.$el.is(':visible') ) {
    51085111                                return;
    51095112                        }
    51105113
    51115114                        if ( this.collection.hasMore() && this.el.scrollHeight < this.el.scrollTop + ( this.el.clientHeight * this.options.refreshThreshold ) ) {
    5112                                 this.collection.more().done( this.scroll );
     5115                                toolbar = this.views.parent.toolbar;
     5116                                toolbar.get('spinner').show();
     5117
     5118                                this.collection.more().done(function() {
     5119                                        view.scroll();
     5120                                        toolbar.get('spinner').hide();
     5121                                });
    51135122                        }
    51145123                }
    51155124        }, {
     
    53495358
    53505359                        this.collection.on( 'add remove reset', this.updateContent, this );
    53515360                },
    5352                 toggleSpinner: function( state ) {
    5353                         if ( state ) {
    5354                                 this.spinnerTimeout = _.delay(function( view ) {
    5355                                         view.toolbar.get( 'spinner' ).show();
    5356                                 }, 600, this );
    5357                         } else {
    5358                                 this.toolbar.get( 'spinner' ).hide();
    5359                                 clearTimeout( this.spinnerTimeout );
    5360                         }
    5361                 },
    53625361                /**
    53635362                 * @returns {wp.media.view.AttachmentsBrowser} Returns itself to allow chaining
    53645363                 */
     
    54235422                        }
    54245423
    54255424                        if ( ! this.collection.length ) {
    5426                                 this.toggleSpinner( true );
     5425                                this.toolbar.get( 'spinner' ).show();
    54275426                                this.collection.more().done(function() {
    54285427                                        if ( ! view.collection.length ) {
    54295428                                                view.createUploader();
    54305429                                        }
    5431                                         view.toggleSpinner( false );
     5430                                        view.toolbar.get( 'spinner' ).hide();
    54325431                                });
    54335432                        }
    54345433                },
     
    66156614        media.view.Spinner = media.View.extend({
    66166615                tagName:   'span',
    66176616                className: 'spinner',
     6617                spinnerTimeout: false,
     6618                delay: 300,
    66186619
    66196620                show: function() {
    6620                         this.$el.show();
     6621                        if ( ! this.spinnerTimeout ) {
     6622                                this.spinnerTimeout = _.delay(function( $el ) {
     6623                                        $el.show();
     6624                                }, this.delay, this.$el );
     6625                        }
     6626
    66216627                        return this;
    66226628                },
    66236629
    66246630                hide: function() {
    66256631                        this.$el.hide();
     6632                        this.spinnerTimeout = clearTimeout( this.spinnerTimeout );
     6633
    66266634                        return this;
    66276635                }
    66286636        });