Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.

  • Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
  • Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
  • Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
/* ADOS – Hauptkategorien ins Hamburger-Menü (MobileFrontend + Minerva) */
mw.loader.using(['mediawiki.util','mediawiki.notify']).then(function () {

  // === KONFIGURATION: Hauptkategorien ===
  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' },
    { title: 'Kategorie:Alle A Dream of... – Der Rest der Welt Abfüllungen', label: 'Rest der Welt' },
    { title: 'Kategorie:Cigar Malt Übersicht', label: 'Cigar Malt' },
    { title: 'Kategorie:Alle Rumbastic Abfüllungen', label: 'Rumbastic' },
    { title: 'Kategorie:The Tasteful 8', label: 'The Tasteful 8' },
    { title: 'Kategorie:Còmhlan Abfüllungen', label: 'Còmhlan' },
    { title: 'Kategorie:Friendly Mr. Z Whiskytainment Abfüllungen', label: 'Friendly Mr. Z' },
    { title: 'Kategorie:Die Whisky Elfen Abfüllungen', label: 'Die Whisky Elfen' },
    { title: 'Kategorie:The Fine Art of Whisky Abfüllungen', label: 'Fine Art of Whisky' },
    { title: 'Kategorie:The Forbidden Kingdom', label: 'The Forbidden Kingdom' }
  ];

  // === Hilfsfunktionen ===
  function buildListHTML() {
    var html = '<ul class="ados-hauptkategorien"><li class="menu-heading">Hauptkategorien</li>';
    CATS.forEach(function (c) {
      html += '<li><a class="mw-ui-icon mw-ui-icon-before" href="' +
        mw.util.getUrl(c.title) + '"><span>' + (c.label || c.title.replace(/^Kategorie:/,'')) +
        '</span></a></li>';
    });
    html += '</ul>';
    return html;
  }

  function tryInsertOnce() {
    // Menü-Container in Minerva (versch. Versionen haben leicht andere Strukturen)
    var menu = document.querySelector('#mw-mf-page-left .menu, .drawer .menu, .menu');
    if (!menu) return false;
    if (menu.querySelector('.ados-hauptkategorien')) return true; // schon eingefügt
    var firstUl = menu.querySelector('ul');
    if (!firstUl) return false;
    firstUl.insertAdjacentHTML('afterend', buildListHTML());
    return true;
  }

  function onDrawerOpen() {
    // Menü baut sich lazy auf – mehrmals kurz nacheinander versuchen
    setTimeout(tryInsertOnce, 30);
    setTimeout(tryInsertOnce, 200);
    setTimeout(tryInsertOnce, 600);
  }

  // Sofort versuchen (falls Menü schon im DOM ist)
  tryInsertOnce();

  // Auf Klick auf den Menü-Button reagieren (verschiedene Selektoren je nach MW/Minerva)
  document.addEventListener('click', function (e) {
    if (e.target.closest('#mw-mf-main-menu-button,.mw-ui-icon-minerva-drawer,.hamburger,.toggle-list-button')) {
      onDrawerOpen();
    }
  }, true);

  // Fallback: sobald irgendwas Menü-Ähnliches in den DOM kommt, einfügen
  var mo = new MutationObserver(function () {
    if (tryInsertOnce()) return; // einmalig einfügen
  });
  mo.observe(document.body, { childList: true, subtree: true });

  // sichtbarer Hinweis im Debugmodus
  if (/\bdebug=1\b/.test(location.search)) {
    mw.notify('Mobile.js aktiv – Hauptkategorien werden eingefügt.');
  }
});