Make WordPress Core

Ticket #24859: 24859.diff

File 24859.diff, 3.2 KB (added by kovshenin, 11 years ago)
  • src/wp-includes/js/media-views.js

     
    32573257        media.view.AttachmentsBrowser = media.View.extend({
    32583258                tagName:   'div',
    32593259                className: 'attachments-browser',
     3260                spinnerCount: 0,
    32603261
    32613262                initialize: function() {
    32623263                        _.defaults( this.options, {
     
    32673268                                AttachmentView: media.view.Attachment.Library
    32683269                        });
    32693270
     3271                        media.ajax.on( 'ajax', this.updateSpinner, this );
     3272
    32703273                        this.createToolbar();
    32713274                        this.updateContent();
    32723275                        this.createSidebar();
     
    32743277                        this.collection.on( 'add remove reset', this.updateContent, this );
    32753278                },
    32763279
     3280                updateSpinner: function( result, options ) {
     3281                        var view = this,
     3282                            spinnerActions = ['query-attachments'];
     3283
     3284                        if ( _.indexOf(spinnerActions, options.data.action) < 0 )
     3285                                return;
     3286
     3287                        view.spinnerCount += 1;
     3288                        view.toolbar.get('spinner').show();
     3289
     3290                        result.done(function() {
     3291                                view.spinnerCount -= 1;
     3292                                if ( view.spinnerCount < 1 )
     3293                                        view.toolbar.get('spinner').hide();
     3294                        });
     3295                },
     3296
    32773297                dispose: function() {
    32783298                        this.options.selection.off( null, null, this );
    32793299                        media.View.prototype.dispose.apply( this, arguments );
     
    33033323                                }).render() );
    33043324                        }
    33053325
     3326                        this.toolbar.set( 'spinner', new media.view.Spinner({
     3327                                priority: -70
     3328                        }) );
     3329
    33063330                        if ( this.options.search ) {
    33073331                                this.toolbar.set( 'search', new media.view.Search({
    33083332                                        controller: this.controller,
     
    39633987                        this.$('img').attr( 'src', this.model.get('url') );
    39643988                }
    39653989        });
     3990
     3991        media.view.Spinner = media.View.extend({
     3992                tagName:   'span',
     3993                className: 'spinner',
     3994
     3995                show: function() {
     3996                        this.$el.show();
     3997                        return this;
     3998                },
     3999
     4000                hide: function() {
     4001                        this.$el.hide();
     4002                        return this;
     4003                }
     4004        });
    39664005}(jQuery));
     4006 No newline at end of file
  • src/wp-includes/js/media-models.js

     
    9090                 * Sends an XHR request to WordPress.
    9191                 * See wp.ajax.send() in `wp-includes/js/wp-util.js`.
    9292                 */
    93                 ajax: wp.ajax.send,
     93                ajax: function( action, options ) {
     94                        if ( _.isObject( action ) )
     95                                options = action;
    9496
     97                        var result = wp.ajax.send.apply( this, arguments );
     98                        this.ajax.trigger( 'ajax', result, options );
     99                        return result;
     100                },
     101
    95102                // Scales a set of dimensions to fit within bounding dimensions.
    96103                fit: function( dimensions ) {
    97104                        var width     = dimensions.width,
     
    144151                }
    145152        });
    146153
     154        _.extend( media.ajax, Backbone.Events );
    147155
     156
    148157        /**
    149158         * ========================================================================
    150159         * MODELS
  • src/wp-includes/css/media-views.css

     
    590590}
    591591
    592592/**
     593 * Media toolbar spinner
     594 */
     595.media-frame .media-toolbar .spinner {
     596        margin-top: 15px;
     597}
     598
     599/**
    593600 * Search
    594601 */
    595602.media-frame .search {