WordPress.org

Make WordPress Core

Ticket #22750: 22750.2.diff

File 22750.2.diff, 1.6 KB (added by koopersmith, 2 years ago)
  • wp-includes/js/media-models.js

     
    142142 
    143143                                // Use with PHP's wp_send_json_success() and wp_send_json_error() 
    144144                                $.ajax( options ).done( function( response ) { 
     145                                        // Treat a response of `1` as successful for backwards 
     146                                        // compatibility with existing handlers. 
     147                                        if ( response === '1' || response === 1 ) 
     148                                                response = { success: true }; 
     149 
    145150                                        if ( _.isObject( response ) && ! _.isUndefined( response.success ) ) 
    146151                                                deferred[ response.success ? 'resolveWith' : 'rejectWith' ]( this, [response.data] ); 
    147152                                        else 
     
    264269                        // This will permanently delete an attachment. 
    265270                        } else if ( 'delete' === method ) { 
    266271                                options = options || {}; 
     272 
     273                                if ( ! options.wait ) 
     274                                        this.destroyed = true; 
     275 
    267276                                options.context = this; 
    268277                                options.data = _.extend( options.data || {}, { 
    269278                                        action:   'delete-post', 
    270279                                        id:       this.id, 
    271280                                        _wpnonce: this.get('nonces')['delete'] 
    272281                                }); 
    273                                 return media.ajax( options ); 
     282 
     283                                return media.ajax( options ).done( function() { 
     284                                        this.destroyed = true; 
     285                                }).fail( function() { 
     286                                        this.destroyed = false; 
     287                                }); 
    274288                        } 
    275289                }, 
    276290 
     
    401415                        this.reset( this._source.filter( this.validator, this ) ); 
    402416                }, 
    403417 
     418                validateDestroyed: false, 
     419 
    404420                validator: function( attachment ) { 
     421                        if ( ! this.validateDestroyed && attachment.destroyed ) 
     422                                return false; 
    405423                        return _.all( this.filters, function( filter, key ) { 
    406424                                return !! filter.call( this, attachment ); 
    407425                        }, this );