WordPress.org

Make WordPress Core

Ticket #19159: 19159.diff

File 19159.diff, 4.5 KB (added by cdog, 8 years ago)
  • wp-admin/admin-ajax.php

     
    4949        'hidden-columns', 'update-welcome-panel', 'menu-get-metabox', 'wp-link-ajax',
    5050        'menu-locations-save', 'menu-quick-search', 'meta-box-order', 'get-permalink',
    5151        'sample-permalink', 'inline-save', 'inline-save-tax', 'find_posts', 'widgets-order',
    52         'save-widget', 'set-post-thumbnail', 'date_format', 'time_format', 'wp-fullscreen-save-post',
     52        'save-widget', 'delete-inactive-widgets', 'set-post-thumbnail', 'date_format', 'time_format', 'wp-fullscreen-save-post',
    5353        'wp-remove-post-lock', 'dismiss-wp-pointer', 'upload-attachment', 'get-attachment', 'query-attachments',
    5454);
    5555
  • wp-admin/includes/ajax-actions.php

     
    16071607        wp_die();
    16081608}
    16091609
     1610function wp_ajax_delete_inactive_widgets() {
     1611        check_ajax_referer( 'remove-inactive-widgets', 'removeinactivewidgets' );
     1612
     1613        if ( !current_user_can('edit_theme_options') )
     1614                wp_die( -1 );
     1615
     1616        unset( $_POST['removeinactivewidgets'], $_POST['action'] );
     1617
     1618        do_action('load-widgets.php');
     1619        do_action('widgets.php');
     1620        do_action('sidebar_admin_setup');
     1621
     1622        $sidebars_widgets = wp_get_sidebars_widgets();
     1623        $sidebars_widgets['wp_inactive_widgets'] = array();
     1624        wp_set_sidebars_widgets( $sidebars_widgets );
     1625
     1626        wp_die();
     1627}
     1628
    16101629function wp_ajax_upload_attachment() {
    16111630        check_ajax_referer( 'media-form' );
    16121631
  • wp-admin/js/widgets.js

     
    6363                        } else if ( target.hasClass('widget-control-close') ) {
    6464                                wpWidgets.close( target.closest('div.widget') );
    6565                                e.preventDefault();
     66                        } else if ( target.attr( 'id' ) == 'inactive-widgets-control-remove' ) {
     67                                wpWidgets.removeInactiveWidgets();
     68                                e.preventDefault();
    6669                        }
    6770                });
    6871
     
    247250                });
    248251        },
    249252
     253        removeInactiveWidgets : function() {
     254                var sb = $( '.inactive-sidebar' ), data, a;
     255
     256                $( '.ajax-feedback', sb ).css( 'visibility', 'visible' );
     257
     258                a = {
     259                        action : 'delete-inactive-widgets',
     260                        removeinactivewidgets : $( '#_wpnonce_remove_inactive_widgets' ).val()
     261                };
     262
     263                data = $.param( a );
     264
     265                $.post( ajaxurl, data, function() {
     266                        $( '.ajax-feedback' ).css( 'visibility', 'hidden' );
     267                        $( '#wp_inactive_widgets .widget' ).remove();
     268                } );
     269        },
     270
    250271        appendTitle : function(widget) {
    251272                var title = $('input[id*="-title"]', widget).val() || '';
    252273
  • wp-admin/css/wp-admin.css

     
    79287928        margin: 5px 15px 10px;
    79297929}
    79307930
     7931.inactive .remove-inactive-widgets {
     7932        clear: both;
     7933        margin: 0 15px 15px;
     7934}
     7935
    79317936#available-widgets p.description {
    79327937        margin: 0 12px 12px;
    79337938}
  • wp-admin/widgets.php

     
    191191        exit;
    192192}
    193193
     194// We're removing inactive widgets without js
     195if ( isset( $_POST['removeinactivewidgets'] ) ) {
     196        check_admin_referer( 'remove-inactive-widgets', '_wpnonce_remove_inactive_widgets' );
     197
     198        if ( $_POST['removeinactivewidgets'] ) {
     199                $sidebars_widgets['wp_inactive_widgets'] = array();
     200                wp_set_sidebars_widgets( $sidebars_widgets );
     201        }
     202
     203        wp_redirect( admin_url( 'widgets.php?message=0' ) );
     204        exit;
     205}
     206
    194207// Output the widget form without js
    195208if ( isset($_GET['editwidget']) && $_GET['editwidget'] ) {
    196209        $widget_id = $_GET['editwidget'];
     
    365378                        </div>
    366379                        <div class="widget-holder inactive">
    367380                                <?php wp_list_widget_controls( $registered_sidebar['id'] ); ?>
    368                                 <div class="clear"></div>
     381                                <div class="remove-inactive-widgets">
     382                                        <form action="" method="post">
     383                                                <?php submit_button( __( 'Clear Inactive Widgets' ), 'delete', 'removeinactivewidgets', false, array( 'id' => 'inactive-widgets-control-remove' ) ); ?>
     384                                                <span class="description"><?php _e( 'This will clear all items from the inactive widgets list. You will not be able to restore any customizations.' ); ?></span>
     385                                                <?php wp_nonce_field( 'remove-inactive-widgets', '_wpnonce_remove_inactive_widgets' ); ?>
     386                                        </form>
     387                                </div>
    369388                        </div>
    370389                </div>
    371390<?php