MediaWiki:Common.js

Aus Lost Dreams Of Tomorrow Wiki

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
// MediaWiki Sidebar Toggle Script - Vanilla JS
(function() {
    'use strict';
    
    function initSidebar() {
        // Finde alle sidebar-collapsible Überschriften
        var headers = document.querySelectorAll('.sidebar-collapsible');
        
        console.log('Gefundene Headers:', headers.length); // Debug
        
        headers.forEach(function(header) {
            var portletBody = header.nextElementSibling;
            
            if (!portletBody || !portletBody.classList.contains('mw-portlet-body')) {
                console.log('Kein portlet-body gefunden für:', header);
                return;
            }
            
            // Füge Icon hinzu
            if (!header.querySelector('.toggle-icon')) {
                var icon = document.createElement('span');
                icon.className = 'toggle-icon';
                icon.textContent = '▼ ';
                header.insertBefore(icon, header.firstChild);
            }
            
            // Cursor
            header.style.cursor = 'pointer';
            
            // Initial Status
            if (!header.classList.contains('open')) {
                portletBody.style.display = 'none';
                header.querySelector('.toggle-icon').textContent = '▶ ';
            }
            
            // Click Event
            header.addEventListener('click', function(e) {
                e.preventDefault();
                console.log('Klick auf:', this); // Debug
                
                var icon = this.querySelector('.toggle-icon');
                var body = this.nextElementSibling;
                
                if (body.style.display === 'none') {
                    body.style.display = 'block';
                    icon.textContent = '▼ ';
                    this.classList.add('open');
                } else {
                    body.style.display = 'none';
                    icon.textContent = '▶ ';
                    this.classList.remove('open');
                }
            });
        });
    }
    
    // Warte bis DOM geladen ist
    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', initSidebar);
    } else {
        initSidebar();
    }
})();