Ticket #21603: 21603.4.diff
File 21603.4.diff, 13.7 KB (added by , 2 years ago) |
---|
-
src/js/_enqueues/lib/nav-menu.js
diff --git a/src/js/_enqueues/lib/nav-menu.js b/src/js/_enqueues/lib/nav-menu.js index d3b9663487..c1a2227322 100644
a b 44 44 this.jQueryExtensions(); 45 45 46 46 this.attachMenuEditListeners(); 47 48 this.attachBulkSelectButtonListeners(); 49 this.attachMenuCheckBoxListeners(); 50 this.attachMenuItemDeleteButton(); 51 this.attachPendingMenuItemsListForDeletion(); 47 52 48 53 this.attachQuickSearchListeners(); 49 54 this.attachThemeLocationsListeners(); … … 862 867 }); 863 868 }, 864 869 870 attachBulkSelectButtonListeners : function() { 871 var that = this; 872 873 $('.bulk-select-switcher').on( 'change', function(){ 874 if( this.checked ){ 875 $('.bulk-select-switcher').prop('checked',true); 876 that.enableBulkSelection(); 877 }else{ 878 $('.bulk-select-switcher').prop('checked',false); 879 that.disableBulkSelection(); 880 } 881 }); 882 }, 883 884 enableBulkSelection : function() { 885 886 $('#menu-to-edit').addClass('bulk-selection'); 887 $('#nav-menu-bulk-actions-top').addClass('bulk-selection'); 888 $('#nav-menu-bulk-actions-bottom').addClass('bulk-selection'); 889 890 var switchLabelCurrent = $('.bulk-select-button-label').first().text(); 891 var switchLabelNext = $('.bulk-select-button').first().attr('data-switch-label') ; 892 893 $('.bulk-select-button').attr('data-switch-label',switchLabelCurrent); 894 $('.bulk-select-button-label').text(switchLabelNext) ; 895 896 var checkbox = $('#menu-to-edit .menu-item-checkbox'); 897 $.each( checkbox, function(){ 898 $(this).prop('disabled',false); 899 }); 900 }, 901 902 disableBulkSelection : function() { 903 $('#menu-to-edit').removeClass('bulk-selection'); 904 $('#nav-menu-bulk-actions-top').removeClass('bulk-selection'); 905 $('#nav-menu-bulk-actions-bottom').removeClass('bulk-selection'); 906 907 var switchLabelCurrent = $('.bulk-select-button-label').first().text(); 908 var switchLabelNext = $('.bulk-select-button').first().attr('data-switch-label') ; 909 910 $('.bulk-select-button').attr('data-switch-label',switchLabelCurrent); 911 $('.bulk-select-button-label').text(switchLabelNext) ; 912 913 var checkbox = $('#menu-to-edit .menu-item-checkbox'); 914 $.each( checkbox, function(){ 915 $(this).prop('disabled',true).prop('checked',false); 916 }); 917 $('.menu-items-delete').addClass('disabled'); 918 $('#pending-nav-items-to-deletion-list').empty(); 919 }, 920 921 922 attachMenuCheckBoxListeners : function() { 923 var that = this; 924 925 $( '#menu-to-edit' ).on( 'change','.menu-item-checkbox', function(){ 926 that.setRemoveSelectedButtonStatus(); 927 }); 928 }, 929 930 attachMenuItemDeleteButton : function() { 931 var that = this; 932 933 $( document ).on('click', '.menu-items-delete', function(e){ 934 e.preventDefault(); 935 936 if( ! $(this).hasClass('disabled') ){ 937 $.each( $('.menu-item-checkbox:checked'), function( index, element) { 938 $( element ).parents( 'li' ).find( 'a.item-delete' ).trigger( 'click' ); 939 }); 940 941 $('.menu-items-delete').addClass('disabled'); 942 $('.bulk-select-switcher').prop('checked',false); 943 that.disableBulkSelection(); 944 } 945 }); 946 }, 947 948 attachPendingMenuItemsListForDeletion : function(){ 949 $('#post-body-content').on( 'change', '.menu-item-checkbox', function(){ 950 var menuItemLabel = $(this).next().text(); 951 var menuItemID = $(this).attr('data-menu-item-id') ; 952 var ListedMenuItem = $('#pending-nav-items-to-deletion-list').find('[data-menu-item-id='+menuItemID+']') ; 953 if( ListedMenuItem.length > 0 ){ 954 ListedMenuItem.remove(); 955 } 956 if( this.checked === true ){ 957 $('#pending-nav-items-to-deletion-list').append( '<li data-menu-item-id="'+menuItemID+'">'+menuItemLabel+'<span class="separator">, </span></li>' ); 958 } 959 $('#pending-nav-items-to-deletion-list .separator').html(', '); 960 $('#pending-nav-items-to-deletion-list .separator').last().html('.'); 961 }); 962 }, 963 964 setBulkDeleteCheckboxStatus : function(){ 965 966 var that = this; 967 var checkbox = $('#menu-to-edit .menu-item-checkbox'); 968 969 $.each( checkbox, function(){ 970 971 if( $(this).prop('disabled') == true ){ 972 $(this).prop( 'disabled', false ); 973 }else{ 974 $(this).prop( 'disabled', true ); 975 } 976 977 if( $(this).is(':checked')) { 978 $(this).prop('checked',false); 979 } 980 }); 981 982 that.setRemoveSelectedButtonStatus(); 983 }, 984 985 setRemoveSelectedButtonStatus : function(){ 986 987 var button = $('.menu-items-delete'); 988 989 if( $('.menu-item-checkbox:checked').length > 0 ) { 990 $('.menu-items-delete').removeClass('disabled'); 991 }else{ 992 $('.menu-items-delete').addClass('disabled'); 993 } 994 }, 995 865 996 attachMenuSaveSubmitListeners : function() { 866 997 /* 867 998 * When a navigation menu is saved, store a JSON representation of all form data -
src/wp-admin/css/common.css
diff --git a/src/wp-admin/css/common.css b/src/wp-admin/css/common.css index 0f27cc2a2a..0848c93615 100644
a b th.action-links { 1179 1179 1180 1180 .show-filters .wp-filter .drawer-toggle:hover, 1181 1181 .show-filters .wp-filter .drawer-toggle:focus { 1182 background: # 2271b1;1182 background: #72aee6; 1183 1183 } 1184 1184 1185 1185 .show-filters .wp-filter .drawer-toggle:before { … … html.wp-toolbar { 2128 2128 .postbox .hndle, 2129 2129 .stuffbox .hndle { 2130 2130 -webkit-user-select: none; 2131 -ms-user-select: none; 2131 2132 user-select: none; 2132 2133 } 2133 2134 … … img { 3147 3148 font-size: 13px; 3148 3149 background: #f6f7f7; 3149 3150 -moz-tab-size: 4; 3151 -o-tab-size: 4; 3150 3152 tab-size: 4; 3151 3153 } 3152 3154 … … img { 3519 3521 border-left: 1px solid #dcdcde; 3520 3522 border-right: 1px solid #dcdcde; 3521 3523 -webkit-user-select: none; 3524 -ms-user-select: none; 3522 3525 user-select: none; 3523 3526 } 3524 3527 … … img { 3750 3753 3751 3754 } 3752 3755 3756 @-ms-viewport { 3757 width: device-width; 3758 } 3759 3753 3760 @media screen and (max-width: 782px) { 3754 3761 html.wp-toolbar { 3755 3762 padding-top: 46px; -
src/wp-admin/css/nav-menus.css
diff --git a/src/wp-admin/css/nav-menus.css b/src/wp-admin/css/nav-menus.css index ed97188ea5..f636a7086e 100644
a b ul.add-menu-item-tabs li { 97 97 margin: 1em 0 10px; 98 98 } 99 99 100 #nav-menu-bulk-actions-top { 101 margin: 1em 0; 102 } 103 104 #nav-menu-bulk-actions-bottom { 105 margin: 1em 0; 106 margin: calc( 1em + 9px ) 0 ; 107 } 108 109 .bulk-actions input.button { 110 margin-right: 12px; 111 } 112 113 .bulk-select-button { 114 position: relative; 115 display: inline-block; 116 padding: 0 10px; 117 font-size: 13px; 118 line-height: 2.15384615; 119 height: auto; 120 min-height: 30px; 121 122 background: #f6f7f7; 123 vertical-align: top; 124 border: 1px solid #dcdcde; 125 126 margin: 0; 127 cursor: pointer; 128 129 border-radius: 3px; 130 white-space: nowrap; 131 box-sizing: border-box; 132 } 133 134 .bulk-selection .bulk-select-button { 135 color: #2271b1; 136 border-color: #2271b1; 137 background: #f6f7f7; 138 vertical-align: top; 139 } 140 141 #pending-nav-items-to-deletion { 142 display: none; 143 } 144 145 .bulk-selection #pending-nav-items-to-deletion { 146 display: block; 147 margin-top: 1em; 148 } 149 150 #pending-nav-items-to-deletion-message { 151 margin-bottom: 0; 152 } 153 154 #pending-nav-items-to-deletion-list { 155 margin-top: 0; 156 list-style: none; 157 } 158 159 #pending-nav-items-to-deletion-list li { 160 display: inline; 161 } 162 163 input.bulk-select-switcher { 164 position: absolute; 165 width: 0; 166 height: 0; 167 opacity: 0; 168 border: none; 169 overflow: hidden; 170 bottom: 0; 171 } 172 173 input.bulk-select-switcher + .bulk-select-button-label { 174 vertical-align: inherit; 175 } 176 177 label.bulk-select-button:hover, 178 label.bulk-select-button:active, 179 label.bulk-select-button:focus-within { 180 background: #f0f0f1; 181 border-color: #0a4b78; 182 color: #0a4b78; 183 } 184 185 input.bulk-select-switcher:focus + .bulk-select-button-label{ 186 color: #0a4b78; 187 } 188 189 .bulk-actions input.menu-items-delete { 190 -webkit-appearance: none; 191 -moz-appearance: none; 192 appearance: none; 193 font-size: inherit; 194 border: 0; 195 line-height: 2.1em; 196 background: none; 197 cursor: pointer; 198 text-decoration: underline; 199 color: #b32d2e; 200 } 201 202 .bulk-actions input.menu-items-delete:hover { 203 color: #b32d2e; 204 border: none; 205 } 206 207 .bulk-actions input.menu-items-delete.disabled { 208 cursor: default; 209 color: #a7aaad; 210 box-shadow: none; 211 } 212 100 213 .menu-settings { 101 214 border-top: 1px solid #f0f0f1; 102 215 margin-top: 2em; … … ul.add-menu-item-tabs li { 455 568 } 456 569 457 570 #menu-to-edit .menu-item-invalid .menu-item-handle { 458 background: #f cf0f1;459 border-color: # d63638;571 background: #facfd2; 572 border-color: #ffabaf; 460 573 } 461 574 462 575 .no-js .menu-item-edit-active .item-edit { … … ul.add-menu-item-tabs li { 481 594 margin-right: 13em; 482 595 } 483 596 597 .menu-item-handle .menu-item-checkbox { 598 display: none; 599 } 600 601 .bulk-selection .menu-item-handle .menu-item-checkbox { 602 display: inline-block; 603 margin-right: 6px; 604 } 605 484 606 .menu-item-handle .menu-item-title.no-title { 485 607 color: #646970; 486 608 } … … body.menu-max-depth-11 { min-width: 1280px !important; } 891 1013 } 892 1014 893 1015 @media only screen and (min-width: 783px) { 894 @supports ( position: sticky) and (scroll-margin-bottom: 130px) {1016 @supports ((position: -webkit-sticky) or (position: sticky)) and (scroll-margin-bottom: 130px) { 895 1017 896 1018 #nav-menu-footer { 1019 position: -webkit-sticky; 897 1020 position: sticky; 898 1021 bottom: 0; 899 1022 z-index: 10; -
src/wp-admin/includes/class-walker-nav-menu-edit.php
diff --git a/src/wp-admin/includes/class-walker-nav-menu-edit.php b/src/wp-admin/includes/class-walker-nav-menu-edit.php index fb9fceb7df..b3fd319b7f 100644
a b class Walker_Nav_Menu_Edit extends Walker_Nav_Menu { 92 92 $classes = array( 93 93 'menu-item menu-item-depth-' . $depth, 94 94 'menu-item-' . esc_attr( $item->object ), 95 'menu-item-edit-' . ( ( isset( $_GET['edit-menu-item'] ) && $item_id == =$_GET['edit-menu-item'] ) ? 'active' : 'inactive' ),95 'menu-item-edit-' . ( ( isset( $_GET['edit-menu-item'] ) && $item_id == $_GET['edit-menu-item'] ) ? 'active' : 'inactive' ), 96 96 ); 97 97 98 98 $title = $item->title; … … class Walker_Nav_Menu_Edit extends Walker_Nav_Menu { 110 110 $title = ( ! isset( $item->label ) || '' === $item->label ) ? $title : $item->label; 111 111 112 112 $submenu_text = ''; 113 if ( 0 == =$depth ) {113 if ( 0 == $depth ) { 114 114 $submenu_text = 'style="display: none;"'; 115 115 } 116 116 … … class Walker_Nav_Menu_Edit extends Walker_Nav_Menu { 118 118 <li id="menu-item-<?php echo $item_id; ?>" class="<?php echo implode( ' ', $classes ); ?>"> 119 119 <div class="menu-item-bar"> 120 120 <div class="menu-item-handle"> 121 < span class="item-title"><span class="menu-item-title"><?php echo esc_html( $title ); ?></span> <span class="is-submenu" <?php echo $submenu_text; ?>><?php _e( 'sub item' ); ?></span></span>121 <label class="item-title" for="menu-item-checkbox-<?php echo $item_id; ?>"><input id="menu-item-checkbox-<?php echo $item_id; ?>" type="checkbox" class="menu-item-checkbox" data-menu-item-id="<?php echo $item_id; ?>" disabled="disabled"/><span class="menu-item-title"><?php echo esc_html( $title ); ?></span> <span class="is-submenu" <?php echo $submenu_text; ?>><?php _e( 'sub item' ); ?></span></label> 122 122 <span class="item-controls"> 123 123 <span class="item-type"><?php echo esc_html( $item->type_label ); ?></span> 124 124 <span class="item-order hide-if-js"> … … class Walker_Nav_Menu_Edit extends Walker_Nav_Menu { 157 157 ?> 158 158 </span> 159 159 <?php 160 if ( isset( $_GET['edit-menu-item'] ) && $item_id == =$_GET['edit-menu-item'] ) {160 if ( isset( $_GET['edit-menu-item'] ) && $item_id == $_GET['edit-menu-item'] ) { 161 161 $edit_url = admin_url( 'nav-menus.php' ); 162 162 } else { 163 163 $edit_url = add_query_arg( -
src/wp-admin/nav-menus.php
diff --git a/src/wp-admin/nav-menus.php b/src/wp-admin/nav-menus.php index f224964553..d0e04d2175 100644
a b require_once ABSPATH . 'wp-admin/admin-header.php'; 970 970 <div id="post-body"> 971 971 <div id="post-body-content" class="wp-clearfix"> 972 972 <?php if ( ! $add_new_screen ) : ?> 973 974 973 <?php 975 974 $hide_style = ''; 976 975 … … require_once ABSPATH . 'wp-admin/admin-header.php'; 987 986 <div class="drag-instructions post-body-plain" <?php echo $hide_style; ?>> 988 987 <p><?php echo $starter_copy; ?></p> 989 988 </div> 990 989 <div id="nav-menu-bulk-actions-top" class="bulk-actions"> 990 <label class="bulk-select-button" for="bulk-select-switcher-top" data-switch-label="<?php echo __( 'Cancel Select' ) ; ?>"> 991 <input type="checkbox" id="bulk-select-switcher-top" name="bulk-select-switcher-top" class="bulk-select-switcher"> 992 <span class="bulk-select-button-label"><?php echo __( 'Bulk Select' ) ; ?></span> 993 </label> 994 </div> 991 995 <?php 992 996 if ( isset( $edit_markup ) && ! is_wp_error( $edit_markup ) ) { 993 997 echo $edit_markup; … … require_once ABSPATH . 'wp-admin/admin-header.php'; 1013 1017 $no_menus_style = 'style="display: none;"'; 1014 1018 } 1015 1019 ?> 1020 <div id="nav-menu-bulk-actions-bottom" class="bulk-actions"> 1021 <label class="bulk-select-button" for="bulk-select-switcher-bottom" data-switch-label="<?php echo __( 'Cancel Select' ) ; ?>"> 1022 <input type="checkbox" id="bulk-select-switcher-bottom" name="bulk-select-switcher-top" class="bulk-select-switcher"> 1023 <span class="bulk-select-button-label"><?php echo __( 'Bulk Select' ) ; ?></span> 1024 </label> 1025 <input type="button" aria-describedby="pending-nav-items-to-deletion" class="deletion menu-items-delete disabled" value="<?php echo __( 'Remove Selected Items' ) ; ?>"> 1026 <div id="pending-nav-items-to-deletion"> 1027 <p id="pending-nav-items-to-deletion-message"><?php echo __( 'List of menu items selected for deletion :' ) ; ?></p> 1028 <ul id="pending-nav-items-to-deletion-list"></ul> 1029 </div> 1030 </div> 1016 1031 <div class="menu-settings" <?php echo $no_menus_style; ?>> 1017 1032 <h3><?php _e( 'Menu Settings' ); ?></h3> 1018 1033 <?php