Zum Inhalt springen

MediaWiki:Minerva.js

Aus ADOS Wiki

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
/* All JavaScript here will be loaded for users of the MinervaNeue skin */
console.log('Minerva.js: OK');

mw.loader.using(['mediawiki.util']).then(function () {
  var LINK_ID = 'ados-all-link';
  var LINK_TEXT = 'Alle A Dream of Scotland Abfüllungen';
  var LINK_URL = mw.util.getUrl('Alle A Dream of Scotland Abfüllungen'); 
  // Alternativ harte URL:
  // var LINK_URL = 'https://ados-wiki.bplaced.net/index.php?title=Alle_A_Dream_of_Scotland_Abf%C3%BCllungen';

  function findMenuList() {
    // Mehrere mögliche Strukturen je nach Minerva/MobileFrontend-Version:
    return document.querySelector(
      // neuer Minerva-Drawer
      '.minerva-drawer .minerva-drawer__list,' +
      // ältere Drawer-Varianten
      '#mw-mf-page-left .menu ul,' +
      '.drawer .menu ul,' +
      'nav.drawer .menu ul'
    );
  }

  function addLink() {
    if (document.getElementById(LINK_ID)) return; // schon da
    var list = findMenuList();
    if (!list) return;

    var li = document.createElement('li');
    li.className = 'mw-list-item';
    var a = document.createElement('a');
    a.id = LINK_ID;
    a.textContent = LINK_TEXT;
    a.href = LINK_URL;
    li.appendChild(a);

    // nach ganz oben
    list.insertBefore(li, list.firstChild);
    console.log('Minerva.js: Link eingefügt ✔');
  }

  // 1) Beim Laden
  if (document.readyState !== 'loading') addLink();
  else document.addEventListener('DOMContentLoaded', addLink);

  // 2) Wenn der Drawer später gerendert wird → MutationObserver
  var mo = new MutationObserver(function () { addLink(); });
  mo.observe(document.body, { childList: true, subtree: true });

  // 3) Kleines Intervall als Fallback (läuft 5s)
  var t = 0, i = setInterval(function () {
    addLink();
    if ((t += 500) >= 5000) clearInterval(i);
  }, 500);
});