MediaWiki:Common.js: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Asphyx (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung |
Asphyx (Diskussion | Beiträge) 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 | // 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
});
}
});
});