MediaWiki:Common.js: Unterschied zwischen den Versionen
Erscheinungsbild
Gerard (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Gerard (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
| Zeile 9: | Zeile 9: | ||
const portlet = $(this); | const portlet = $(this); | ||
const heading = portlet.find('.vector-menu-heading'); | const heading = portlet.find('.vector-menu-heading'); | ||
const content = portlet.find('.vector-menu-content'); | const content = portlet.find('.vector-menu-content'); | ||
if (!heading.length || !content.length) return; | if (!heading.length || !content.length) return; | ||
// | // Falls keine ID vorhanden → generieren | ||
let pid = portlet.attr('id'); | |||
if (!pid) { | |||
pid = 'portlet-auto-' + Math.random().toString(36).substr(2, 9); | |||
portlet.attr('id', pid); | |||
} | |||
const key = 'sidebar-state-' + pid; | |||
const key = 'sidebar-state-' + | |||
// Zustand laden | |||
const saved = localStorage.getItem(key); | const saved = localStorage.getItem(key); | ||
if (saved === 'collapsed') { | if (saved === 'collapsed') { | ||
content.hide(); | content.hide(); | ||
| Zeile 25: | Zeile 29: | ||
} | } | ||
// Klick | // Klick | ||
heading.on('click', function (e) { | heading.css('cursor', 'pointer').on('click', function (e) { | ||
e.preventDefault(); | e.preventDefault(); | ||
e.stopPropagation(); | e.stopPropagation(); | ||
Version vom 26. Mai 2026, 14:05 Uhr
/* ============================================================
Sidebar einklappbar – kompatibel mit Vector‑2022 Hybrid
============================================================ */
$(document).ready(function () {
$('.mw-portlet').each(function () {
const portlet = $(this);
const heading = portlet.find('.vector-menu-heading');
const content = portlet.find('.vector-menu-content');
if (!heading.length || !content.length) return;
// Falls keine ID vorhanden → generieren
let pid = portlet.attr('id');
if (!pid) {
pid = 'portlet-auto-' + Math.random().toString(36).substr(2, 9);
portlet.attr('id', pid);
}
const key = 'sidebar-state-' + pid;
// Zustand laden
const saved = localStorage.getItem(key);
if (saved === 'collapsed') {
content.hide();
heading.addClass('collapsed');
}
// Klick
heading.css('cursor', 'pointer').on('click', function (e) {
e.preventDefault();
e.stopPropagation();
content.slideToggle(200);
const collapsed = content.is(':hidden');
heading.toggleClass('collapsed', collapsed);
localStorage.setItem(key, collapsed ? 'collapsed' : 'expanded');
});
});
});