Ticket #18382: 18382.diff

File 18382.diff, 14.7 KB (added by koopersmith, 22 months ago)
Line 
1Index: wp-admin/menu-header.php
2===================================================================
3--- wp-admin/menu-header.php    (revision 18532)
4+++ wp-admin/menu-header.php    (working copy)
5@@ -58,8 +58,10 @@
6                                $class[] = 'wp-has-current-submenu wp-menu-open';
7                        else
8                                $class[] = 'current';
9-               } elseif ( ! empty( $submenu[ $item[2] ] ) && isset( $user_settings[ 'm' . $menu_setting_increment ] ) && 'o' == $user_settings[ 'm' . $menu_setting_increment ] ) {
10-                               $class[] = 'wp-menu-open';
11+               // } elseif ( ! empty( $submenu[ $item[2] ] ) && isset( $user_settings[ 'm' . $menu_setting_increment ] ) && 'o' == $user_settings[ 'm' . $menu_setting_increment ] ) {
12+                               // $class[] = 'wp-menu-open';
13+               } else {
14+                       $class[] = 'wp-not-current-submenu';
15                }
16 
17                if ( ! empty($item[4]) )
18@@ -75,7 +77,6 @@
19                        else
20                                $img = '<img src="' . $item[6] . '" alt="" />';
21                }
22-               $toggle = '<div class="wp-menu-toggle"><br /></div>';
23                $arrow = '<div class="wp-menu-arrow"><div></div></div>';
24 
25                $title = wptexturize($item[0]);
26@@ -92,9 +93,9 @@
27                                $menu_file = substr($menu_file, 0, $pos);
28                        if ( ( ('index.php' != $submenu[$item[2]][0][2]) && file_exists(WP_PLUGIN_DIR . "/$menu_file") ) || !empty($menu_hook)) {
29                                $admin_is_parent = true;
30-                               echo "<div class='wp-menu-image'><a href='admin.php?page={$submenu[$item[2]][0][2]}'>$img</a></div>$arrow$toggle<a href='admin.php?page={$submenu[$item[2]][0][2]}'$class$tabindex>$title</a>";
31+                               echo "<div class='wp-menu-image'><a href='admin.php?page={$submenu[$item[2]][0][2]}'>$img</a></div>$arrow<a href='admin.php?page={$submenu[$item[2]][0][2]}'$class$tabindex>$title</a>";
32                        } else {
33-                               echo "\n\t<div class='wp-menu-image'><a href='{$submenu[$item[2]][0][2]}'>$img</a></div>$arrow$toggle<a href='{$submenu[$item[2]][0][2]}'$class$tabindex>$title</a>";
34+                               echo "\n\t<div class='wp-menu-image'><a href='{$submenu[$item[2]][0][2]}'>$img</a></div>$arrow<a href='{$submenu[$item[2]][0][2]}'$class$tabindex>$title</a>";
35                        }
36                } else if ( !empty($item[2]) && current_user_can($item[1]) ) {
37                        $menu_hook = get_plugin_page_hook($item[2], 'admin.php');
38@@ -103,9 +104,9 @@
39                                $menu_file = substr($menu_file, 0, $pos);
40                        if ( ('index.php' != $item[2]) && file_exists(WP_PLUGIN_DIR . "/$menu_file") || !empty($menu_hook) ) {
41                                $admin_is_parent = true;
42-                               echo "\n\t<div class='wp-menu-image'><a href='admin.php?page={$item[2]}'>$img</a></div>$arrow$toggle<a href='admin.php?page={$item[2]}'$class$tabindex>{$item[0]}</a>";
43+                               echo "\n\t<div class='wp-menu-image'><a href='admin.php?page={$item[2]}'>$img</a></div>$arrow<a href='admin.php?page={$item[2]}'$class$tabindex>{$item[0]}</a>";
44                        } else {
45-                               echo "\n\t<div class='wp-menu-image'><a href='{$item[2]}'>$img</a></div>$arrow$toggle<a href='{$item[2]}'$class$tabindex>{$item[0]}</a>";
46+                               echo "\n\t<div class='wp-menu-image'><a href='{$item[2]}'>$img</a></div>$arrow<a href='{$item[2]}'$class$tabindex>{$item[0]}</a>";
47                        }
48                }
49 
50Index: wp-admin/js/common.dev.js
51===================================================================
52--- wp-admin/js/common.dev.js   (revision 18532)
53+++ wp-admin/js/common.dev.js   (working copy)
54@@ -5,13 +5,13 @@
55        init : function() {
56                var menu = $('#adminmenu');
57 
58-               $('.wp-menu-toggle', menu).each( function() {
59-                       var t = $(this), sub = t.siblings('.wp-submenu');
60-                       if ( sub.length )
61-                               t.click(function(){ adminMenu.toggle( sub ); });
62-                       else
63-                               t.hide();
64-               });
65+               // $('.wp-menu-toggle', menu).each( function() {
66+               //      var t = $(this), sub = t.siblings('.wp-submenu');
67+               //      if ( sub.length )
68+               //              t.click(function(){ adminMenu.toggle( sub ); });
69+               //      else
70+               //              t.hide();
71+               // });
72 
73                this.favorites();
74 
75@@ -26,63 +26,87 @@
76                        return false;
77                });
78 
79-               if ( $('body').hasClass('folded') )
80-                       this.fold();
81+               this.flyout( $('#adminmenu li.wp-has-submenu') );
82+
83+               this.fold( ! $('body').hasClass('folded') );
84        },
85 
86        restoreMenuState : function() {
87                // (perhaps) needed for back-compat
88        },
89 
90-       toggle : function(el) {
91-               el.slideToggle(150, function() {
92-                       var id = el.css('display','').parent().toggleClass( 'wp-menu-open' ).attr('id');
93-                       if ( id ) {
94-                               $('li.wp-has-submenu', '#adminmenu').each(function(i, e) {
95-                                       if ( id == e.id ) {
96-                                               var v = $(e).hasClass('wp-menu-open') ? 'o' : 'c';
97-                                               setUserSetting( 'm'+i, v );
98-                                       }
99-                               });
100-                       }
101+       flyout: function( el, unbind ) {
102+               if ( unbind ) {
103+                       console.log( 'unbinding flyout', el );
104+                       el.unbind(); // Unbind flyout
105+                       return;
106+               }
107+               console.log( 'binding flyout', el );
108+
109+               el.hoverIntent({
110+                       over: function(e){
111+                               var m, b, h, o, f;
112+                               m = $(this).find('.wp-submenu');
113+                               b = $(this).offset().top + m.height() + 1; // Bottom offset of the menu
114+                               h = $('#wpwrap').height(); // Height of the entire page
115+                               o = 60 + b - h;
116+                               f = $(window).height() + $(window).scrollTop() - 15; // The fold
117+                               if ( f < (b - o) ) {
118+                                       o = b - f;
119+                               }
120+                               if ( o > 1 ) {
121+                                       m.css({'marginTop':'-'+o+'px'});
122+                               } else if ( m.css('marginTop') ) {
123+                                       m.css({'marginTop':''});
124+                               }
125+                               m.addClass('sub-open');
126+                       },
127+                       out: function(){
128+                               $(this).find('.wp-submenu').removeClass('sub-open');
129+                       },
130+                       timeout: 220,
131+                       sensitivity: 8,
132+                       interval: 100
133                });
134+       },
135 
136-               return false;
137+       toggle : function() {
138+               // Removed in 3.3.
139+               // (perhaps) needed for back-compat
140        },
141 
142-       fold : function(off) {
143-               if (off) {
144-                       $('body').removeClass('folded');
145-                       $('#adminmenu li.wp-has-submenu').unbind();
146-               } else {
147-                       $('body').addClass('folded');
148-                       $('#adminmenu li.wp-has-submenu').hoverIntent({
149-                               over: function(e){
150-                                       var m, b, h, o, f;
151-                                       m = $(this).find('.wp-submenu');
152-                                       b = $(this).offset().top + m.height() + 1; // Bottom offset of the menu
153-                                       h = $('#wpwrap').height(); // Height of the entire page
154-                                       o = 60 + b - h;
155-                                       f = $(window).height() + $(window).scrollTop() - 15; // The fold
156-                                       if ( f < (b - o) ) {
157-                                               o = b - f;
158-                                       }
159-                                       if ( o > 1 ) {
160-                                               m.css({'marginTop':'-'+o+'px'});
161-                                       } else if ( m.css('marginTop') ) {
162-                                               m.css({'marginTop':''});
163-                                       }
164-                                       m.addClass('sub-open');
165-                               },
166-                               out: function(){
167-                                       $(this).find('.wp-submenu').removeClass('sub-open');
168-                               },
169-                               timeout: 220,
170-                               sensitivity: 8,
171-                               interval: 100
172-                       });
173+       // toggle : function(el) {
174+       //      el.slideToggle(150, function() {
175+       //              var id = el.css('display','').parent().toggleClass( 'wp-menu-open' ).attr('id');
176+       //              if ( id ) {
177+       //                      $('li.wp-has-submenu', '#adminmenu').each(function(i, e) {
178+       //                              if ( id == e.id ) {
179+       //                                      var v = $(e).hasClass('wp-menu-open') ? 'o' : 'c';
180+       //                                      setUserSetting( 'm'+i, v );
181+       //                              }
182+       //                      });
183+       //              }
184+       //      });
185+       //
186+       //      return false;
187+       // },
188 
189-               }
190+       fold : function( off ) {
191+               var current = $('#adminmenu li.wp-has-current-submenu');
192+
193+               $('body').toggleClass( 'folded', ! off );
194+               $('body').toggleClass( 'expanded', off );
195+               this.flyout( current, off );
196+
197+               // Remove any potentially remaining hoverIntent positioning.
198+               if ( off )
199+                       current.find('.wp-submenu').css( 'marginTop', '0' );
200+               // if (off) {
201+               //      $('body').removeClass('folded');
202+               //      // $('#adminmenu li.wp-has-submenu').unbind();
203+               // } else {
204+               //      $('body').addClass('folded');
205+               // }
206        },
207 
208        favorites : function() {
209Index: wp-admin/admin-header.php
210===================================================================
211--- wp-admin/admin-header.php   (revision 18532)
212+++ wp-admin/admin-header.php   (working copy)
213@@ -80,6 +80,8 @@
214 
215 if ( get_user_setting('mfold') == 'f' )
216        $admin_body_class .= ' folded';
217+else
218+       $admin_body_class .= ' expanded';
219 
220 if ( is_admin_bar_showing() )
221        $admin_body_class .= ' admin-bar';
222Index: wp-admin/css/global.dev.css
223===================================================================
224--- wp-admin/css/global.dev.css (revision 18532)
225+++ wp-admin/css/global.dev.css (working copy)
226@@ -91,8 +91,9 @@
227 #adminmenuback,
228 #adminmenuwrap,
229 #adminmenu,
230-.js.folded #adminmenu .wp-submenu.sub-open,
231-.js.folded #adminmenu .wp-submenu-wrap {
232+.js #adminmenu .wp-submenu.sub-open,
233+.js #adminmenu .wp-submenu-wrap,
234+.folded #adminmenu .wp-has-current-submenu .wp-submenu.sub-open {
235        width: 145px;
236 }
237 
238Index: wp-admin/css/colors-fresh.dev.css
239===================================================================
240--- wp-admin/css/colors-fresh.dev.css   (revision 18532)
241+++ wp-admin/css/colors-fresh.dev.css   (working copy)
242@@ -930,11 +930,40 @@
243        border-color: #dfdfdf;
244 }
245 
246+/*.expanded #adminmenu li.wp-not-current-submenu:hover a.menu-top,
247+.expanded #adminmenu li.wp-not-current-submenu:hover .wp-menu-arrow { */
248+/*     background-color: #bbb; /* Fallback */
249+/*     background-image: -ms-linear-gradient(bottom, #aaa, #ccc); /* IE10 */
250+/*     background-image: -moz-linear-gradient(bottom, #aaa, #ccc); /* Firefox */
251+/*     background-image: -o-linear-gradient(bottom, #aaa, #ccc); /* Opera */
252+/*     background-image: -webkit-gradient(linear, left bottom, left top, from(#aaa), to(#ccc)); /* old Webkit */
253+/*     background-image: -webkit-linear-gradient(bottom, #aaa, #ccc); /* new Webkit */
254+/*     background-image: linear-gradient(bottom, #aaa, #ccc); /* proposed W3C Markup */
255+/*     border-top-color: #ccc;
256+       border-bottom-color: #aaa;
257+       color: #333;
258+}*/
259+
260+.expanded #adminmenu li.wp-not-current-submenu:hover a.menu-top,
261+.expanded #adminmenu li.wp-not-current-submenu:hover .wp-menu-arrow {
262+       background-color: #eaf2fa; /* Fallback */
263+       background-image: -ms-linear-gradient(bottom, #aaa, #f8fafd); /* IE10 */
264+       background-image: -moz-linear-gradient(bottom, #aaa, #f8fafd); /* Firefox */
265+       background-image: -o-linear-gradient(bottom, #aaa, #ccc); /* Opera */
266+       background-image: -webkit-gradient(linear, left bottom, left top, from(#aaa), to(#ccc)); /* old Webkit */
267+       background-image: -webkit-linear-gradient(bottom, #cfe1f3, #eaf2fa); /* new Webkit */
268+       background-image: linear-gradient(bottom, #aaa, #ccc); /* proposed W3C Markup */
269+       border-top-color: #eaf2fa;
270+       border-bottom-color: #cfe1f3;
271+       color: #333;
272+}
273+
274 #adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,
275 #adminmenu li.current a.menu-top,
276 .folded #adminmenu li.wp-has-current-submenu,
277 .folded #adminmenu li.current.menu-top,
278-#adminmenu .wp-menu-arrow,
279+#adminmenu .wp-has-current-submenu .wp-menu-arrow,
280+#adminmenu .current .wp-menu-arrow,
281 #adminmenu .wp-has-current-submenu .wp-submenu .wp-submenu-head {
282        background-color: #777; /* Fallback */
283        background-image: -ms-linear-gradient(bottom, #6d6d6d, #808080); /* IE10 */
284@@ -945,6 +974,16 @@
285        background-image: linear-gradient(bottom, #6d6d6d, #808080); /* proposed W3C Markup */
286 }
287 
288+.expanded #adminmenu li.wp-not-current-submenu li:hover a {
289+       background-color: #eaf2fa; /* Fallback */
290+       background-image: -ms-linear-gradient(left, #aaa, #f8fafd); /* IE10 */
291+       background-image: -moz-linear-gradient(left, #aaa, #f8fafd); /* Firefox */
292+       background-image: -o-linear-gradient(left, #aaa, #ccc); /* Opera */
293+       background-image: -webkit-gradient(linear, left bottom, right bottom, from(#aaa), to(#ccc)); /* old Webkit */
294+       background-image: -webkit-linear-gradient(left, white, #eaf2fa 30px); /* new Webkit */
295+       background-image: linear-gradient(left, #aaa, #ccc); /* proposed W3C Markup */
296+}
297+
298 #adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,
299 #adminmenu li.current a.menu-top,
300 #adminmenu .wp-has-current-submenu .wp-submenu .wp-submenu-head {
301@@ -975,12 +1014,12 @@
302        background-color: #fff;
303 }
304 
305-.folded #adminmenu .wp-submenu-wrap,
306-.folded #adminmenu .wp-submenu ul {
307+#adminmenu .wp-submenu-wrap,
308+#adminmenu .wp-submenu ul {
309        border-color: #dfdfdf;
310 }
311 
312-.folded #adminmenu .wp-submenu-wrap {
313+#adminmenu .wp-submenu-wrap {
314        -moz-box-shadow: 2px 2px 5px rgba( 0, 0, 0, 0.4 );
315        -webkit-box-shadow: 2px 2px 5px rgba( 0, 0, 0, 0.4 );
316        box-shadow: 2px 2px 5px rgba( 0, 0, 0, 0.4 );
317Index: wp-admin/css/wp-admin.dev.css
318===================================================================
319--- wp-admin/css/wp-admin.dev.css       (revision 18532)
320+++ wp-admin/css/wp-admin.dev.css       (working copy)
321@@ -1096,14 +1096,58 @@
322 }
323 
324 #adminmenu .wp-submenu {
325-       display: none;
326        list-style: none;
327        padding: 0;
328        margin: 0;
329+       overflow: hidden;
330+
331+}
332+
333+#adminmenu .wp-not-current-submenu .wp-submenu,
334+.folded #adminmenu .wp-has-current-submenu .wp-submenu {
335+       display: block;
336+       position: absolute;
337+       top: -1px;
338+       left: 146px;
339+       z-index: 999;
340+       width: 0;
341+       overflow: hidden;
342+       -moz-transition: width 200ms ease-out;
343+       -webkit-transition: width 200ms ease-out;
344+       -o-transition: width 200ms ease-out;
345+       transition: width 200ms ease-out;
346+}
347+
348+.expanded #adminmenu .wp-has-current-submenu .wp-submenu {
349        position: relative;
350        z-index: 2;
351+       width: 145px;
352+       top: auto;
353+       left: auto;
354+       right: auto;
355+       bottom: auto;
356+       padding: 0;
357 }
358 
359+.expanded #adminmenu .wp-has-current-submenu .wp-submenu-wrap {
360+       -moz-box-shadow: none;
361+       -webkit-box-shadow: none;
362+       box-shadow: none;
363+}
364+
365+.js.folded #adminmenu .wp-submenu {
366+       top: -5px;
367+       left: 26px;
368+}
369+.js #adminmenu .wp-submenu.sub-open {
370+       padding: 0 8px 8px 0;
371+}
372+
373+/*.js.folded #adminmenu .wp-has-current-submenu .wp-submenu {
374+       width: 0;
375+}*/
376+
377+
378 #adminmenu .wp-submenu a {
379        font-size: 12px;
380        line-height: 18px;
381@@ -1186,11 +1230,20 @@
382        padding-left: 12px;
383 }
384 
385+.expanded #adminmenu li.wp-not-current-submenu li {
386+       margin-left: 6px;
387+}
388+
389+.expanded #adminmenu li.wp-not-current-submenu li a {
390+       padding-left: 16px;
391+}
392+
393 .wp-menu-arrow {
394        display: none;
395 }
396 #adminmenu li.wp-has-current-submenu .wp-menu-arrow,
397-#adminmenu li.menu-top.current .wp-menu-arrow {
398+#adminmenu li.menu-top.current .wp-menu-arrow,
399+.expanded #adminmenu li.menu-top:hover .wp-menu-arrow {
400        display: block;
401        position: absolute;
402        right: -9px;
403@@ -1198,6 +1251,11 @@
404        cursor: auto;
405        z-index: 25;
406 }
407+
408+.expanded #adminmenu li.menu-top:hover .wp-menu-arrow {
409+       z-index: 1500;
410+}
411+
412 #adminmenu .wp-menu-arrow div {
413        width: 15px;
414        height: 30px;
415@@ -1245,24 +1303,6 @@
416        border-style: solid;
417 }
418 
419-.js.folded #adminmenu .wp-submenu {
420-       display: block;
421-       position: absolute;
422-       top: -5px;
423-       left: 26px;
424-       z-index: 999;
425-       width: 0;
426-       padding: 0;
427-       overflow: hidden;
428-       -moz-transition: width 200ms ease-out;
429-       -webkit-transition: width 200ms ease-out;
430-       -o-transition: width 200ms ease-out;
431-       transition: width 200ms ease-out;
432-}
433-.js.folded #adminmenu .wp-submenu.sub-open {
434-       padding: 0 8px 8px 0;
435-}
436-
437 #adminmenu .wp-submenu .wp-submenu-head {
438        padding: 6px 4px 5px 10px;
439        cursor: default;
440@@ -1270,9 +1310,8 @@
441        border-style: solid;
442 }
443 
444-.js.folded #adminmenu .wp-submenu-wrap {
445-       margin-top: 4px;
446-       border-width: 0 1px 1px 0;
447+.js #adminmenu .wp-not-current-submenu .wp-submenu-wrap {
448+       border-width: 1px 1px 1px 0;
449        border-style: solid;
450        position: relative;
451        -webkit-border-bottom-right-radius: 3px;
452@@ -1285,6 +1324,11 @@
453        border-top-right-radius: 3px;
454 }
455 
456+.js.folded #adminmenu .wp-submenu .wp-submenu-wrap {
457+       margin-top: 4px;
458+       border-width: 0 1px 1px 0;
459+}
460+
461 .js.folded #adminmenu .wp-submenu ul {
462        border-width: 0 0 0 1px;
463        border-style: solid;