WordPress.org

Make WordPress Core

Ticket #24716: 24716.52.diff

File 24716.52.diff, 2.8 KB (added by kovshenin, 3 years ago)
  • src/wp-includes/js/media-grid.js

     
    206206                                suggestedWidth:  state.get('suggestedWidth'), 
    207207                                suggestedHeight: state.get('suggestedHeight'), 
    208208 
    209                                 AttachmentView: state.get('AttachmentView') 
     209                                AttachmentView: state.get('AttachmentView'), 
     210 
     211                                scrollElement: document 
    210212                        }); 
    211213                } 
    212214        }); 
  • src/wp-includes/js/media-views.js

     
    51955195 
    51965196                cssTemplate: media.template('attachments-css'), 
    51975197 
    5198                 events: { 
    5199                         'scroll': 'scroll' 
    5200                 }, 
    5201  
    52025198                initialize: function() { 
    52035199                        this.el.id = _.uniqueId('__attachments-view-'); 
    52045200 
     
    52295225 
    52305226                        this.collection.on( 'reset', this.render, this ); 
    52315227 
    5232                         // Throttle the scroll handler. 
     5228                        // Throttle the scroll handler and bind this. 
    52335229                        this.scroll = _.chain( this.scroll ).bind( this ).throttle( this.options.refreshSensitivity ).value(); 
    52345230 
     5231                        this.options.scrollElement = this.options.scrollElement || this.el; 
     5232                        $( this.options.scrollElement ).on( 'scroll', this.scroll ); 
     5233 
    52355234                        this.initSortable(); 
    52365235 
    52375236                        _.bindAll( this, 'css' ); 
     
    54005399 
    54015400                scroll: function() { 
    54025401                        var view = this, 
     5402                                el = this.options.scrollElement, 
     5403                                scrollTop = el.scrollTop, 
    54035404                                toolbar; 
    54045405 
    5405                         if ( ! this.$el.is(':visible') || ! this.collection.hasMore() ) { 
     5406                        // The scroll event occurs on the document, but the element 
     5407                        // that should be checked is the document body. 
     5408                        if ( el == document ) { 
     5409                                el = document.body; 
     5410                                scrollTop = $(document).scrollTop(); 
     5411                        } 
     5412 
     5413                        if ( ! $(el).is(':visible') || ! this.collection.hasMore() ) { 
    54065414                                return; 
    54075415                        } 
    54085416 
    54095417                        toolbar = this.views.parent.toolbar; 
    54105418 
    54115419                        // Show the spinner only if we are close to the bottom. 
    5412                         if ( this.el.scrollHeight - ( this.el.scrollTop + this.el.clientHeight ) < this.el.clientHeight / 3 ) { 
     5420                        if ( el.scrollHeight - ( scrollTop + el.clientHeight ) < el.clientHeight / 3 ) { 
    54135421                                toolbar.get('spinner').show(); 
    54145422                        } 
    54155423 
    5416                         if ( this.el.scrollHeight < this.el.scrollTop + ( this.el.clientHeight * this.options.refreshThreshold ) ) { 
     5424                        if ( el.scrollHeight < scrollTop + ( el.clientHeight * this.options.refreshThreshold ) ) { 
    54175425                                this.collection.more().done(function() { 
    54185426                                        view.scroll(); 
    54195427                                        toolbar.get('spinner').hide(); 
     
    58535861                                selection:            this.options.selection, 
    58545862                                model:                this.model, 
    58555863                                sortable:             this.options.sortable, 
     5864                                scrollElement:        this.options.scrollElement, 
    58565865 
    58575866                                // The single `Attachment` view to be used in the `Attachments` view. 
    58585867                                AttachmentView: this.options.AttachmentView