MediaWiki:Mobile.js: Unterschied zwischen den Versionen
Admin (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung Markierung: Zurückgesetzt |
Admin (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung Markierung: Zurückgesetzt |
||
| Zeile 1: | Zeile 1: | ||
/* | /* ADOS – Hauptkategorien ins Hamburger-Menü (robust für lazy Drawer) */ | ||
mw.loader.using(['mediawiki.util']).then(function () { | |||
var CATS = [ | |||
{ title: 'Kategorie:Alle A Dream of Scotland Abfüllungen', label: 'A Dream of Scotland' }, | |||
{ title: 'Kategorie:Alle A Dream of Ireland Abfüllungen', label: 'A Dream of Ireland' }, | |||
'<ul class=" | { title: 'Kategorie:Alle A Dream of... – Der Rest der Welt Abfüllungen', label: 'Rest der Welt' }, | ||
<li class=" | { title: 'Kategorie:Cigar Malt Übersicht', label: 'Cigar Malt' }, | ||
< | { title: 'Kategorie:Alle Rumbastic Abfüllungen', label: 'Rumbastic' } | ||
]; | |||
< | function blockHTML() { | ||
var h = '<ul class="ados-hauptkategorien"><li class="menu-heading">Hauptkategorien</li>'; | |||
CATS.forEach(function (c) { | |||
h += '<li><a class="mw-ui-icon mw-ui-icon-before" href="' + | |||
<span | mw.util.getUrl(c.title) + '"><span>' + | ||
(c.label || c.title.replace(/^Kategorie:/,'')) + | |||
</a> | '</span></a></li>'; | ||
</li> | }); | ||
return h + '</ul>'; | |||
< | } | ||
function injectOnce() { | |||
var menu = document.querySelector('#mw-mf-page-left .menu, .drawer .menu, .menu'); | |||
if (!menu || menu.querySelector('.ados-hauptkategorien')) return !!menu; | |||
var firstUl = menu.querySelector('ul'); | |||
if (!firstUl) return false; | |||
firstUl.insertAdjacentHTML('afterend', blockHTML()); | |||
return true; | |||
} | |||
function onOpen() { | |||
setTimeout(injectOnce, 10); | |||
setTimeout(injectOnce, 200); | |||
setTimeout(injectOnce, 600); | |||
} | |||
// Falls der Drawer schon im DOM ist | |||
injectOnce(); | |||
// Beim Öffnen des Hamburgers (verschiedene Selektoren je nach Version) | |||
document.addEventListener('click', function (e) { | |||
if (e.target.closest('#mw-mf-main-menu-button,.mw-ui-icon-minerva-drawer,.hamburger,.toggle-list-button')) onOpen(); | |||
}, true); | |||
); | |||
// Fallback: sobald der Drawer nachgeladen wird | |||
new MutationObserver(injectOnce).observe(document.body, { childList: true, subtree: true }); | |||
}); | }); | ||