Widgets: add a button to delete all inactive widgets simultaneously for better UX.

Props cdog.
Fixes #19159.

git-svn-id: https://develop.svn.wordpress.org/trunk@35317 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Andrew Ozz
2015-10-21 05:22:52 +00:00
parent ba1177bf4c
commit 7ba408c93e
5 changed files with 111 additions and 3 deletions
+32
View File
@@ -80,6 +80,9 @@ wpWidgets = {
widget.removeClass( 'open' );
wpWidgets.close( widget );
e.preventDefault();
} else if ( target.attr( 'id' ) === 'inactive-widgets-control-remove' ) {
wpWidgets.removeInactiveWidgets();
e.preventDefault();
}
});
@@ -387,6 +390,7 @@ wpWidgets = {
});
$.post( ajaxurl, data, function() {
$( '#inactive-widgets-control-remove' ).prop( 'disabled' , ! $( '#wp_inactive_widgets .widget' ).length );
$( '.spinner' ).removeClass( 'is-active' );
});
},
@@ -431,6 +435,10 @@ wpWidgets = {
});
} else {
widget.remove();
if ( sidebarId === 'wp_inactive_widgets' ) {
$( '#inactive-widgets-control-remove' ).prop( 'disabled' , ! $( '#wp_inactive_widgets .widget' ).length );
}
}
} else {
$( '.spinner' ).removeClass( 'is-active' );
@@ -438,14 +446,38 @@ wpWidgets = {
$( 'div.widget-content', widget ).html( r );
wpWidgets.appendTitle( widget );
$document.trigger( 'widget-updated', [ widget ] );
if ( sidebarId === 'wp_inactive_widgets' ) {
$( '#inactive-widgets-control-remove' ).prop( 'disabled' , ! $( '#wp_inactive_widgets .widget' ).length );
}
}
}
if ( order ) {
wpWidgets.saveOrder();
}
});
},
removeInactiveWidgets : function() {
var $element = $( '.remove-inactive-widgets' ), a, data;
$( '.spinner', $element ).addClass( 'is-active' );
a = {
action : 'delete-inactive-widgets',
removeinactivewidgets : $( '#_wpnonce_remove_inactive_widgets' ).val()
};
data = $.param( a );
$.post( ajaxurl, data, function() {
$( '#wp_inactive_widgets .widget' ).remove();
$( '#inactive-widgets-control-remove' ).prop( 'disabled' , true );
$( '.spinner', $element ).removeClass( 'is-active' );
} );
},
appendTitle : function(widget) {
var title = $('input[id*="-title"]', widget).val() || '';