Make WordPress Core

Changeset 23441

Timestamp:
02/16/2013 04:53:59 AM (11 years ago)
Author:
markjaquith
Message:

Improve the UX of the Nav Menus screen. Kill the tabs, and change to a
dropdown, unless you have zero or one menus (which is the most common),
in which case you jump right into editing your sole menu.

Do assignment to location using checkboxes in the main menu editing
section instead of the backwards menu => location assignment in a
random meta box.

More to come, but this gets us started.

props lessbloat, DrewAPicture, jkudish. see #23119

Location:
trunk/wp-admin
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/css/colors-fresh.css

    r23409 r23441  
    401401.submitbox .submitdelete:hover,
    402402#media-items a.delete:hover,
    403 #media-items a.delete-permanently:hover {
     403#media-items a.delete-permanently:hover,
     404#nav-menu-footer .menu-delete:hover {
    404405    color: #fff;
    405406    background-color: #f00;
     
    16821683    background: #21759b;
    16831684    color: #fff;
     1685
     1686
     1687
     1688
     1689
     1690
     1691
     1692
     1693
     1694
     1695
     1696
     1697
     1698
     1699
     1700
     1701
     1702
     1703
     1704
     1705
    16841706}
    16851707/* end added from nav-menu.css */
  • trunk/wp-admin/css/wp-admin-rtl.css

    r23417 r23441  
    454526.0 - Full Overlay w/ Sidebar
    464627.0 - Customize Loader
     47
     48
    4749
    4850
     
    23042306}
    23052307
    2306 .auto-add-pages {
    2307     float: right;
    2308 }
    2309 
    23102308/* Star ratings */
    23112309div.star-holder {
     
    25442542}
    25452543
    2546 /**
    2547  * HiDPI Displays
    2548  */
     2544/*------------------------------------------------------------------------------
     2545  28.0 - Nav Menus
     2546------------------------------------------------------------------------------*/
     2547.nav-menus-php .major-publishing-actions .publishing-action {
     2548    float: left;
     2549}
     2550
     2551.menu-settings dd {
     2552    float: right;
     2553    padding-right: 170px;
     2554}
     2555
     2556.manage-menus span {
     2557    float: right;
     2558}
     2559
     2560.menu-settings dt {
     2561    left: auto;
     2562    right: 0;
     2563}
     2564
     2565.menu-settings dd input,
     2566.menu-settings dd span,
     2567.menu-settings dd label,
     2568.manage-menus select {
     2569    float: right;
     2570    margin-right: 6px;
     2571}
     2572
     2573/*------------------------------------------------------------------------------
     2574  29.0 - HiDPI
     2575------------------------------------------------------------------------------*/
    25492576@media print,
    25502577  (-o-min-device-pixel-ratio: 5/4),
  • trunk/wp-admin/css/wp-admin.css

    r23417 r23441  
    67056705/* nav-menu */
    67066706
     6707
     6708
     6709
     6710
     6711
     6712
     6713
     6714
    67076715#nav-menus-frame {
    67086716    margin-left: 300px;
     6717
    67096718}
    67106719
     
    67156724    clear: both;
    67166725    float: left;
    6717     padding-top: 24px;
    6718 }
    6719 
    6720 .no-js #wpbody-content #menu-settings-column {
    6721     padding-top: 31px;
     6726    padding-top: 0;
    67226727}
    67236728
     
    67406745}
    67416746
     6747
     6748
     6749
     6750
     6751
     6752
     6753
     6754
     6755
     6756
     6757
     6758
     6759
     6760
     6761
     6762
     6763
     6764
     6765
     6766
     6767
     6768
     6769
     6770
     6771
     6772
     6773
     6774
     6775
     6776
     6777
     6778
     6779
     6780
     6781
     6782
     6783
     6784
     6785
     6786
     6787
     6788
     6789
     6790
     6791
     6792
     6793
     6794
     6795
     6796
     6797
     6798
     6799
     6800
     6801
     6802
     6803
     6804
     6805
     6806
     6807
     6808
     6809
     6810
     6811
     6812
     6813
     6814
     6815
     6816
     6817
     6818
     6819
     6820
     6821
     6822
     6823
     6824
    67426825/* Menu Container */
    67436826#menu-management-liquid {
    67446827    float: left;
    67456828    min-width: 100%;
     6829
    67466830}
    67476831
     
    67586842
    67596843.nav-menus-php #post-body {
    6760     padding: 10px;
     6844    padding: 10px;
    67616845    border-width: 1px 0;
    67626846    border-style: solid;
     
    67706854#nav-menu-header {
    67716855    border-bottom: 1px solid;
     6856
     6857
     6858
     6859
     6860
    67726861}
    67736862
     
    67886877#menu-management .menu-add-new abbr {
    67896878    font-weight:bold;
    6790 }
    6791 
    6792 /* Menu Tabs */
    6793 
    6794 #menu-management .nav-tabs-nav {
    6795     margin: 0 20px;
    6796 }
    6797 
    6798 #menu-management .nav-tabs-arrow {
    6799     width: 10px;
    6800     padding: 0 5px 4px;
    6801     cursor: pointer;
    6802     position: absolute;
    6803     top: 0;
    6804     line-height: 22px;
    6805     font-size: 18px;
    6806 }
    6807 
    6808 #menu-management .nav-tabs-arrow-left {
    6809     left: 0;
    6810 }
    6811 
    6812 #menu-management .nav-tabs-arrow-right {
    6813     right: 0;
    6814     text-align: right;
    6815 }
    6816 
    6817 #menu-management .nav-tabs-wrapper {
    6818     width: 100%;
    6819     height: 28px;
    6820     margin-bottom: -1px;
    6821     overflow: hidden;
    6822 }
    6823 
    6824 #menu-management .nav-tabs {
    6825     padding-left: 20px;
    6826     padding-right: 10px;
    6827 }
    6828 
    6829 .js #menu-management .nav-tabs {
    6830     float: left;
    6831     margin-left: 0px;
    6832     margin-right: -400px;
    6833 }
    6834 
    6835 #menu-management .nav-tab {
    6836     margin-bottom: 0;
    6837     font-size: 14px;
    68386879}
    68396880
     
    70347075
    70357076#menu-to-edit {
    7036     padding: 1em 0;
     7077    margin: 0;
     7078    padding: 0.1em 0;
    70377079}
    70387080
     
    70507092    line-height:1.5em;
    70517093    position:relative;
    7052     margin: 13px 0 0 0;
     7094    margin: 0 0;
    70537095}
    70547096
     
    72707312    float: right;
    72717313    line-height: 23px;
    7272     margin: 5px 0 1px;
    7273 }
    7274 
    7275 .nav-menus-php .major-publishing-actions .delete-action {
    7276     vertical-align: middle;
    7277     text-align: left;
    7278     float: left;
    7279     padding-right: 15px;
    7280     margin-top: 5px;
    7281 }
    7282 
    7283 .menu-name-label span,
    7284 .auto-add-pages label {
    7285     font-size: 12px;
    7286     font-style: normal;
    7287 }
    7288 
    7289 .menu-name-label {
    7290     margin-right: 15px;
    7291 }
    7292 
    7293 .auto-add-pages input {
    7294     margin-top: 0;
    7295 }
    7296 
    7297 .auto-add-pages {
    7298     margin-top: 4px;
    7299     float: left;
     7314    margin: 2px 0 1px;
     7315}
     7316
     7317.nav-menus-php .blank-slate .menu-settings {
     7318    display: none;
     7319}
     7320
     7321.nav-menus-php .delete-action {
     7322    float: left;
     7323    margin-top: 2px;
    73007324}
    73017325
  • trunk/wp-admin/includes/nav-menu.php

    r22396 r23441  
    8282        $title = empty( $item->label ) ? $title : $item->label;
    8383
     84
     85
     86
     87
    8488        ?>
    8589        <li id="menu-item-<?php echo $item_id; ?>" class="<?php echo implode(' ', $classes ); ?>">
    8690            <dl class="menu-item-bar">
    8791                <dt class="menu-item-handle">
    88                     <span class="item-title"><?php echo esc_html( $title ); ?></span>
     92                    <span class="item-title"><?php echo esc_html( $title ); ?></span>
    8993                    <span class="item-controls">
    9094                        <span class="item-type"><?php echo esc_html( $item->type_label ); ?></span>
     
    183187                                'menu-item' => $item_id,
    184188                            ),
    185                             remove_query_arg($removed_args, admin_url( 'nav-menus.php' ) )
     189                            )
    186190                        ),
    187191                        'delete-menu_item_' . $item_id
    188                     ); ?>"><?php _e('Remove'); ?></a> <span class="meta-sep"> | </span> <a class="item-cancel submitcancel" id="cancel-<?php echo $item_id; ?>" href="<?php echo esc_url( add_query_arg( array('edit-menu-item' => $item_id, 'cancel' => time()), remove_query_arg( $removed_args, admin_url( 'nav-menus.php' ) ) ) );
     192                    ); ?>"><?php _e( ) ) );
    189193                        ?>#menu-item-settings-<?php echo $item_id; ?>"><?php _e('Cancel'); ?></a>
    190194                </div>
     
    383387function wp_nav_menu_setup() {
    384388    // Register meta boxes
    385     if ( wp_get_nav_menus() )
    386         add_meta_box( 'nav-menu-theme-locations', __( 'Theme Locations' ), 'wp_nav_menu_locations_meta_box' , 'nav-menus', 'side', 'default' );
    387     add_meta_box( 'add-custom-links', __('Custom Links'), 'wp_nav_menu_item_link_meta_box', 'nav-menus', 'side', 'default' );
    388389    wp_nav_menu_post_type_meta_boxes();
     390
    389391    wp_nav_menu_taxonomy_meta_boxes();
    390392
     
    412414        return;
    413415
    414     $initial_meta_boxes = array( 'nav-menu-theme-locations', 'add-custom-links', 'add-page', 'add-category' );
     416    $initial_meta_boxes = array( 'nav-menu-theme-locations', 'add-', 'add-category' );
    415417    $hidden_meta_boxes = array();
    416418
     
    490492    $num_locations = count( array_keys($locations) );
    491493
    492     echo '<p class="howto">' . sprintf( _n('Your theme supports %s menu. Select which menu you would like to use.', 'Your theme supports %s menus. Select which menu appears in each location.', $num_locations ), number_format_i18n($num_locations) ) . '</p>';
     494    echo '<p class="howto">' . ) . '</p>';
    493495
    494496    foreach ( $locations as $location => $description ) {
     
    513515    ?>
    514516    <p class="button-controls">
    515         <?php submit_button( __( 'Save' ), 'primary right', 'nav-menu-locations', false, disabled( $nav_menu_selected_id, 0, false ) ); ?>
     517        <?php submit_button( __( 'Save' ), 'primary right', 'nav-menu-locations', false, ) ); ?>
    516518        <span class="spinner"></span>
    517519    </p>
    518520    <?php
     521
     522
     523
     524
     525
     526
     527
     528
     529
     530
     531
     532
     533
     534
     535
     536
     537
     538
     539
     540
    519541}
    520542
     
    555577            <p id="menu-item-name-wrap">
    556578                <label class="howto" for="custom-menu-item-name">
    557                     <span><?php _e('Label'); ?></span>
     579                    <span><?php _e(); ?></span>
    558580                    <input id="custom-menu-item-name" name="menu-item[<?php echo $_nav_menu_placeholder; ?>][menu-item-title]" type="text" class="regular-text menu-item-textbox input-with-default-title" title="<?php esc_attr_e('Menu Item'); ?>" />
    559581                </label>
     
    562584        <p class="button-controls">
    563585            <span class="add-to-menu">
    564                 <input type="submit"<?php disabled( $nav_menu_selected_id, 0 ); ?> class="button-secondary submit-add-to-menu right" value="<?php esc_attr_e('Add to Menu'); ?>" name="add-custom-menu-item" id="submit-customlinkdiv" />
     586                <input type="submit"<?php ); ?> class="button-secondary submit-add-to-menu right" value="<?php esc_attr_e('Add to Menu'); ?>" name="add-custom-menu-item" id="submit-customlinkdiv" />
    565587                <span class="spinner"></span>
    566588            </span>
     
    769791            <span class="list-controls">
    770792                <a href="<?php
    771                     echo esc_url(add_query_arg(
     793                    echo esc_url(add_query_arg(
    772794                        array(
    773795                            $post_type_name . '-tab' => 'all',
    774796                            'selectall' => 1,
    775797                        ),
    776                         remove_query_arg($removed_args)
     798                        remove_query_arg()
    777799                    ));
    778800                ?>#posttype-<?php echo $post_type_name; ?>" class="select-all"><?php _e('Select All'); ?></a>
     
    780802
    781803            <span class="add-to-menu">
    782                 <input type="submit"<?php disabled( $nav_menu_selected_id, 0 ); ?> class="button-secondary submit-add-to-menu right" value="<?php esc_attr_e('Add to Menu'); ?>" name="add-post-type-menu-item" id="submit-posttype-<?php echo $post_type_name; ?>" />
     804                <input type="submit"<?php ; ?>" />
    783805                <span class="spinner"></span>
    784806            </span>
     
    956978
    957979            <span class="add-to-menu">
    958                 <input type="submit"<?php disabled( $nav_menu_selected_id, 0 ); ?> class="button-secondary submit-add-to-menu right" value="<?php esc_attr_e('Add to Menu'); ?>" name="add-taxonomy-menu-item" id="submit-taxonomy-<?php echo $taxonomy_name; ?>" />
     980                <input type="submit"<?php ; ?>" />
    959981                <span class="spinner"></span>
    960982            </span>
     
    10871109        $result = '<div id="menu-instructions" class="post-body-plain';
    10881110        $result .= ( ! empty($menu_items) ) ? ' menu-instructions-inactive">' : '">';
    1089         $result .= '<p>' . __('Select menu items (pages, categories, links) from the boxes at left to begin building your custom menu.') . '</p>';
     1111        $result .= '<p>' . __() . '</p>';
    10901112        $result .= '</div>';
    10911113
     
    11591181        wp_delete_post( $menu_item_id, true );
    11601182}
    1161 
    11621183add_action('admin_head-nav-menus.php', '_wp_delete_orphaned_draft_menu_items');
     1184
     1185
     1186
     1187
     1188
     1189
     1190
     1191
     1192
     1193
     1194
     1195
     1196
     1197
     1198
     1199
     1200
     1201
     1202
     1203
     1204
     1205
     1206
     1207
     1208
     1209
     1210
     1211
     1212
     1213
     1214
     1215
     1216
     1217
     1218
     1219
     1220
     1221
     1222
     1223
     1224
     1225
     1226
     1227
     1228
     1229
     1230
     1231
     1232
     1233
     1234
     1235
     1236
     1237
     1238
     1239
     1240
     1241
     1242
     1243
     1244
     1245
     1246
     1247
     1248
     1249
     1250
     1251
     1252
     1253
     1254
     1255
     1256
     1257
     1258
     1259
     1260
     1261
     1262
     1263
     1264
     1265
     1266
     1267
     1268
     1269
     1270
     1271
     1272
     1273
     1274
     1275
     1276
     1277
     1278
     1279
     1280
     1281
     1282
     1283
     1284
     1285
     1286
     1287
     1288
     1289
     1290
     1291
     1292
     1293
     1294
     1295
     1296
     1297
  • trunk/wp-admin/js/nav-menu.js

    r22019 r23441  
    4646                this.initSortables();
    4747
     48
     49
     50
     51
     52
     53
     54
    4855            this.initToggles();
    49 
    50             this.initTabManager();
    5156        },
    5257
     
    8590                    return result;
    8691                },
     92
     93
     94
     95
     96
     97
     98
     99
     100
     101
     102
     103
     104
     105
     106
     107
     108
     109
     110
     111
     112
     113
     114
     115
     116
     117
     118
     119
     120
     121
     122
     123
     124
     125
     126
     127
     128
    87129                updateParentMenuItemDBId : function() {
    88130                    return this.each(function(){
    89131                        var item = $(this),
    90                             input = item.find('.menu-item-data-parent-id'),
    91                             depth = item.menuItemDepth(),
    92                             parent = item.prev();
    93 
    94                         if( depth == 0 ) { // Item is on the top level, has no parent
     132                            input = item.find( '.menu-item-data-parent-id' ),
     133                            depth = parseInt( item.menuItemDepth() ),
     134                            parentDepth = depth - 1,
     135                            parent = item.prevAll( '.menu-item-depth-' + parentDepth ).first();
     136
     137                        if ( 0 == depth ) { // Item is on the top level, has no parent
    95138                            input.val(0);
    96139                        } else { // Find the parent item, and retrieve its object id.
    97                             while( ! parent[0] || ! parent[0].className || -1 == parent[0].className.indexOf('menu-item') || ( parent.menuItemDepth() != depth - 1 ) )
    98                                 parent = parent.prev();
    99                             input.val( parent.find('.menu-item-data-db-id').val() );
     140                            input.val( parent.find( '.menu-item-data-db-id' ).val() );
    100141                        }
    101142                    });
     
    121162                    return this.each(function() {
    122163                        var t = $(this), menuItems = {},
    123                             checkboxes = t.find('.tabs-panel-active .categorychecklist li input:checked'),
     164                            checkboxes = t.find('.tabs-panel-active .categorychecklist li input:checked'),
    124165                            re = new RegExp('menu-item\\[(\[^\\]\]*)');
    125166
     
    224265        },
    225266
     267
     268
     269
     270
     271
     272
     273
     274
     275
     276
     277
     278
     279
     280
     281
     282
     283
     284
     285
     286
     287
     288
     289
     290
     291
     292
     293
     294
     295
     296
     297
     298
     299
     300
     301
     302
     303
     304
     305
     306
     307
     308
     309
     310
     311
     312
     313
     314
     315
     316
     317
     318
     319
     320
     321
     322
     323
     324
     325
     326
     327
     328
     329
     330
     331
     332
     333
     334
     335
     336
     337
     338
     339
     340
     341
     342
     343
     344
     345
     346
     347
     348
     349
     350
     351
     352
     353
     354
     355
     356
     357
     358
     359
     360
     361
     362
     363
     364
     365
     366
     367
     368
     369
     370
     371
     372
     373
     374
     375
     376
     377
     378
     379
     380
     381
     382
     383
     384
     385
     386
     387
     388
    226389        initToggles : function() {
    227390            // init postboxes
     
    247410                menuMaxDepth = initialMenuMaxDepth();
    248411
     412
     413
     414
    249415            // Use the right edge if RTL.
    250416            menuEdge += api.isRTL ? api.menuList.width() : 0;
     
    309475                    children = transport.children().insertAfter(ui.item);
    310476
     477
     478
     479
     480
     481
     482
     483
    311484                    // Update depth classes
    312485                    if( depthChange != 0 ) {
     
    328501                        ui.item[0].style.right = 0;
    329502                    }
    330 
    331                     // The width of the tab bar might have changed. Just in case.
    332                     api.refreshMenuTabs( true );
    333503                },
    334504                change: function(e, ui) {
     
    462632                    $t.addClass( name ).val( $t.data(name) );
    463633            });
     634
     635
    464636        },
    465637
     
    573745                var ins = $('#menu-instructions');
    574746                processMethod(menuMarkup, params);
    575                 if( ! ins.hasClass('menu-instructions-inactive') && ins.siblings().length )
    576                     ins.addClass('menu-instructions-inactive');
     747                // Make it stand out a bit more visually, by adding a fadeIn
     748                $( 'li.pending' ).hide().fadeIn('slow');
     749                $( '.drag-instructions' ).show();
     750                if( ! ins.hasClass( 'menu-instructions-inactive' ) && ins.siblings().length )
     751                    ins.addClass( 'menu-instructions-inactive' );
    577752                callback();
    578753            });
     
    587762        addMenuItemToBottom : function( menuMarkup, req ) {
    588763            $(menuMarkup).hideAdvancedMenuItemFields().appendTo( api.targetList );
     764
    589765        },
    590766
    591767        addMenuItemToTop : function( menuMarkup, req ) {
    592768            $(menuMarkup).hideAdvancedMenuItemFields().prependTo( api.targetList );
     769
    593770        },
    594771
     
    605782            } else {
    606783                // Make the post boxes read-only, as they can't be used yet
    607                 $('#menu-settings-column').find('input,select').prop('disabled', true).end().find('a').attr('href', '#').unbind('click');
     784                $();
    608785            }
    609786        },
     
    686863                    return false;
    687864                }
    688             });
    689         },
    690 
    691         initTabManager : function() {
    692             var fixed = $('.nav-tabs-wrapper'),
    693                 fluid = fixed.children('.nav-tabs'),
    694                 active = fluid.children('.nav-tab-active'),
    695                 tabs = fluid.children('.nav-tab'),
    696                 tabsWidth = 0,
    697                 fixedRight, fixedLeft,
    698                 arrowLeft, arrowRight, resizeTimer, css = {},
    699                 marginFluid = api.isRTL ? 'margin-right' : 'margin-left',
    700                 marginFixed = api.isRTL ? 'margin-left' : 'margin-right',
    701                 msPerPx = 2;
    702 
    703             /**
    704              * Refreshes the menu tabs.
    705              * Will show and hide arrows where necessary.
    706              * Scrolls to the active tab by default.
    707              *
    708              * @param savePosition {boolean} Optional. Prevents scrolling so
    709              *        that the current position is maintained. Default false.
    710              **/
    711             api.refreshMenuTabs = function( savePosition ) {
    712                 var fixedWidth = fixed.width(),
    713                     margin = 0, css = {};
    714                 fixedLeft = fixed.offset().left;
    715                 fixedRight = fixedLeft + fixedWidth;
    716 
    717                 if( !savePosition )
    718                     active.makeTabVisible();
    719 
    720                 // Prevent space from building up next to the last tab if there's more to show
    721                 if( tabs.last().isTabVisible() ) {
    722                     margin = fixed.width() - tabsWidth;
    723                     margin = margin > 0 ? 0 : margin;
    724                     css[marginFluid] = margin + 'px';
    725                     fluid.animate( css, 100, "linear" );
    726                 }
    727 
    728                 // Show the arrows only when necessary
    729                 if( fixedWidth > tabsWidth )
    730                     arrowLeft.add( arrowRight ).hide();
    731                 else
    732                     arrowLeft.add( arrowRight ).show();
    733             }
    734 
    735             $.fn.extend({
    736                 makeTabVisible : function() {
    737                     var t = this.eq(0), left, right, css = {}, shift = 0;
    738 
    739                     if( ! t.length ) return this;
    740 
    741                     left = t.offset().left;
    742                     right = left + t.outerWidth();
    743 
    744                     if( right > fixedRight )
    745                         shift = fixedRight - right;
    746                     else if ( left < fixedLeft )
    747                         shift = fixedLeft - left;
    748 
    749                     if( ! shift ) return this;
    750 
    751                     css[marginFluid] = "+=" + api.negateIfRTL * shift + 'px';
    752                     fluid.animate( css, Math.abs( shift ) * msPerPx, "linear" );
    753                     return this;
    754                 },
    755                 isTabVisible : function() {
    756                     var t = this.eq(0),
    757                         left = t.offset().left,
    758                         right = left + t.outerWidth();
    759                     return ( right <= fixedRight && left >= fixedLeft ) ? true : false;
    760                 }
    761             });
    762 
    763             // Find the width of all tabs
    764             tabs.each(function(){
    765                 tabsWidth += $(this).outerWidth(true);
    766             });
    767 
    768             // Set up fixed margin for overflow, unset padding
    769             css['padding'] = 0;
    770             css[marginFixed] = (-1 * tabsWidth) + 'px';
    771             fluid.css( css );
    772 
    773             // Build tab navigation
    774             arrowLeft = $('<div class="nav-tabs-arrow nav-tabs-arrow-left"><a>&laquo;</a></div>');
    775             arrowRight = $('<div class="nav-tabs-arrow nav-tabs-arrow-right"><a>&raquo;</a></div>');
    776             // Attach to the document
    777             fixed.wrap('<div class="nav-tabs-nav"/>').parent().prepend( arrowLeft ).append( arrowRight );
    778 
    779             // Set the menu tabs
    780             api.refreshMenuTabs();
    781             // Make sure the tabs reset on resize
    782             $(window).resize(function() {
    783                 if( resizeTimer ) clearTimeout(resizeTimer);
    784                 resizeTimer = setTimeout( api.refreshMenuTabs, 200);
    785             });
    786 
    787             // Build arrow functions
    788             $.each([{
    789                     arrow : arrowLeft,
    790                     next : "next",
    791                     last : "first",
    792                     operator : "+="
    793                 },{
    794                     arrow : arrowRight,
    795                     next : "prev",
    796                     last : "last",
    797                     operator : "-="
    798                 }], function(){
    799                 var that = this;
    800                 this.arrow.mousedown(function(){
    801                     var marginFluidVal = Math.abs( parseInt( fluid.css(marginFluid) ) ),
    802                         shift = marginFluidVal,
    803                         css = {};
    804 
    805                     if( "-=" == that.operator )
    806                         shift = Math.abs( tabsWidth - fixed.width() ) - marginFluidVal;
    807 
    808                     if( ! shift ) return;
    809 
    810                     css[marginFluid] = that.operator + shift + 'px';
    811                     fluid.animate( css, shift * msPerPx, "linear" );
    812                 }).mouseup(function(){
    813                     var tab, next;
    814                     fluid.stop(true);
    815                     tab = tabs[that.last]();
    816                     while( (next = tab[that.next]()) && next.length && ! next.isTabVisible() ) {
    817                         tab = next;
    818                     }
    819                     tab.makeTabVisible();
    820                 });
    821865            });
    822866        },
     
    847891
    848892        eventOnClickCancelLink : function(clickedEl) {
    849             var settings = $(clickedEl).closest('.menu-item-settings');
    850             settings.setItemData( settings.data('menu-item-data') );
     893            var settings = $( clickedEl ).closest( '.menu-item-settings' ),
     894                thisMenuItem = $( clickedEl ).closest( '.menu-item' );
     895            thisMenuItem.removeClass('menu-item-edit-active').addClass('menu-item-edit-inactive');
     896            settings.setItemData( settings.data('menu-item-data') ).hide();
    851897            return false;
    852898        },
     
    945991                    var ins = $('#menu-instructions');
    946992                    el.remove();
    947                     children.shiftDepthClass(-1).updateParentMenuItemDBId();
    948                     if( ! ins.siblings().length )
    949                         ins.removeClass('menu-instructions-inactive');
     993                    children.shiftDepthClass( -1 ).updateParentMenuItemDBId();
     994                    if( 0 == $( '#menu-to-edit li' ).length ) {
     995                        $( '.drag-instructions' ).hide();
     996                        ins.removeClass( 'menu-instructions-inactive' );
     997                    }
    950998                });
    951999        },
  • trunk/wp-admin/nav-menus.php

    r23416 r23441  
    222222            $messages[] = '<div id="message" class="updated"><p>' . __('The menu item has been successfully deleted.') . '</p></div>';
    223223        break;
     224
    224225    case 'delete':
    225226        check_admin_referer( 'delete-nav_menu-' . $nav_menu_selected_id );
    226 
    227227        if ( is_nav_menu( $nav_menu_selected_id ) ) {
    228             $deleted_nav_menu = wp_get_nav_menu_object( $nav_menu_selected_id );
    229             $delete_nav_menu = wp_delete_nav_menu( $nav_menu_selected_id );
    230 
    231             if ( is_wp_error($delete_nav_menu) ) {
    232                 $messages[] = '<div id="message" class="error"><p>' . $delete_nav_menu->get_error_message() . '</p></div>';
    233             } else {
    234                 // Remove this menu from any locations.
    235                 $locations = get_theme_mod( 'nav_menu_locations' );
    236                 foreach ( (array) $locations as $location => $menu_id ) {
    237                     if ( $menu_id == $nav_menu_selected_id )
    238                         $locations[ $location ] = 0;
    239                 }
    240                 set_theme_mod( 'nav_menu_locations', $locations );
    241                 $messages[] = '<div id="message" class="updated"><p>' . __('The menu has been successfully deleted.') . '</p></div>';
    242                 // Select the next available menu
    243                 $nav_menu_selected_id = 0;
    244                 $_nav_menus = wp_get_nav_menus( array('orderby' => 'name') );
    245                 foreach( $_nav_menus as $index => $_nav_menu ) {
    246                     if ( strcmp( $_nav_menu->name, $deleted_nav_menu->name ) >= 0
    247                      || $index == count( $_nav_menus ) - 1 ) {
    248                         $nav_menu_selected_id = $_nav_menu->term_id;
    249                         break;
    250                     }
    251                 }
    252             }
    253             unset( $delete_nav_menu, $deleted_nav_menu, $_nav_menus );
     228            $deletion = _wp_delete_nav_menu( $nav_menu_selected_id );
    254229        } else {
    255230            // Reset the selected menu
     
    257232            unset( $_REQUEST['menu'] );
    258233        }
     234
     235
     236
     237
     238
     239
     240
     241
     242
     243
     244
     245
     246
     247
     248
     249
     250
     251
     252
     253
     254
     255
     256
     257
     258
    259259        break;
    260260
     
    262262        check_admin_referer( 'update-nav_menu', 'update-nav-menu-nonce' );
    263263
    264         // Update menu theme locations
    265         if ( isset( $_POST['menu-locations'] ) )
    266             set_theme_mod( 'nav_menu_locations', array_map( 'absint', $_POST['menu-locations'] ) );
     264        // Get existing menu locations assignments
     265        $locations = get_registered_nav_menus();
     266        $menu_locations = get_nav_menu_locations();
     267
     268        // Remove menu locations that have been unchecked
     269        foreach ( $locations as $location => $description ) {
     270            if ( ( empty( $_POST['menu-locations'] ) || empty( $_POST['menu-locations'][ $location ] ) ) && isset( $menu_locations[ $location ] ) && $menu_locations[ $location ] == $nav_menu_selected_id )
     271                unset( $menu_locations[ $location ] );
     272        }
     273
     274        // Merge new and existing menu locations if any new ones are set
     275        if ( isset( $_POST['menu-locations'] ) ) {
     276            $new_menu_locations = array_map( 'absint', $_POST['menu-locations'] );
     277            $menu_locations = array_merge( $menu_locations, $new_menu_locations );
     278        }
     279
     280        // Set menu locations
     281        set_theme_mod( 'nav_menu_locations', $menu_locations );
    267282
    268283        // Add Menu
     
    279294                    $nav_menu_selected_id = $_nav_menu_selected_id;
    280295                    $nav_menu_selected_title = $_menu_object->name;
    281                     $messages[] = '<div id="message" class="updated"><p>' . sprintf( __('The <strong>%s</strong> menu has been successfully created.'), $nav_menu_selected_title ) . '</p></div>';
     296                    if ( isset( $_REQUEST['menu-item'] ) )
     297                        wp_save_nav_menu_items( $nav_menu_selected_id, absint( $_REQUEST['menu-item'] ) );
     298                    if ( isset( $_REQUEST['zero-menu-state'] ) ) {
     299                        // If there are menu items, add them
     300                        wp_nav_menu_update_menu_items( $nav_menu_selected_id, $nav_menu_selected_title );
     301                        // Auto-save nav_menu_locations
     302                        $locations = get_theme_mod( 'nav_menu_locations' );
     303                        foreach ( (array) $locations as $location => $menu_id ) {
     304                                $locations[ $location ] = $nav_menu_selected_id;
     305                                break; // There should only be 1
     306                        }
     307                        set_theme_mod( 'nav_menu_locations', $locations );
     308                    }
     309                    $messages[] = '<div id="message" class="updated"><p>' . sprintf( __( '<strong>%s</strong> has been created.' ), $nav_menu_selected_title ) . '</p></div>';
    282310                }
    283311            } else {
    284                 $messages[] = '<div id="message" class="error"><p>' . __('Please enter a valid menu name.') . '</p></div>';
     312                $messages[] = '<div id="message" class="error"><p>' . __() . '</p></div>';
    285313            }
    286314
    287         // update existing menu
     315        // pdate existing menu
    288316        } else {
    289317
     
    292320            $menu_title = trim( esc_html( $_POST['menu-name'] ) );
    293321            if ( ! $menu_title ) {
    294                 $messages[] = '<div id="message" class="error"><p>' . __('Please enter a valid menu name.') . '</p></div>';
     322                $messages[] = '<div id="message" class="error"><p>' . __() . '</p></div>';
    295323                $menu_title = $_menu_object->name;
    296324            }
     
    308336
    309337            // Update menu items
    310 
    311338            if ( ! is_wp_error( $_menu_object ) ) {
    312                 $unsorted_menu_items = wp_get_nav_menu_items( $nav_menu_selected_id, array('orderby' => 'ID', 'output' => ARRAY_A, 'output_key' => 'ID', 'post_status' => 'draft,publish') );
    313                 $menu_items = array();
    314                 // Index menu items by db ID
    315                 foreach( $unsorted_menu_items as $_item )
    316                     $menu_items[$_item->db_id] = $_item;
    317 
    318                 $post_fields = array( 'menu-item-db-id', 'menu-item-object-id', 'menu-item-object', 'menu-item-parent-id', 'menu-item-position', 'menu-item-type', 'menu-item-title', 'menu-item-url', 'menu-item-description', 'menu-item-attr-title', 'menu-item-target', 'menu-item-classes', 'menu-item-xfn' );
    319                 wp_defer_term_counting(true);
    320                 // Loop through all the menu items' POST variables
    321                 if ( ! empty( $_POST['menu-item-db-id'] ) ) {
    322                     foreach( (array) $_POST['menu-item-db-id'] as $_key => $k ) {
    323 
    324                         // Menu item title can't be blank
    325                         if ( empty( $_POST['menu-item-title'][$_key] ) )
    326                             continue;
    327 
    328                         $args = array();
    329                         foreach ( $post_fields as $field )
    330                             $args[$field] = isset( $_POST[$field][$_key] ) ? $_POST[$field][$_key] : '';
    331 
    332                         $menu_item_db_id = wp_update_nav_menu_item( $nav_menu_selected_id, ( $_POST['menu-item-db-id'][$_key] != $_key ? 0 : $_key ), $args );
    333 
    334                         if ( is_wp_error( $menu_item_db_id ) )
    335                             $messages[] = '<div id="message" class="error"><p>' . $menu_item_db_id->get_error_message() . '</p></div>';
    336                         elseif ( isset( $menu_items[$menu_item_db_id] ) )
    337                             unset( $menu_items[$menu_item_db_id] );
    338                     }
    339                 }
    340 
    341                 // Remove menu items from the menu that weren't in $_POST
    342                 if ( ! empty( $menu_items ) ) {
    343                     foreach ( array_keys( $menu_items ) as $menu_item_id ) {
    344                         if ( is_nav_menu_item( $menu_item_id ) ) {
    345                             wp_delete_post( $menu_item_id );
    346                         }
    347                     }
    348                 }
    349 
    350                 // Store 'auto-add' pages.
    351                 $auto_add = ! empty( $_POST['auto-add-pages'] );
    352                 $nav_menu_option = (array) get_option( 'nav_menu_options' );
    353                 if ( ! isset( $nav_menu_option['auto_add'] ) )
    354                     $nav_menu_option['auto_add'] = array();
    355                 if ( $auto_add ) {
    356                     if ( ! in_array( $nav_menu_selected_id, $nav_menu_option['auto_add'] ) )
    357                         $nav_menu_option['auto_add'][] = $nav_menu_selected_id;
    358                 } else {
    359                     if ( false !== ( $key = array_search( $nav_menu_selected_id, $nav_menu_option['auto_add'] ) ) )
    360                         unset( $nav_menu_option['auto_add'][$key] );
    361                 }
    362                 // Remove nonexistent/deleted menus
    363                 $nav_menu_option['auto_add'] = array_intersect( $nav_menu_option['auto_add'], wp_get_nav_menus( array( 'fields' => 'ids' ) ) );
    364                 update_option( 'nav_menu_options', $nav_menu_option );
    365 
    366                 wp_defer_term_counting(false);
    367 
    368                 do_action( 'wp_update_nav_menu', $nav_menu_selected_id );
    369 
    370                 $messages[] = '<div id="message" class="updated"><p>' . sprintf( __('The <strong>%s</strong> menu has been updated.'), $nav_menu_selected_title ) . '</p></div>';
    371                 unset( $menu_items, $unsorted_menu_items );
     339                $messages = array_merge( $messages, wp_nav_menu_update_menu_items( $nav_menu_selected_id, $nav_menu_selected_title ) );
    372340            }
    373341        }
     
    377345// Get all nav menus
    378346$nav_menus = wp_get_nav_menus( array('orderby' => 'name') );
     347
     348
     349
     350
     351
     352
     353
     354
     355
     356
     357
     358
    379359
    380360// Get recently edited nav menu
    381 $recently_edited = (int) get_user_option( 'nav_menu_recently_edited' );
    382 
    383 // If there was no recently edited menu, and $nav_menu_selected_id is a nav menu, update recently edited menu.
    384 if ( !$recently_edited && is_nav_menu( $nav_menu_selected_id ) ) {
     361$recently_edited = absint( get_user_option( 'nav_menu_recently_edited' ) );
     362if ( empty( $recently_edited ) && is_nav_menu( $nav_menu_selected_id ) )
    385363    $recently_edited = $nav_menu_selected_id;
    386364
    387 // Else if $nav_menu_selected_id is not a menu and not requesting that we create a new menu, but $recently_edited is a menu, grab that one.
    388 } elseif ( 0 == $nav_menu_selected_id && ! isset( $_REQUEST['menu'] ) && is_nav_menu( $recently_edited ) ) {
     365//
     366if ( empty( $nav_menu_selected_id ) && ! isset( $_GET['menu'] ) && is_nav_menu( $recently_edited ) )
    389367    $nav_menu_selected_id = $recently_edited;
    390368
    391 // Else try to grab the first menu from the menus list
    392 } elseif ( 0 == $nav_menu_selected_id && ! isset( $_REQUEST['menu'] ) && ! empty($nav_menus) ) {
     369// t
     370if ( ! $add_new_screen && 0 < $menu_count && isset( $_GET['action'] ) && 'delete' == $_GET['action'] )
    393371    $nav_menu_selected_id = $nav_menus[0]->term_id;
    394 }
     372
     373// Set $nav_menu_selected_id to 0 if no menus
     374if ( $one_theme_location_no_menus )
     375    $nav_menu_selected_id = 0;
    395376
    396377// Update the user's setting
     
    413394}
    414395
     396
     397
     398
     399
     400
     401
    415402// Ensure the user will be able to scroll horizontally
    416403// by adding a class for the max menu depth.
     
    419406
    420407// Calling wp_get_nav_menu_to_edit generates $_wp_nav_menu_max_depth
    421 if ( is_nav_menu( $nav_menu_selected_id ) )
     408if ( is_nav_menu( $nav_menu_selected_id ) ) {
     409    $menu_items = wp_get_nav_menu_items( $nav_menu_selected_id, array( 'post_status' => 'any' ) );
    422410    $edit_markup = wp_get_nav_menu_to_edit( $nav_menu_selected_id );
     411
    423412
    424413function wp_nav_menu_max_depth($classes) {
     
    461450<div class="wrap">
    462451    <?php screen_icon(); ?>
    463     <h2><?php esc_html_e('Menus'); ?></h2>
     452    <h2><?php ></h2>
    464453    <?php
    465454    foreach( $messages as $message ) :
     
    467456    endforeach;
    468457    ?>
     458
     459
     460
     461
     462
     463
     464
     465
     466
     467
     468
     469
     470
     471
     472
     473
     474
     475
     476
     477
     478
     479
     480
     481
     482
     483
     484
     485
     486
     487
     488
     489
     490
     491
     492
    469493    <div id="nav-menus-frame">
    470     <div id="menu-settings-column" class="metabox-holder<?php if ( !$nav_menu_selected_id ) { echo ' metabox-holder-disabled'; } ?>">
     494    <div id="menu-settings-column" class="metabox-holder<?php if ( isset( $_GET['menu'] ) && '0' == $_GET['menu'] ) { echo ' metabox-holder-disabled'; } ?>">
     495
     496        <div class="clear"></div>
    471497
    472498        <form id="nav-menu-meta" action="<?php echo admin_url( 'nav-menus.php' ); ?>" class="nav-menu-meta" method="post" enctype="multipart/form-data">
     
    480506    <div id="menu-management-liquid">
    481507        <div id="menu-management">
    482             <div id="select-nav-menu-container" class="hide-if-js">
    483                 <form id="select-nav-menu" action="">
    484                     <strong><label for="select-nav-menu"><?php esc_html_e( 'Select Menu:' ); ?></label></strong>
    485                     <select class="select-nav-menu" name="menu">
    486                         <?php foreach( (array) $nav_menus as $_nav_menu ) : ?>
    487                             <option value="<?php echo esc_attr($_nav_menu->term_id) ?>" <?php selected($nav_menu_selected_id, $_nav_menu->term_id); ?>>
    488                                 <?php echo esc_html( $_nav_menu->truncated_name ); ?>
    489                             </option>
    490                         <?php endforeach; ?>
    491                         <option value="0"><?php esc_html_e('Add New Menu'); ?></option>
    492                     </select>
    493                     <input type="hidden" name="action" value="edit" />
    494                     <?php submit_button( __( 'Select' ), 'secondary', 'select_menu', false ); ?>
    495                 </form>
    496             </div>
    497             <div class="nav-tabs-wrapper">
    498             <div class="nav-tabs">
    499                 <?php
    500                 foreach( (array) $nav_menus as $_nav_menu ) :
    501                     if ( $nav_menu_selected_id == $_nav_menu->term_id ) : ?><span class="nav-tab nav-tab-active">
    502                             <?php echo esc_html( $_nav_menu->truncated_name ); ?>
    503                         </span><?php else : ?><a href="<?php
    504                             echo esc_url(add_query_arg(
    505                                 array(
    506                                     'action' => 'edit',
    507                                     'menu' => $_nav_menu->term_id,
    508                                 ),
    509                                 admin_url( 'nav-menus.php' )
    510                             ));
    511                         ?>" class="nav-tab hide-if-no-js">
    512                             <?php echo esc_html( $_nav_menu->truncated_name ); ?>
    513                         </a><?php endif;
    514                 endforeach;
    515                 if ( 0 == $nav_menu_selected_id ) : ?><span class="nav-tab menu-add-new nav-tab-active">
    516                     <?php printf( '<abbr title="%s">+</abbr>', esc_html__( 'Add menu' ) ); ?>
    517                 </span><?php else : ?><a href="<?php
    518                     echo esc_url(add_query_arg(
    519                         array(
    520                             'action' => 'edit',
    521                             'menu' => 0,
    522                         ),
    523                         admin_url( 'nav-menus.php' )
    524                     ));
    525                 ?>" class="nav-tab menu-add-new">
    526                     <?php printf( '<abbr title="%s">+</abbr>', esc_html__( 'Add menu' ) ); ?>
    527                 </a><?php endif; ?>
    528             </div>
    529             </div>
    530             <div class="menu-edit">
    531                 <form id="update-nav-menu" action="<?php echo admin_url( 'nav-menus.php' ); ?>" method="post" enctype="multipart/form-data">
     508            <form id="update-nav-menu" action="<?php echo esc_url( admin_url( 'nav-menus.php' ) ); ?>" method="post" enctype="multipart/form-data">
     509                <div class="menu-edit <?php if ( $add_new_screen ) echo 'blank-slate'; ?>">
     510                    <?php
     511                    wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false );
     512                    wp_nonce_field( 'meta-box-order', 'meta-box-order-nonce', false );
     513                    wp_nonce_field( 'update-nav_menu', 'update-nav-menu-nonce' );
     514
     515                    if ( $one_theme_location_no_menus ) { ?>
     516                        <input type="hidden" name="zero-menu-state" value="true" />
     517                    <?php } ?>
     518                    <input type="hidden" name="action" value="update" />
     519                    <input type="hidden" name="menu" id="menu" value="<?php echo esc_attr( $nav_menu_selected_id ); ?>" />
    532520                    <div id="nav-menu-header">
    533                         <div id="submitpost" class="submitbox">
    534                             <div class="major-publishing-actions">
    535                                 <label class="menu-name-label howto open-label" for="menu-name">
    536                                     <span><?php _e('Menu Name'); ?></span>
    537                                     <input name="menu-name" id="menu-name" type="text" class="menu-name regular-text menu-item-textbox input-with-default-title" title="<?php esc_attr_e('Enter menu name here'); ?>" value="<?php echo esc_attr( $nav_menu_selected_title ); ?>" />
    538                                 </label>
    539                                 <?php if ( !empty( $nav_menu_selected_id ) ) :
    540                                     if ( ! isset( $auto_add ) ) {
    541                                         $auto_add = get_option( 'nav_menu_options' );
    542                                         if ( ! isset( $auto_add['auto_add'] ) )
    543                                             $auto_add = false;
    544                                         elseif ( false !== array_search( $nav_menu_selected_id, $auto_add['auto_add'] ) )
    545                                             $auto_add = true;
    546                                         else
    547                                             $auto_add = false;
    548                                     }
    549                                 ?>
    550                                 <div class="auto-add-pages">
    551                                     <label class="howto"><input type="checkbox"<?php checked( $auto_add ); ?> name="auto-add-pages" value="1" /> <?php printf( __('Automatically add new top-level pages' ), esc_url( admin_url( 'edit.php?post_type=page' ) ) ); ?></label>
    552                                 </div>
    553                                 <?php endif; ?>
    554                                 <br class="clear" />
    555                                 <div class="publishing-action">
    556                                     <?php submit_button( empty( $nav_menu_selected_id ) ? __( 'Create Menu' ) : __( 'Save Menu' ), 'button-primary menu-save', 'save_menu', false, array( 'id' => 'save_menu_header' ) ); ?>
    557                                 </div><!-- END .publishing-action -->
    558 
    559                                 <?php if ( ! empty( $nav_menu_selected_id ) ) : ?>
    560                                 <div class="delete-action">
    561                                     <a class="submitdelete deletion menu-delete" href="<?php echo esc_url( wp_nonce_url( admin_url('nav-menus.php?action=delete&amp;menu=' . $nav_menu_selected_id), 'delete-nav_menu-' . $nav_menu_selected_id ) ); ?>"><?php _e('Delete Menu'); ?></a>
    562                                 </div><!-- END .delete-action -->
    563                                 <?php endif; ?>
    564                             </div><!-- END .major-publishing-actions -->
    565                         </div><!-- END #submitpost .submitbox -->
    566                         <?php
    567                         wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false );
    568                         wp_nonce_field( 'meta-box-order', 'meta-box-order-nonce', false );
    569                         wp_nonce_field( 'update-nav_menu', 'update-nav-menu-nonce' );
    570                         ?>
    571                         <input type="hidden" name="action" value="update" />
    572                         <input type="hidden" name="menu" id="menu" value="<?php echo esc_attr( $nav_menu_selected_id ); ?>" />
    573                     </div><!-- END #nav-menu-header -->
     521                        <div class="major-publishing-actions">
     522                            <label class="menu-name-label howto open-label" for="menu-name">
     523                                <span><?php _e( 'Menu Name' ); ?></span>
     524                                <input name="menu-name" id="menu-name" type="text" class="menu-name regular-text menu-item-textbox input-with-default-title" title="<?php esc_attr_e( 'Enter menu name here' ); ?>" value="<?php if ( $one_theme_location_no_menus ) _e( 'Menu 1' ); else echo esc_attr( $nav_menu_selected_title ); ?>" />
     525                            </label>
     526                            <div class="publishing-action">
     527                                <?php submit_button( empty( $nav_menu_selected_id ) ? __( 'Create Menu' ) : __( 'Save Menu' ), 'button-primary menu-save', 'save_menu', false, array( 'id' => 'save_menu_header' ) ); ?>
     528                            </div><!-- END .publishing-action -->
     529                        </div><!-- END .major-publishing-actions -->
     530                    </div><!-- END .nav-menu-header -->
    574531                    <div id="post-body">
    575532                        <div id="post-body-content">
     533
     534
     535
     536
     537
    576538                            <?php
    577                             if ( isset( $edit_markup ) ) {
    578                                 if ( ! is_wp_error( $edit_markup ) )
    579                                     echo $edit_markup;
    580                             } else if ( empty( $nav_menu_selected_id ) ) {
    581                                 echo '<div class="post-body-plain">';
    582                                 echo '<p>' . __('To create a custom menu, give it a name above and click Create Menu. Then choose items like pages, categories or custom links from the left column to add to this menu.') . '</p>';
    583                                 echo '<p>' . __('After you have added your items, drag and drop to put them in the order you want. You can also click each item to reveal additional configuration options.') . '</p>';
    584                                 echo '<p>' . __('When you have finished building your custom menu, make sure you click the Save Menu button.') . '</p>';
    585                                 echo '</div>';
    586                             }
     539                            if ( isset( $edit_markup ) && ! is_wp_error( $edit_markup ) ) {
     540                                echo $edit_markup;
     541                            } else {
    587542                            ?>
     543
     544
     545
     546
     547
     548
     549
     550
     551
     552
     553
     554
     555
     556
     557
     558
     559
     560
     561
     562
     563
     564
     565
     566
     567
     568
     569
     570
     571
     572
     573
     574
     575
     576
     577
     578
     579
     580
     581
     582
    588583                        </div><!-- /#post-body-content -->
    589584                    </div><!-- /#post-body -->
    590585                    <div id="nav-menu-footer">
    591586                        <div class="major-publishing-actions">
    592                         <div class="publishing-action">
    593                             <?php
    594                             if ( ! empty( $nav_menu_selected_id ) )
    595                                 submit_button( __( 'Save Menu' ), 'button-primary menu-save', 'save_menu', false, array( 'id' => 'save_menu_footer' ) );
    596                             ?>
    597                         </div>
    598                         </div>
     587                            <?php if ( 0 != $menu_count && ! $add_new_screen ) : ?>
     588                            <span class="delete-action">
     589                                <a class="submitdelete deletion menu-delete" href="<?php echo esc_url( wp_nonce_url( add_query_arg( array( 'action' => 'delete', 'menu' => $nav_menu_selected_id, admin_url() ) ), 'delete-nav_menu-' . $nav_menu_selected_id) ); ?>"><?php _e('Delete Menu'); ?></a>
     590                            </span><!-- END .delete-action -->
     591                            <?php endif; ?>
     592                            <div class="publishing-action">
     593                                <?php submit_button( empty( $nav_menu_selected_id ) ? __( 'Create Menu' ) : __( 'Save Menu' ), 'button-primary menu-save', 'save_menu', false, array( 'id' => 'save_menu_header' ) ); ?>
     594                            </div><!-- END .publishing-action -->
     595                        </div><!-- END .major-publishing-actions -->
    599596                    </div><!-- /#nav-menu-footer -->
    600                 </form><!-- /#update-nav-menu -->
    601             </div><!-- /.menu-edit -->
     597                </ -->
     598            </ -->
    602599        </div><!-- /#menu-management -->
    603600    </div><!-- /#menu-management-liquid -->
    604601    </div><!-- /#nav-menus-frame -->
    605602</div><!-- /.wrap-->
    606 
     603<script type="text/javascript">var oneThemeLocationNoMenus = <?php if ( $one_theme_location_no_menus ) echo 'true'; else echo 'false'; ?>;</script>
    607604<?php include( './admin-footer.php' ); ?>
Note: See TracChangeset for help on using the changeset viewer.