WordPress.org

Make WordPress Core

Ticket #22750: 22750.2.diff

File 22750.2.diff, 1.6 KB (added by koopersmith, 5 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 );