Zum Inhalt springen

MediaWiki:Common.js: Unterschied zwischen den Versionen

Aus TerranianStar
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
/* ============================================================
  Vector‑2022 – sauberes, stabiles Einklappen
  ============================================================ */
mw.hook('wikipage.content').add(function () {
    // Skin ermitteln
    var skin = mw.config.get('skin');
    // Nur Vector‑2022 soll collapsible sein
    if (skin !== 'vector-2022') return;
    // Doppelte Handler verhindern
    $('.vector-menu-heading').off('click.vector2022');
    // Collapse-Handler setzen
    $('.vector-menu-heading').on('click.vector2022', function (e) {
        e.preventDefault();
        var heading = $(this);
        var content = heading.next('.vector-menu-content');
        // hidden="" entfernen, falls gesetzt
        content.removeAttr('hidden');
        // Ein-/Ausklappen
        content.slideToggle(120);
        heading.toggleClass('collapsed');
    });
});
/* ============================================================
/* ============================================================
   Vector‑2022 – Collapse-Zustand merken
   Vector‑2022 – Collapse-Zustand merken

Version vom 26. Mai 2026, 18:46 Uhr

/* ============================================================
   Vector‑2022 – Collapse-Zustand merken
   ============================================================ */

mw.hook('wikipage.content').add(function () {

    // Nur Vector‑2022
    if (mw.config.get('skin') !== 'vector-2022') return;

    // Alle Menüs durchgehen
    $('.vector-menu-heading').each(function () {

        const heading = $(this);
        const content = heading.next('.vector-menu-content');

        // Jede Box hat eine ID (z. B. p-navigation, p-TS-Universum)
        const menu = heading.closest('.vector-menu');
        const id = menu.attr('id');

        if (!id) return; // Sicherheit

        // Zustand aus localStorage laden
        const saved = localStorage.getItem('v22-collapse-' + id);

        if (saved === 'collapsed') {
            content.hide();
            heading.addClass('collapsed');
        }

        // Klick-Handler setzen (sauber, ohne doppelte Events)
        heading.off('click.v22').on('click.v22', function () {

            heading.toggleClass('collapsed');
            content.slideToggle(120);

            // Zustand speichern
            localStorage.setItem(
                'v22-collapse-' + id,
                heading.hasClass('collapsed') ? 'collapsed' : 'open'
            );
        });
    });
});