Zum Inhalt springen

MediaWiki:Mobile.js: Unterschied zwischen den Versionen

Aus ADOS Wiki
Keine Bearbeitungszusammenfassung
Markierung: Zurückgesetzt
Keine Bearbeitungszusammenfassung
 
(7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
// Fügt in der mobilen Minerva-Ansicht einen Menüpunkt im Hamburger-Menü hinzu
/* Minerva: Alle Abschnitte automatisch ausklappen */
( function () {
(function () {
   if ( mw.config.get('skin') !== 'minerva' ) return;
  if (!window.mw) return;
   if (mw.config.get('skin') !== 'minerva') return;


   function addLinkWhenMenuExists() {
   function expandAll() {
     // Versuche mehrere plausible Container nacheinander
     // 1) Alle Toggle-Buttons, die noch "zu" sind, anklicken
     var container =
     document.querySelectorAll('button.section-toggle[aria-expanded="false"], [data-event-name="section-toggle"][aria-expanded="false"]').forEach(function (btn) {
      document.querySelector('#mw-mf-main-menu nav ul') ||
       try { btn.click(); } catch(e) {}
      document.querySelector('#mw-mf-main-menu ul') ||
    });
      document.querySelector('.minerva-main-menu .menu__list') ||
       document.querySelector('.menu__list, .menu') ||
      null;


     if (!container) {
     // 2) Sicherheitsgurt: typische Inhalts-Container sichtbar erzwingen
       setTimeout(addLinkWhenMenuExists, 400);
    document.querySelectorAll('.collapsible-block, .mf-section-contents, .section-content').forEach(function (el) {
       return;
       el.style.display = 'block';
     }
      el.hidden = false;
      el.classList.add('open-block');
       el.classList.remove('collapsed');
     });
  }


     // Doppelte Einträge vermeiden
  // Beim Rendern und bei dynamischen Änderungen erneut ausführen
     if (document.getElementById('menu-custom-reiter')) return;
  function init() {
    expandAll();
     // Nochmal kurz nach Seitenaufbau und nach spätem JS
     setTimeout(expandAll, 50);
    setTimeout(expandAll, 400);
  }


     var li = document.createElement('li');
  if (mw.loader && mw.loader.using) {
    li.className = 'mw-list-item';
     mw.loader.using(['mobile.init']).always(function () {
    li.id = 'menu-custom-reiter';
      if (mw.hook) mw.hook('wikipage.content').add(init);
 
      init();
    var a = document.createElement('a');
     });
    a.href = '/wiki/MeinReiter';       // <-- Ziel hier anpassen
  } else {
     a.textContent = 'Reiter hinzufügen'; // Linktext
     document.addEventListener('DOMContentLoaded', init);
 
     li.appendChild(a);
    container.appendChild(li);
   }
   }
 
})();
  // Beim Laden und nach dem Öffnen des Menüs versuchen
  document.addEventListener('DOMContentLoaded', addLinkWhenMenuExists);
  document.addEventListener('click', function(e){
    var btn = e.target.closest('button, a');
    if (btn && /menu|hamburger|main-menu/i.test(btn.className + ' ' + btn.id)) {
      setTimeout(addLinkWhenMenuExists, 300);
    }
  });
}() );

Aktuelle Version vom 25. Oktober 2025, 19:58 Uhr

/* Minerva: Alle Abschnitte automatisch ausklappen */
(function () {
  if (!window.mw) return;
  if (mw.config.get('skin') !== 'minerva') return;

  function expandAll() {
    // 1) Alle Toggle-Buttons, die noch "zu" sind, anklicken
    document.querySelectorAll('button.section-toggle[aria-expanded="false"], [data-event-name="section-toggle"][aria-expanded="false"]').forEach(function (btn) {
      try { btn.click(); } catch(e) {}
    });

    // 2) Sicherheitsgurt: typische Inhalts-Container sichtbar erzwingen
    document.querySelectorAll('.collapsible-block, .mf-section-contents, .section-content').forEach(function (el) {
      el.style.display = 'block';
      el.hidden = false;
      el.classList.add('open-block');
      el.classList.remove('collapsed');
    });
  }

  // Beim Rendern und bei dynamischen Änderungen erneut ausführen
  function init() {
    expandAll();
    // Nochmal kurz nach Seitenaufbau und nach spätem JS
    setTimeout(expandAll, 50);
    setTimeout(expandAll, 400);
  }

  if (mw.loader && mw.loader.using) {
    mw.loader.using(['mobile.init']).always(function () {
      if (mw.hook) mw.hook('wikipage.content').add(init);
      init();
    });
  } else {
    document.addEventListener('DOMContentLoaded', init);
  }
})();