MediaWiki:Gadget-wix-nav.js: Difference between revisions
Content deleted Content added
No edit summary |
No edit summary |
||
Line 154:
}
// 2. Detect current page and its index
var currentPage = mw.config.get( 'wgPageName' ).replace( / /g, '_' );
var currentLabel = 'Navigate to\u2026';
var currentIdx = -1;
pages.forEach( function ( entry, i ) {
var normalizedPage = entry[ 1 ].replace( / /g, '_' );
if ( normalizedPage === currentPage ) {
currentLabel = entry[ 0 ];
currentIdx = i;
}
} );
Line 168 ⟶ 170:
wix.empty( container );
var
className: 'wix-dropdown',
'role': 'navigation',
Line 213 ⟶ 215:
} );
container.appendChild( wrapper );▼
// 4. Back / Next buttons
var isFirst = currentIdx <= 0;
var isLast = currentIdx >= pages.length - 1;
var btnBack = wix.el( 'a', {
className: 'wix-btn wix-btn--outline wix-dropdown-nav-btn',
textContent: '\u2190 Back'
} );
var btnNext = wix.el( 'a', {
className: 'wix-btn wix-dropdown-nav-btn',
textContent: 'Next \u2192'
} );
if ( isFirst || currentIdx === -1 ) {
btnBack.classList.add( 'wix-dropdown-nav-btn--disabled' );
btnBack.removeAttribute( 'href' );
} else {
btnBack.setAttribute( 'href', mw.util.getUrl( pages[ currentIdx - 1 ][ 1 ] ) );
}
if ( isLast || currentIdx === -1 ) {
btnNext.classList.add( 'wix-dropdown-nav-btn--disabled' );
btnNext.removeAttribute( 'href' );
} else {
btnNext.setAttribute( 'href', mw.util.getUrl( pages[ currentIdx + 1 ][ 1 ] ) );
}
// 5. Assemble: Back | Dropdown | Next
var row = wix.el( 'div', { className: 'wix-dropdown-row' }, [
btnBack,
dropdown,
btnNext
] );
//
var isOpen = false;
Line 226 ⟶ 264:
} );
//
document.addEventListener( 'click', function ( e ) {
if ( isOpen && !
isOpen = false;
toggle.classList.remove( 'wix-dropdown-toggle--open' );
| |||