WordPress.org

Make WordPress Core

Ticket #22654: 22654.2.diff

File 22654.2.diff, 6.4 KB (added by koopersmith, 17 months ago)
  • wp-includes/js/media-editor.js

     
    205205                                        args.post__not_in = attrs.exclude.split(','); 
    206206 
    207207                                if ( ! args.post__in ) 
    208                                         args.parent = attrs.id; 
     208                                        args.uploadedTo = attrs.id; 
    209209 
    210210                                // Collect the attributes that were not included in `args`. 
    211211                                others = _.omit( attrs, 'id', 'ids', 'include', 'exclude', 'orderby', 'order' ); 
     
    228228                                // the collection will already reflect those properties. 
    229229                                attrs.ids = attachments.pluck('id'); 
    230230 
    231                                 // Copy the `parent` post ID. 
    232                                 if ( props.parent ) 
    233                                         attrs.id = props.parent; 
     231                                // Copy the `uploadedTo` post ID. 
     232                                if ( props.uploadedTo ) 
     233                                        attrs.id = props.uploadedTo; 
    234234 
    235235                                // If the `ids` attribute is set and `orderby` attribute 
    236236                                // is the default value, clear it for cleaner output. 
  • wp-includes/js/media-models.js

     
    316316                        this.filters = options.filters || {}; 
    317317 
    318318                        // Bind default `change` events to the `props` model. 
     319                        this.props.on( 'change', this._changeFilteredProps, this ); 
     320 
    319321                        this.props.on( 'change:order',   this._changeOrder,   this ); 
    320322                        this.props.on( 'change:orderby', this._changeOrderby, this ); 
    321323                        this.props.on( 'change:query',   this._changeQuery,   this ); 
    322                         this.props.on( 'change:search',  this._changeSearch,  this ); 
    323                         this.props.on( 'change:type',    this._changeType,    this ); 
    324324 
    325325                        // Set the `props` model and fill the default property values. 
    326326                        this.props.set( _.defaults( options.props || {} ) ); 
     
    359359                        } 
    360360                }, 
    361361 
    362                 _changeFilteredProp: function( prop, model, term ) { 
     362                _changeFilteredProps: function( model, options ) { 
    363363                        // If this is a query, updating the collection will be handled by 
    364364                        // `this._requery()`. 
    365365                        if ( this.props.get('query') ) 
    366366                                return; 
    367367 
    368                         if ( term && ! this.filters[ prop ] ) 
    369                                 this.filters[ prop ] = Attachments.filters[ prop ]; 
    370                         else if ( ! term && this.filters[ prop ] === Attachments.filters[ prop ] ) 
    371                                 delete this.filters[ prop ]; 
     368                        var changed = _.chain( options.changes ).map( function( t, prop ) { 
     369                                var filter = Attachments.filters[ prop ], 
     370                                        term = model.get( prop ); 
    372371 
     372                                if ( ! filter ) 
     373                                        return; 
     374 
     375                                if ( term && ! this.filters[ prop ] ) 
     376                                        this.filters[ prop ] = filter; 
     377                                else if ( ! term && this.filters[ prop ] === filter ) 
     378                                        delete this.filters[ prop ]; 
     379                                else 
     380                                        return; 
     381 
     382                                // Record the change. 
     383                                return true; 
     384                        }, this ).any().value(); 
     385 
     386                        if ( ! changed ) 
     387                                return; 
     388 
    373389                        // If no `Attachments` model is provided to source the searches 
    374390                        // from, then automatically generate a source from the existing 
    375391                        // models. 
     
    379395                        this.reset( this._source.filter( this.validator, this ) ); 
    380396                }, 
    381397 
    382                 _changeSearch: function( model, term ) { 
    383                         return this._changeFilteredProp( 'search', model, term ); 
    384                 }, 
    385  
    386                 _changeType: function( model, term ) { 
    387                         return this._changeFilteredProp( 'type', model, term ); 
    388                 }, 
    389  
    390398                validator: function( attachment ) { 
    391399                        return _.all( this.filters, function( filter, key ) { 
    392400                                return !! filter.call( this, attachment ); 
     
    531539 
    532540                        type: function( attachment ) { 
    533541                                var type = this.props.get('type'); 
    534                                 if ( ! type ) 
     542                                return ! type || -1 !== type.indexOf( attachment.get('type') ); 
     543                        }, 
     544 
     545                        uploadedTo: function( attachment ) { 
     546                                var uploadedTo = this.props.get('uploadedTo'); 
     547                                if ( _.isUndefined( uploadedTo ) ) 
    535548                                        return true; 
    536549 
    537                                 return -1 !== type.indexOf( attachment.get('type') ); 
     550                                return uploadedTo === attachment.get('uploadedTo'); 
    538551                        } 
    539552                } 
    540553        }); 
     
    597610                        // Only observe when a limited number of query args are set. There 
    598611                        // are no filters for other properties, so observing will result in 
    599612                        // false positives in those queries. 
    600                         allowed = [ 's', 'order', 'orderby', 'posts_per_page', 'post_mime_type' ]; 
     613                        allowed = [ 's', 'order', 'orderby', 'posts_per_page', 'post_mime_type', 'post_parent' ]; 
    601614                        if ( wp.Uploader && _( this.args ).chain().keys().difference( allowed ).isEmpty().value() ) 
    602615                                this.observe( wp.Uploader.queue ); 
    603616                }, 
     
    670683                propmap: { 
    671684                        'search':    's', 
    672685                        'type':      'post_mime_type', 
    673                         'parent':    'post_parent', 
    674686                        'perPage':   'posts_per_page', 
    675                         'menuOrder': 'menu_order' 
     687                        'menuOrder': 'menu_order', 
     688                        'uploadedTo': 'post_parent' 
    676689                }, 
    677690 
    678691                // Caches query objects so queries can be easily reused. 
  • wp-includes/js/media-views.js

     
    29202920                        all: { 
    29212921                                text:  l10n.allMediaItems, 
    29222922                                props: { 
    2923                                         parent: null, 
     2923                                        uploadedTo: null, 
    29242924                                        orderby: 'date', 
    29252925                                        order:   'DESC' 
    29262926                                }, 
     
    29302930                        uploaded: { 
    29312931                                text:  l10n.uploadedToThisPost, 
    29322932                                props: { 
    2933                                         parent: media.view.settings.postId, 
     2933                                        uploadedTo: media.view.settings.postId, 
    29342934                                        orderby: 'menuOrder', 
    29352935                                        order:   'ASC' 
    29362936                                }, 
     
    29482948                                        text: text, 
    29492949                                        props: { 
    29502950                                                type:    key, 
    2951                                                 parent: null, 
     2951                                                uploadedTo: null, 
    29522952                                                orderby: 'date', 
    29532953                                                order:   'DESC' 
    29542954                                        } 
     
    29592959                                text:  l10n.allMediaItems, 
    29602960                                props: { 
    29612961                                        type:    null, 
    2962                                         parent: null, 
     2962                                        uploadedTo: null, 
    29632963                                        orderby: 'date', 
    29642964                                        order:   'DESC' 
    29652965                                }, 
     
    29702970                                text:  l10n.uploadedToThisPost, 
    29712971                                props: { 
    29722972                                        type:    null, 
    2973                                         parent: media.view.settings.postId, 
     2973                                        uploadedTo: media.view.settings.postId, 
    29742974                                        orderby: 'menuOrder', 
    29752975                                        order:   'ASC' 
    29762976                                }, 
  • wp-includes/js/plupload/wp-plupload.js

     
    155155                                        file:      file, 
    156156                                        uploading: true, 
    157157                                        date:      new Date(), 
    158                                         filename:  file.name 
     158                                        filename:  file.name, 
     159                                        menuOrder: 0, 
     160                                        uploadedTo: media.model.settings.postId 
    159161                                }, _.pick( file, 'loaded', 'size', 'percent' ) ); 
    160162 
    161163                                // Handle early mime type scanning for images.