1// generic layout specific responsive stuff goes here 2 3function openFlyout() { 4 $('html').addClass('flyout-is-active'); 5 $('#wrapper2').on('click', function(e){ 6 e.preventDefault(); 7 e.stopPropagation(); 8 closeFlyout(); 9 }); 10} 11 12function closeFlyout() { 13 $('html').removeClass('flyout-is-active'); 14 $('#wrapper2').off('click'); 15} 16 17 18function isMobile() { 19 return $('.js-flyout-menu-toggle-button').is(":visible"); 20} 21 22function setupFlyout() { 23 var mobileInit = false, 24 desktopInit = false; 25 26 /* click handler for mobile menu toggle */ 27 $('.js-flyout-menu-toggle-button').on('click', function(e) { 28 e.preventDefault(); 29 e.stopPropagation(); 30 if($('html').hasClass('flyout-is-active')) { 31 closeFlyout(); 32 } else { 33 openFlyout(); 34 } 35 }); 36 37 /* bind resize handler */ 38 $(window).resize(function() { 39 initMenu(); 40 }) 41 42 /* menu init function for dom detaching and appending on mobile / desktop view */ 43 function initMenu() { 44 45 var _initMobileMenu = function() { 46 /* only init mobile menu, if it hasn't been done yet */ 47 if(!mobileInit) { 48 49 $('#main-menu > ul').detach().appendTo('.js-project-menu'); 50 $('#top-menu > ul').detach().appendTo('.js-general-menu'); 51 $('#sidebar > *').detach().appendTo('.js-sidebar'); 52 $('#account > ul').detach().appendTo('.js-profile-menu'); 53 54 mobileInit = true; 55 desktopInit = false; 56 } 57 } 58 59 var _initDesktopMenu = function() { 60 if(!desktopInit) { 61 62 $('.js-project-menu > ul').detach().appendTo('#main-menu'); 63 $('.js-general-menu > ul').detach().appendTo('#top-menu'); 64 $('.js-sidebar > *').detach().appendTo('#sidebar'); 65 $('.js-profile-menu > ul').detach().appendTo('#account'); 66 67 desktopInit = true; 68 mobileInit = false; 69 } 70 } 71 72 if(isMobile()) { 73 _initMobileMenu(); 74 } else { 75 _initDesktopMenu(); 76 } 77 } 78 79 // init menu on page load 80 initMenu(); 81} 82 83$(document).ready(setupFlyout);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.