Make WordPress Core

Ticket #41894: 41894.3.diff

File 41894.3.diff, 1.5 KB (added by felipeelia, 7 years ago)
  • src/wp-admin/js/widgets.js

     
    550550
    551551                                if ( animate ) {
    552552                                        order = 0;
    553                                         widget.slideUp('fast', function(){
    554                                                 $(this).remove();
     553                                        widget.slideUp( 'fast', function() {
     554                                                $( this ).remove();
    555555                                                wpWidgets.saveOrder();
     556                                                delete self.dirtyWidgets[ id ];
    556557                                        });
    557558                                } else {
    558559                                        widget.remove();
     560                                        delete self.dirtyWidgets[ id ];
    559561
    560562                                        if ( sidebarId === 'wp_inactive_widgets' ) {
    561563                                                $( '#inactive-widgets-control-remove' ).prop( 'disabled' , ! $( '#wp_inactive_widgets .widget' ).length );
     
    590592        },
    591593
    592594        removeInactiveWidgets : function() {
    593                 var $element = $( '.remove-inactive-widgets' ), a, data;
     595                var $element = $( '.remove-inactive-widgets' ), self = this, a, data;
    594596
    595597                $( '.spinner', $element ).addClass( 'is-active' );
    596598
     
    602604                data = $.param( a );
    603605
    604606                $.post( ajaxurl, data, function() {
    605                         $( '#wp_inactive_widgets .widget' ).remove();
     607                        // Iterate over inactive widgets to remove them from dirtyWidgets before removing them from DOM
     608                        $( '#wp_inactive_widgets .widget' ).each(function() {
     609                                var $this = $( this );
     610                                delete self.dirtyWidgets[ $( 'input.widget-id', $this ).val() ];
     611                                $this.remove();
     612                        });
    606613                        $( '#inactive-widgets-control-remove' ).prop( 'disabled' , true );
    607614                        $( '.spinner', $element ).removeClass( 'is-active' );
    608615                } );