MediaWiki:Common.js: Unterschied zwischen den Versionen

Aus MILLENNIUM ARTS ISP - Hilfe | FAQ
Zur Navigation springen Zur Suche springen
KKeine Bearbeitungszusammenfassung
KKeine Bearbeitungszusammenfassung
Zeile 3: Zeile 3:
     console.log("Common.js wird geladen!");
     console.log("Common.js wird geladen!");


     // Liste der Standard-Menüs, die eingeklappt starten (TOOLBOX entfernt)
     // Liste der Standard-Menüs, die eingeklappt starten (TOOLBOX wieder hinzugefügt)
     var defaultCollapsed = ['navigation', 'SEARCH', 'LANGUAGES'];
     var defaultCollapsed = ['navigation', 'SEARCH', 'TOOLBOX', 'LANGUAGES'];


     // Alle Vector-Menü-Portale durchlaufen
     // Alle Vector-Menü-Portale durchlaufen

Version vom 30. März 2025, 11:18 Uhr

/* Das folgende JavaScript wird für alle Benutzer geladen. */
$(document).ready(function() {
    console.log("Common.js wird geladen!");

    // Liste der Standard-Menüs, die eingeklappt starten (TOOLBOX wieder hinzugefügt)
    var defaultCollapsed = ['navigation', 'SEARCH', 'TOOLBOX', 'LANGUAGES'];

    // Alle Vector-Menü-Portale durchlaufen
    $('.vector-menu-portal').each(function() {
        var $portal = $(this);
        var $header = $portal.find('.vector-menu-heading');
        var $content = $portal.find('.vector-menu-content-list');
        var portalId = $portal.attr('id'); // z. B. "p-HOSTING"
        var portalName = portalId ? portalId.replace('p-', '') : '';

        // Nur Portale mit Untermenüs bearbeiten (mindestens 1 <li>)
        if ($content.find('li').length > 0) {
            console.log("Portal:", portalName, "Untermenüs:", $content.find('li').length);

            // Indikator hinzufügen (▼ für ausgeklappt, ▶ für eingeklappt)
            $header.prepend('<span class="menu-indicator">▼</span> ');

            // Styling
            $header.css({
                'cursor': 'pointer',
                'font-weight': 'bold',
                'display': 'flex',
                'align-items': 'center'
            });
            $header.find('.menu-indicator').css({
                'margin-right': '5px',
                'transition': 'transform 0.3s ease'
            });

            // Standardzustand festlegen
            var isOpen = !defaultCollapsed.includes(portalName); // Ausgeklappt, außer für defaultCollapsed
            if (isOpen) {
                $content.show();
                $header.find('.menu-indicator').css('transform', 'rotate(0deg)');
            } else {
                $content.hide();
                $header.find('.menu-indicator').css('transform', 'rotate(-90deg)');
            }

            // Klick-Event mit synchroner Animation
            $header.click(function(e) {
                e.preventDefault();
                var $indicator = $header.find('.menu-indicator');

                if (isOpen) {
                    $content.slideUp(300);
                    $indicator.css('transform', 'rotate(-90deg)');
                } else {
                    $content.slideDown(300);
                    $indicator.css('transform', 'rotate(0deg)');
                }
                isOpen = !isOpen; // Zustand umschalten
            });
        }
    });
});