Zum Inhalt springen

MediaWiki:Mobile.js: Unterschied zwischen den Versionen

Aus ADOS Wiki
Keine Bearbeitungszusammenfassung
Markierung: Zurückgesetzt
Keine Bearbeitungszusammenfassung
Markierung: Zurückgesetzt
Zeile 1: Zeile 1:
/* ADOS – Hauptkategorien ins Hamburger-Menü (MobileFrontend + Minerva) */
/* Das folgende JavaScript wird für alle Nutzer der mobilen Ansicht geladen. */
mw.loader.using(['mediawiki.util','mediawiki.notify']).then(function () {


  // === KONFIGURATION: Hauptkategorien ===
/* Weitere Menüs für MobileFrontend & MinervaNeue (Mobile Ansicht) */
  var CATS = [
$(document).ready(function() {
    { title: 'Kategorie:Alle A Dream of Scotland Abfüllungen', label: 'A Dream of Scotland' },
$('.menu ul:first').after(
    { title: 'Kategorie:Alle A Dream of Ireland Abfüllungen',  label: 'A Dream of Ireland' },
'<ul class="toggle-list__list"> \
    { title: 'Kategorie:Alle A Dream of... – Der Rest der Welt Abfüllungen', label: 'Rest der Welt' },
<li class="toggle-list-item"> \
    { title: 'Kategorie:Cigar Malt Übersicht', label: 'Cigar Malt' },
<a class="toggle-list-item__anchor" href="#"> \
    { title: 'Kategorie:Alle Rumbastic Abfüllungen', label: 'Rumbastic' },
<span class="minerva-icon minerva-icon--listBullet"></span> \
    { title: 'Kategorie:The Tasteful 8', label: 'The Tasteful 8' },
<span class="toggle-list-item__label">Beliebte Artikel</span> \
    { title: 'Kategorie:Còmhlan Abfüllungen', label: 'Còmhlan' },
</a> \
    { title: 'Kategorie:Friendly Mr. Z Whiskytainment Abfüllungen', label: 'Friendly Mr. Z' },
</li> \
    { title: 'Kategorie:Die Whisky Elfen Abfüllungen', label: 'Die Whisky Elfen' },
<li class="toggle-list-item"> \
    { title: 'Kategorie:The Fine Art of Whisky Abfüllungen', label: 'Fine Art of Whisky' },
<a class="toggle-list-item__anchor" href="/wiki/Hauptcharaktere"> \
    { title: 'Kategorie:The Forbidden Kingdom', label: 'The Forbidden Kingdom' }
<span class="minerva-icon"></span> \
  ];
<span class="toggle-list-item__label">Hauptcharaktere</span> \
 
</a> \
  // === Hilfsfunktionen ===
</li> \
  function buildListHTML() {
<li class="toggle-list-item"> \
    var html = '<ul class="ados-hauptkategorien"><li class="menu-heading">Hauptkategorien</li>';
<a class="toggle-list-item__anchor" href="/wiki/Liste_der_Fälle"> \
    CATS.forEach(function (c) {
<span class="minerva-icon"></span> \
      html += '<li><a class="mw-ui-icon mw-ui-icon-before" href="' +
<span class="toggle-list-item__label">Liste der Fälle</span> \
        mw.util.getUrl(c.title) + '"><span>' + (c.label || c.title.replace(/^Kategorie:/,'')) +
</a> \
        '</span></a></li>';
</li> \
    });
<li class="toggle-list-item"> \
    html += '</ul>';
<a class="toggle-list-item__anchor" href="/wiki/Liste_der_Manga-Bände"> \
    return html;
<span class="minerva-icon"></span> \
  }
<span class="toggle-list-item__label">Liste der Kapitel</span> \
 
</a> \
  function tryInsertOnce() {
</li> \
    // Menü-Container in Minerva (versch. Versionen haben leicht andere Strukturen)
<li class="toggle-list-item"> \
    var menu = document.querySelector('#mw-mf-page-left .menu, .drawer .menu, .menu');
<a class="toggle-list-item__anchor" href="/wiki/Liste_der_Anime-Episoden"> \
    if (!menu) return false;
<span class="minerva-icon"></span> \
    if (menu.querySelector('.ados-hauptkategorien')) return true; // schon eingefügt
<span class="toggle-list-item__label">Liste der Episoden</span> \
    var firstUl = menu.querySelector('ul');
</a> \
    if (!firstUl) return false;
</li> \
    firstUl.insertAdjacentHTML('afterend', buildListHTML());
<li class="toggle-list-item"> \
    return true;
<a class="toggle-list-item__anchor" href="/wiki/Liste_der_Filme"> \
  }
<span class="minerva-icon"></span> \
 
<span class="toggle-list-item__label">Liste der Filme</span> \
  function onDrawerOpen() {
</a> \
    // Menü baut sich lazy auf – mehrmals kurz nacheinander versuchen
</li> \
    setTimeout(tryInsertOnce, 30);
</ul>'
    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.');
  }
});
});

Version vom 8. Oktober 2025, 23:56 Uhr

/* Das folgende JavaScript wird für alle Nutzer der mobilen Ansicht geladen. */

/* Weitere Menüs für MobileFrontend & MinervaNeue (Mobile Ansicht) */
$(document).ready(function() {
$('.menu ul:first').after(
'<ul class="toggle-list__list"> \
<li class="toggle-list-item"> \
<a class="toggle-list-item__anchor" href="#"> \
<span class="minerva-icon minerva-icon--listBullet"></span> \
<span class="toggle-list-item__label">Beliebte Artikel</span> \
</a> \
</li> \
<li class="toggle-list-item"> \
<a class="toggle-list-item__anchor" href="/wiki/Hauptcharaktere"> \
<span class="minerva-icon"></span> \
<span class="toggle-list-item__label">Hauptcharaktere</span> \
</a> \
</li> \
<li class="toggle-list-item"> \
<a class="toggle-list-item__anchor" href="/wiki/Liste_der_Fälle"> \
<span class="minerva-icon"></span> \
<span class="toggle-list-item__label">Liste der Fälle</span> \
</a> \
</li> \
<li class="toggle-list-item"> \
<a class="toggle-list-item__anchor" href="/wiki/Liste_der_Manga-Bände"> \
<span class="minerva-icon"></span> \
<span class="toggle-list-item__label">Liste der Kapitel</span> \
</a> \
</li> \
<li class="toggle-list-item"> \
<a class="toggle-list-item__anchor" href="/wiki/Liste_der_Anime-Episoden"> \
<span class="minerva-icon"></span> \
<span class="toggle-list-item__label">Liste der Episoden</span> \
</a> \
</li> \
<li class="toggle-list-item"> \
<a class="toggle-list-item__anchor" href="/wiki/Liste_der_Filme"> \
<span class="minerva-icon"></span> \
<span class="toggle-list-item__label">Liste der Filme</span> \
</a> \
</li> \
</ul>'
);
});