MediaWiki:Common.js
Erscheinungsbild
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
/* ============================================================
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
============================================================ */
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'
);
});
});
});