/* Custom Header - JS Initialisation, Setup, Events See detailed documentation in Dev/mediawiki deferrable:YES -- It needs time for loading anyways */ (function() { if( $('#custom-header').length == 0 ) return; // ----- // Setup // Setup of super menu by current user status and watching status if( $('#pt-userpage').length > 0 ) { $('#custom-header .super-menu .headline.user').text('User: ' + $('#pt-userpage > a').text() ); } // Watch indicator if( $('#ca-unwatch').length != 0 ) { $('body').addClass('page-is-watched'); } // If no oldid was given in the search params, remove oldid from edit link let q = new URLSearchParams( window.location.search.substring(1) ); $('#custom-header .super-menu .edit').attr( 'href', function( index, href ) { if( ! q.get('oldid') ) return href.replace( /&oldid=[^&$]+/, '' ); }); // Make Menu Buttons Links if it's NOT a JS active touch device $( '#custom-header .nav-menu .button[data-link]' ).each( function() { if( ( 'ontouchstart' in window ) || ( navigator.maxTouchPoints > 0 ) || ( navigator.msMaxTouchPoints > 0 ) ) return; $( `${$(this).text()}` ).insertAfter( $(this) ); $(this).remove(); }); // ------ // Events // Make MouseIn over header menu (nav menu and super menu) activate header menu let headerMenus = $('#custom-header .header-menu'); let headerMenuLocked; headerMenus.each( (i,headerMenu) => $(headerMenu).on( 'mouseleave', () => { $(headerMenu).removeClass('active'); console.log(headerMenu) } ) ); headerMenus.each( (i,headerMenu) => $(headerMenu).children('.menu-button').on( 'mouseenter click', () => { if( $(headerMenu).hasClass('active') || headerMenuLocked ) return; headerMenuLocked = true; $(headerMenu).addClass('active'); setTimeout( () => { headerMenuLocked = false; }, 50 ); })); headerMenus.each( (i,headerMenu) => $(headerMenu).children('.menu-button').on( 'click', function() { if( ! $(headerMenu).hasClass('active') || headerMenuLocked ) return; headerMenuLocked = true; $(headerMenu).removeClass('active'); setTimeout( () => { headerMenuLocked = false; }, 50 ); })); })(); /* [[Category:MultiWiki]] */