Changeset 35317
- Timestamp:
- 10/21/2015 05:22:52 AM (9 years ago)
- Location:
- trunk/src/wp-admin
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-admin/admin-ajax.php
r34312 r35317 57 57 'menu-locations-save', 'menu-quick-search', 'meta-box-order', 'get-permalink', 58 58 'sample-permalink', 'inline-save', 'inline-save-tax', 'find_posts', 'widgets-order', 59 'save-widget', ' set-post-thumbnail', 'date_format', 'time_format',59 'save-widget', 'delete-inactive-widgets', 'set-post-thumbnail', 'date_format', 'time_format', 60 60 'wp-remove-post-lock', 'dismiss-wp-pointer', 'upload-attachment', 'get-attachment', 61 61 'query-attachments', 'save-attachment', 'save-attachment-compat', 'send-link-to-editor', -
trunk/src/wp-admin/css/widgets.css
r35015 r35317 273 273 } 274 274 275 .sidebar-name .spinner { 275 .sidebar-name .spinner, 276 .remove-inactive-widgets .spinner { 276 277 float: none; 277 278 position: relative; … … 349 350 .js .widgets-holder-wrap.closed .widget, 350 351 .js .widgets-holder-wrap.closed .sidebar-description, 352 .js .widgets-holder-wrap.closed .remove-inactive-widgets, 351 353 .js .closed br.clear { 352 354 display: none; -
trunk/src/wp-admin/includes/ajax-actions.php
r35168 r35317 1935 1935 1936 1936 /** 1937 * Ajax handler for removing inactive widgets. 1938 * 1939 * @since 4.4.0 1940 */ 1941 function wp_ajax_delete_inactive_widgets() { 1942 check_ajax_referer( 'remove-inactive-widgets', 'removeinactivewidgets' ); 1943 1944 if ( ! current_user_can( 'edit_theme_options' ) ) { 1945 wp_die( -1 ); 1946 } 1947 1948 unset( $_POST['removeinactivewidgets'], $_POST['action'] ); 1949 1950 do_action( 'load-widgets.php' ); 1951 do_action( 'widgets.php' ); 1952 do_action( 'sidebar_admin_setup' ); 1953 1954 $sidebars_widgets = wp_get_sidebars_widgets(); 1955 1956 foreach ( $sidebars_widgets['wp_inactive_widgets'] as $key => $widget_id ) { 1957 $pieces = explode( '-', $widget_id ); 1958 $multi_number = array_pop( $pieces ); 1959 $id_base = implode( '-', $pieces ); 1960 $widget = get_option( 'widget_' . $id_base ); 1961 unset( $widget[$multi_number] ); 1962 update_option( 'widget_' . $id_base, $widget ); 1963 unset( $sidebars_widgets['wp_inactive_widgets'][$key] ); 1964 } 1965 1966 wp_set_sidebars_widgets( $sidebars_widgets ); 1967 1968 wp_die(); 1969 } 1970 1971 /** 1937 1972 * Ajax handler for uploading attachments 1938 1973 * -
trunk/src/wp-admin/js/widgets.js
r35015 r35317 80 80 widget.removeClass( 'open' ); 81 81 wpWidgets.close( widget ); 82 e.preventDefault(); 83 } else if ( target.attr( 'id' ) === 'inactive-widgets-control-remove' ) { 84 wpWidgets.removeInactiveWidgets(); 82 85 e.preventDefault(); 83 86 } … … 388 391 389 392 $.post( ajaxurl, data, function() { 393 $( '#inactive-widgets-control-remove' ).prop( 'disabled' , ! $( '#wp_inactive_widgets .widget' ).length ); 390 394 $( '.spinner' ).removeClass( 'is-active' ); 391 395 }); … … 432 436 } else { 433 437 widget.remove(); 438 439 if ( sidebarId === 'wp_inactive_widgets' ) { 440 $( '#inactive-widgets-control-remove' ).prop( 'disabled' , ! $( '#wp_inactive_widgets .widget' ).length ); 441 } 434 442 } 435 443 } else { … … 439 447 wpWidgets.appendTitle( widget ); 440 448 $document.trigger( 'widget-updated', [ widget ] ); 441 } 442 } 449 450 if ( sidebarId === 'wp_inactive_widgets' ) { 451 $( '#inactive-widgets-control-remove' ).prop( 'disabled' , ! $( '#wp_inactive_widgets .widget' ).length ); 452 } 453 } 454 } 455 443 456 if ( order ) { 444 457 wpWidgets.saveOrder(); 445 458 } 446 459 }); 460 }, 461 462 removeInactiveWidgets : function() { 463 var $element = $( '.remove-inactive-widgets' ), a, data; 464 465 $( '.spinner', $element ).addClass( 'is-active' ); 466 467 a = { 468 action : 'delete-inactive-widgets', 469 removeinactivewidgets : $( '#_wpnonce_remove_inactive_widgets' ).val() 470 }; 471 472 data = $.param( a ); 473 474 $.post( ajaxurl, data, function() { 475 $( '#wp_inactive_widgets .widget' ).remove(); 476 $( '#inactive-widgets-control-remove' ).prop( 'disabled' , true ); 477 $( '.spinner', $element ).removeClass( 'is-active' ); 478 } ); 447 479 }, 448 480 -
trunk/src/wp-admin/widgets.php
r35102 r35317 195 195 } 196 196 197 // Remove inactive widgets without js 198 if ( isset( $_POST['removeinactivewidgets'] ) ) { 199 check_admin_referer( 'remove-inactive-widgets', '_wpnonce_remove_inactive_widgets' ); 200 201 if ( $_POST['removeinactivewidgets'] ) { 202 foreach ( $sidebars_widgets['wp_inactive_widgets'] as $key => $widget_id ) { 203 $pieces = explode( '-', $widget_id ); 204 $multi_number = array_pop( $pieces ); 205 $id_base = implode( '-', $pieces ); 206 $widget = get_option( 'widget_' . $id_base ); 207 unset( $widget[$multi_number] ); 208 update_option( 'widget_' . $id_base, $widget ); 209 unset( $sidebars_widgets['wp_inactive_widgets'][$key] ); 210 } 211 212 wp_set_sidebars_widgets( $sidebars_widgets ); 213 } 214 215 wp_redirect( admin_url( 'widgets.php?message=0' ) ); 216 exit; 217 } 218 197 219 // Output the widget form without js 198 220 if ( isset($_GET['editwidget']) && $_GET['editwidget'] ) { … … 389 411 <div class="widget-holder inactive"> 390 412 <?php wp_list_widget_controls( $registered_sidebar['id'], $registered_sidebar['name'] ); ?> 391 <div class="clear"></div> 413 <div class="remove-inactive-widgets"> 414 <form action="" method="post"> 415 <p> 416 <?php 417 $attributes = array( 'id' => 'inactive-widgets-control-remove' ); 418 419 if ( empty($sidebars_widgets['wp_inactive_widgets']) ) { 420 $attributes['disabled'] = ''; 421 } 422 423 submit_button( __( 'Clear Inactive Widgets' ), 'delete', 'removeinactivewidgets', false, $attributes ); 424 ?> 425 <span class="spinner"> 426 </p> 427 <?php wp_nonce_field( 'remove-inactive-widgets', '_wpnonce_remove_inactive_widgets' ); ?> 428 </form> 429 </div> 392 430 </div> 431 <p class="description"><?php _e( 'This will clear all items from the inactive widgets list. You will not be able to restore any customizations.' ); ?></p> 393 432 </div> 394 433 <?php
Note: See TracChangeset
for help on using the changeset viewer.