Zum Inhalt springen

MediaWiki:Common.js

Aus TerranianStar

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
/* ============================================================
   Sidebar einklappbar – Vector‑2011 + Vector‑2022
   ============================================================ */

$(document).ready(function() {

    /* Vector‑2022 */
    $('.mw-portlet .vector-menu-heading').each(function() {
        const heading = $(this);

        // Vector‑2022: Inhalt liegt in .vector-menu-content-list
        const content = heading.closest('.mw-portlet').find('.vector-menu-content-list');

        if (content.length) {
            heading.css('cursor', 'pointer');

            heading.on('click', function(e) {
                e.preventDefault();
                e.stopPropagation();
                content.slideToggle(200);
                heading.toggleClass('collapsed');
            });
        }
    });

    /* Vector‑2011 */
    $('.mw-portlet h3').each(function() {
        const heading = $(this);
        const content = heading.next('.body');

        if (content.length) {
            heading.css('cursor', 'pointer');

            heading.on('click', function() {
                content.slideToggle(200);
                heading.toggleClass('collapsed');
            });
        }
    });

});

/* Sidebar-Zustände speichern und wiederherstellen (Vector-2022) */
mw.hook('wikipage.content').add(function () {
    const sections = document.querySelectorAll('.vector-menu');

    sections.forEach(section => {
        const heading = section.querySelector('.vector-menu-heading');
        if (!heading) return;

        const id = section.id;
        const key = 'sidebar-state-' + id;

        // Zustand wiederherstellen
        const saved = localStorage.getItem(key);
        if (saved === 'collapsed') {
            section.classList.add('vector-menu-collapsed');
        }

        // Klick-Event zum Speichern
        heading.addEventListener('click', () => {
            const isCollapsed = section.classList.contains('vector-menu-collapsed');
            localStorage.setItem(key, isCollapsed ? 'collapsed' : 'expanded');
        });
    });
});