Änderung 9695 von Mark.wagner (Diskussion) rückgängig gemacht. Markierung: Rückgängigmachung |
Keine Bearbeitungszusammenfassung |
||
| Zeile 1: | Zeile 1: | ||
mw.loader.using(['jquery'], function () { | mw.loader.using(['jquery'], function () { | ||
$(document).ready(function () { | $(document).ready(function () { | ||
/*$('.smw-column-header').each(function () { | /*$('.smw-column-header').each(function () { | ||
// aktuellen HTML-Inhalt holen | // aktuellen HTML-Inhalt holen | ||
var html = $(this).html(); | var html = $(this).html(); | ||
// "Fortsetzung" entfernen, Leerzeichen ggf. bereinigen | // "Fortsetzung" entfernen, Leerzeichen ggf. bereinigen | ||
var newHtml = html.replace(/Fortsetzung/g, '').trim(); | var newHtml = html.replace(/Fortsetzung/g, '').trim(); | ||
// falls nach dem Entfernen gar kein Text übrig ist, komplette Header-Box ausblenden: | // falls nach dem Entfernen gar kein Text übrig ist, komplette Header-Box ausblenden: | ||
if (newHtml === '') { | if (newHtml === '') { | ||
$(this).hide(); | $(this).hide(); | ||
} else { | } else { | ||
// ansonsten nur den Text überschreiben, sodass z. B. "B Fortsetzung" → "B" wird | // ansonsten nur den Text überschreiben, sodass z. B. "B Fortsetzung" → "B" wird | ||
$(this).html(newHtml); | $(this).html(newHtml); | ||
} | } | ||
});*/ | });*/ | ||
$(function () { | $(function () { | ||
$('<style>') | $('<style>') | ||
.prop('type', 'text/css') | .prop('type', 'text/css') | ||
.html( | .html( | ||
'.breadcrumb-item { font-size: 17px !important; }' + | '.breadcrumb-item { font-size: 17px !important; }' + | ||
'.breadcrumb-nav { border-bottom: 2px solid #85bc20!important; margin-bottom: 20px !important; }' | '.breadcrumb-nav { border-bottom: 2px solid #85bc20!important; margin-bottom: 20px !important; }' | ||
) | ) | ||
.appendTo('head'); | .appendTo('head'); | ||
}); | }); | ||
}); | }); | ||
}); | }); | ||
// Namespace-Link für Unterseiten-Panel | // Namespace-Link für Unterseiten-Panel | ||
function updateSubpageHeader() { | function updateSubpageHeader() { | ||
// Das Header-Element finden | // Das Header-Element finden | ||
const header = document.getElementById('subpage-tree-pnl-head'); | const header = document.getElementById('subpage-tree-pnl-head'); | ||
if (header) { | if (header) { | ||
// Aktuellen Namespace ermitteln | // Aktuellen Namespace ermitteln | ||
const namespace = mw.config.get('wgCanonicalNamespace'); | const namespace = mw.config.get('wgCanonicalNamespace'); | ||
const namespaceName = namespace || 'Hauptseite'; | const namespaceName = namespace || 'Hauptseite'; | ||
// Link zur Namespace-Hauptseite erstellen | // Link zur Namespace-Hauptseite erstellen | ||
let namespaceLink; | let namespaceLink; | ||
if (namespace) { | if (namespace) { | ||
// Für Namespaces wie "Verein:" zur Hauptseite des Namespace | // Für Namespaces wie "Verein:" zur Hauptseite des Namespace | ||
namespaceLink = `/${namespace}:Hauptseite`; | namespaceLink = `/${namespace}:Hauptseite`; | ||
} else { | } else { | ||
// Für Hauptnamespace zur allgemeinen Hauptseite | // Für Hauptnamespace zur allgemeinen Hauptseite | ||
namespaceLink = '/Hauptseite'; | namespaceLink = '/Hauptseite'; | ||
} | } | ||
// Header mit klickbarem Link ersetzen | // Header mit klickbarem Link ersetzen | ||
header.innerHTML = `<a href="/wiki${namespaceLink}" style="color: inherit; text-decoration: none;">${namespaceName}</a>`; | header.innerHTML = `<a href="/wiki${namespaceLink}" style="color: inherit; text-decoration: none;">${namespaceName}</a>`; | ||
// Hover-Effekt hinzufügen | // Hover-Effekt hinzufügen | ||
const link = header.querySelector('a'); | const link = header.querySelector('a'); | ||
if (link) { | if (link) { | ||
link.addEventListener('mouseenter', function() { | link.addEventListener('mouseenter', function() { | ||
this.style.textDecoration = 'underline'; | this.style.textDecoration = 'underline'; | ||
}); | }); | ||
link.addEventListener('mouseleave', function() { | link.addEventListener('mouseleave', function() { | ||
this.style.textDecoration = 'none'; | this.style.textDecoration = 'none'; | ||
}); | }); | ||
} | } | ||
} | } | ||
} | } | ||
// Nach dem Laden der Seite ausführen | // Nach dem Laden der Seite ausführen | ||
$(document).ready(function() { | $(document).ready(function() { | ||
// Kurze Verzögerung, da der Unterseiten-Baum dynamisch geladen wird | // Kurze Verzögerung, da der Unterseiten-Baum dynamisch geladen wird | ||
setTimeout(updateSubpageHeader, 100); | setTimeout(updateSubpageHeader, 100); | ||
}); | }); | ||
// Auch nach AJAX-Updates ausführen | // Auch nach AJAX-Updates ausführen | ||
$(document).ajaxComplete(function() { | $(document).ajaxComplete(function() { | ||
setTimeout(updateSubpageHeader, 100); | setTimeout(updateSubpageHeader, 100); | ||
}); | }); | ||
// Entferne "Hauptseite/" aus Linktexten | // Entferne "Hauptseite/" aus Linktexten | ||
function cleanPageLinks() { | function cleanPageLinks() { | ||
// Alle Links finden, die "Hauptseite/" im Text haben | // Alle Links finden, die "Hauptseite/" im Text haben | ||
const links = document.querySelectorAll('a[href*="Hauptseite/"]'); | const links = document.querySelectorAll('a[href*="Hauptseite/"]'); | ||
links.forEach(function(link) { | links.forEach(function(link) { | ||
// Nur den sichtbaren Text ändern, nicht den href | // Nur den sichtbaren Text ändern, nicht den href | ||
if (link.textContent.includes('Hauptseite/')) { | if (link.textContent.includes('Hauptseite/')) { | ||
link.textContent = link.textContent.replace('Hauptseite/', ''); | link.textContent = link.textContent.replace('Hauptseite/', ''); | ||
} | } | ||
}); | }); | ||
} | } | ||
// JavaScript nach dem Laden der Seite ausführen | // JavaScript nach dem Laden der Seite ausführen | ||
$(document).ready(function() { | $(document).ready(function() { | ||
cleanPageLinks(); | cleanPageLinks(); | ||
}); | }); | ||
// Auch nach AJAX-Updates ausführen (für dynamische Inhalte) | // Auch nach AJAX-Updates ausführen (für dynamische Inhalte) | ||
$(document).ajaxComplete(function() { | $(document).ajaxComplete(function() { | ||
cleanPageLinks(); | cleanPageLinks(); | ||
}); | }); | ||
$(function(){ | $(function(){ | ||
// In allen Category-Ausgaben: jede LI, die einen <a class="new"> enthält, entfernen | // In allen Category-Ausgaben: jede LI, die einen <a class="new"> enthält, entfernen | ||
$('.smw-columnlist-container a.new').each(function(){ | $('.smw-columnlist-container a.new').each(function(){ | ||
$(this).closest('li').remove(); | $(this).closest('li').remove(); | ||
}); | }); | ||
}); | }); | ||
$(function(){ | $(function(){ | ||
// 1. Rote Links raus (wie gehabt) | // 1. Rote Links raus (wie gehabt) | ||
$('.smw-columnlist-container a.new').each(function(){ | $('.smw-columnlist-container a.new').each(function(){ | ||
$(this).closest('li').remove(); | $(this).closest('li').remove(); | ||
}); | }); | ||
// 2. Jetzt jede Buchstaben-Überschrift entfernen, deren Liste leer ist | // 2. Jetzt jede Buchstaben-Überschrift entfernen, deren Liste leer ist | ||
$('.smw-column-header').each(function(){ | $('.smw-column-header').each(function(){ | ||
var $header = $(this), | var $header = $(this), | ||
$ul = $header.next('ul'); | $ul = $header.next('ul'); | ||
if ($ul.length && $ul.children('li').length === 0) { | if ($ul.length && $ul.children('li').length === 0) { | ||
$ul.remove(); | $ul.remove(); | ||
$header.remove(); | $header.remove(); | ||
} | } | ||
}); | }); | ||
}); | }); | ||
// attachments immer in neuem Tab öffnen | // attachments immer in neuem Tab öffnen | ||
(function () { | (function () { | ||
// Hilfs-Funktion, die alle neuen Attachment-Links anpasst | // Hilfs-Funktion, die alle neuen Attachment-Links anpasst | ||
function updateAttachmentLinks() { | function updateAttachmentLinks() { | ||
// Alle Download-Links in der Datei-Liste | // Alle Download-Links in der Datei-Liste | ||
$('.attachments-filelist a.oojsplus-data-gridWidget-url-button') | $('.attachments-filelist a.oojsplus-data-gridWidget-url-button') | ||
.attr('target','_blank') | .attr('target','_blank') | ||
.attr('rel','noopener noreferrer'); | .attr('rel','noopener noreferrer'); | ||
} | } | ||
// beim Seiten-Load einmal ausführen | // beim Seiten-Load einmal ausführen | ||
$(updateAttachmentLinks); | $(updateAttachmentLinks); | ||
// und mit MutationObserver auf nachträglich geladene Links achten | // und mit MutationObserver auf nachträglich geladene Links achten | ||
var container = document.querySelector('.attachments-filelist'); | var container = document.querySelector('.attachments-filelist'); | ||
if (container) { | if (container) { | ||
new MutationObserver(function (mutations) { | new MutationObserver(function (mutations) { | ||
updateAttachmentLinks(); | updateAttachmentLinks(); | ||
}).observe(container, { childList: true, subtree: true }); | }).observe(container, { childList: true, subtree: true }); | ||
} | } | ||
})(); | })(); | ||
/* Startseiten-Menü: ohne Expander, #subpage-tree-pnl ausblenden, kein Einrücken unten */ | /* Startseiten-Menü: ohne Expander, #subpage-tree-pnl ausblenden, kein Einrücken unten */ | ||
(function (mw, $) { | (function (mw, $) { | ||
'use strict'; | 'use strict'; | ||
function isMainView() { | function isMainView() { | ||
return mw.config.get('wgIsMainPage') && mw.config.get('wgAction') === 'view'; | return mw.config.get('wgIsMainPage') && mw.config.get('wgAction') === 'view'; | ||
} | } | ||
// NEUE Funktion: Prüft ob Benutzer angemeldet ist | |||
function isLoggedIn() { | |||
return !mw.user.isAnon(); | |||
} | |||
function hideSubpageTreePanel($scope) { | function hideSubpageTreePanel($scope) { | ||
if (!isMainView()) return; | |||
// Nur ausführen wenn auf Hauptseite UND angemeldet | |||
if (!isMainView() || !isLoggedIn()) return; | |||
// global (nur auf Startseite, weil Funktion nur hier läuft) | // global (nur auf Startseite, weil Funktion nur hier läuft) | ||
mw.util.addCSS('#subpage-tree-pnl{display:none!important;}'); | mw.util.addCSS('#subpage-tree-pnl{display:none!important;}'); | ||
// sofort im aktuellen/neu geladenen Bereich | // sofort im aktuellen/neu geladenen Bereich | ||
($scope || $(document)).find('#subpage-tree-pnl').hide().attr('aria-hidden', 'true'); | ($scope || $(document)).find('#subpage-tree-pnl').hide().attr('aria-hidden', 'true'); | ||
} | } | ||
function injectHomeMenu($root) { | function injectHomeMenu($root) { | ||
if (!isMainView()) return; | |||
// Nur ausführen wenn auf Hauptseite UND angemeldet | |||
if (!isMainView() || !isLoggedIn()) return; | |||
if (document.getElementById('home-static-menu')) return; // Duplikate vermeiden | if (document.getElementById('home-static-menu')) return; // Duplikate vermeiden | ||
var $container = ($root || $(document)).find('#sb-pri-cnt:visible').last(); | var $container = ($root || $(document)).find('#sb-pri-cnt:visible').last(); | ||
if (!$container.length) return; | if (!$container.length) return; | ||
const menuHtml = ` | const menuHtml = ` | ||
<div id="home-static-menu" class="home-static-menu"> | <div id="home-static-menu" class="home-static-menu"> | ||
<div class="enhanced-sidebar-cnt"> | <div class="enhanced-sidebar-cnt"> | ||
<div id="9a659-pnl" class="card w-100 bg-transp tree-component test"> | <div id="9a659-pnl" class="card w-100 bg-transp tree-component test"> | ||
<div id="9a659-head" class="card-header menu-title">Themen</div> | <div id="9a659-head" class="card-header menu-title">Themen</div> | ||
<ul id="9a659-menu" class="mws-tree root w-100 bg-transp" role="tree" aria-labelledby="9a659-head" tabindex="0"> | <ul id="9a659-menu" class="mws-tree root w-100 bg-transp" role="tree" aria-labelledby="9a659-head" tabindex="0"> | ||
<li id="43568" class="mws-tree-item internal" role="treeitem"> | <li id="43568" class="mws-tree-item internal" role="treeitem"> | ||
<div><a id="43568-label" class="mws-tree-item-label" href="/wiki/Verein:Hauptseite">Verein</a></div> | <div><a id="43568-label" class="mws-tree-item-label" href="/wiki/Verein:Hauptseite">Verein</a></div> | ||
</li> | </li> | ||
<li id="12180" class="mws-tree-item internal" role="treeitem"> | <li id="12180" class="mws-tree-item internal" role="treeitem"> | ||
<div><a id="12180-label" class="mws-tree-item-label" href="/wiki/Arbeitsorganisation:Hauptseite">Arbeitsorganisation</a></div> | <div><a id="12180-label" class="mws-tree-item-label" href="/wiki/Arbeitsorganisation:Hauptseite">Arbeitsorganisation</a></div> | ||
</li> | </li> | ||
<li id="94668" class="mws-tree-item internal" role="treeitem"> | <li id="94668" class="mws-tree-item internal" role="treeitem"> | ||
<div><a id="94668-label" class="mws-tree-item-label" href="/wiki/Angebote:Hauptseite">Angebote</a></div> | <div><a id="94668-label" class="mws-tree-item-label" href="/wiki/Angebote:Hauptseite">Angebote</a></div> | ||
</li> | </li> | ||
<li id="16759" class="mws-tree-item internal" role="treeitem"> | <li id="16759" class="mws-tree-item internal" role="treeitem"> | ||
<div><a id="16759-label" class="mws-tree-item-label" href="/wiki/Gruppenarbeit:Hauptseite">Gruppenarbeit</a></div> | <div><a id="16759-label" class="mws-tree-item-label" href="/wiki/Gruppenarbeit:Hauptseite">Gruppenarbeit</a></div> | ||
</li> | </li> | ||
<li id="20ee3" class="mws-tree-item internal" role="treeitem"> | <li id="20ee3" class="mws-tree-item internal" role="treeitem"> | ||
<div><a id="20ee3-label" class="mws-tree-item-label" href="/wiki/Mitarbeit:Hauptseite">Mitarbeit</a></div> | <div><a id="20ee3-label" class="mws-tree-item-label" href="/wiki/Mitarbeit:Hauptseite">Mitarbeit</a></div> | ||
</li> | </li> | ||
<li id="d5272" class="mws-tree-item internal" role="treeitem"> | <li id="d5272" class="mws-tree-item internal" role="treeitem"> | ||
<div><a id="d5272-label" class="mws-tree-item-label" href="/wiki/Kommunikation:Hauptseite">Kommunikation</a></div> | <div><a id="d5272-label" class="mws-tree-item-label" href="/wiki/Kommunikation:Hauptseite">Kommunikation</a></div> | ||
</li> | </li> | ||
<li id="48945" class="mws-tree-item internal" role="treeitem"> | <li id="48945" class="mws-tree-item internal" role="treeitem"> | ||
<div><a id="48945-label" class="mws-tree-item-label" href="/wiki/QM:Hauptseite">QM</a></div> | <div><a id="48945-label" class="mws-tree-item-label" href="/wiki/QM:Hauptseite">QM</a></div> | ||
</li> | </li> | ||
<li id="27eea" class="mws-tree-item internal" role="treeitem"> | <li id="27eea" class="mws-tree-item internal" role="treeitem"> | ||
<div><a id="27eea-label" class="mws-tree-item-label" href="/wiki/Mitglieder:Hauptseite">Mitglieder</a></div> | <div><a id="27eea-label" class="mws-tree-item-label" href="/wiki/Mitglieder:Hauptseite">Mitglieder</a></div> | ||
</li> | </li> | ||
<li id="3f70b" class="mws-tree-item internal" role="treeitem"> | <li id="3f70b" class="mws-tree-item internal" role="treeitem"> | ||
<div><a id="3f70b-label" class="mws-tree-item-label" href="/wiki/wikiHilfe:Anleitung">wikiHilfe</a></div> | <div><a id="3f70b-label" class="mws-tree-item-label" href="/wiki/wikiHilfe:Anleitung">wikiHilfe</a></div> | ||
</li> | </li> | ||
</ul> | </ul> | ||
</div> | </div> | ||
</div> | </div> | ||
</div>`; | </div>`; | ||
$container.append(menuHtml); | $container.append(menuHtml); | ||
// Safety: Falls andere Skripte Expander nachträglich hinzufügen | // Safety: Falls andere Skripte Expander nachträglich hinzufügen | ||
$('#home-static-menu .mws-tree-expander').remove(); | $('#home-static-menu .mws-tree-expander').remove(); | ||
// Einrückung Top-Level neutralisieren (nur in unserem Menü) | // Einrückung Top-Level neutralisieren (nur in unserem Menü) | ||
mw.util.addCSS(` | mw.util.addCSS(` | ||
#home-static-menu #9a659-menu { padding-left: 0 !important; margin-left: 0 !important; } | #home-static-menu #9a659-menu { padding-left: 0 !important; margin-left: 0 !important; } | ||
#home-static-menu #9a659-menu > li { margin-left: 0 !important; } | #home-static-menu #9a659-menu > li { margin-left: 0 !important; } | ||
#home-static-menu #9a659-menu > li > div { padding-left: 0 !important; margin-left: 0 !important; } | #home-static-menu #9a659-menu > li > div { padding-left: 0 !important; margin-left: 0 !important; } | ||
#home-static-menu #9a659-menu > li .mws-tree-item-label { padding-left: 0 !important; margin-left: 0 !important; } | #home-static-menu #9a659-menu > li .mws-tree-item-label { padding-left: 0 !important; margin-left: 0 !important; } | ||
`); | `); | ||
} | } | ||
// DOM ready | // DOM ready | ||
$(function () { | $(function () { | ||
injectHomeMenu(); | injectHomeMenu(); | ||
hideSubpageTreePanel(); | hideSubpageTreePanel(); | ||
}); | }); | ||
// Dynamisch nachgeladene Inhalte (Discovery, Ajax, Tabs) | // Dynamisch nachgeladene Inhalte (Discovery, Ajax, Tabs) | ||
mw.hook('wikipage.content').add(function ($content) { | mw.hook('wikipage.content').add(function ($content) { | ||
injectHomeMenu($content); | injectHomeMenu($content); | ||
hideSubpageTreePanel($content); | hideSubpageTreePanel($content); | ||
}); | }); | ||
// Fallback, falls #sb-pri-cnt später kommt | // Fallback, falls #sb-pri-cnt später kommt | ||
var tries = 0, max = 10; | var tries = 0, max = 10; | ||
var iv = setInterval(function () { | var iv = setInterval(function () { | ||
if (document.getElementById('sb-pri-cnt') || ++tries >= max) { | if (document.getElementById('sb-pri-cnt') || ++tries >= max) { | ||
clearInterval(iv); | clearInterval(iv); | ||
injectHomeMenu(); | injectHomeMenu(); | ||
hideSubpageTreePanel(); | hideSubpageTreePanel(); | ||
} | } | ||
}, 300); | }, 300); | ||
})(mediaWiki, jQuery); | })(mediaWiki, jQuery); | ||
Version vom 9. Oktober 2025, 10:00 Uhr
mw.loader.using(['jquery'], function () {
$(document).ready(function () {
/*$('.smw-column-header').each(function () {
// aktuellen HTML-Inhalt holen
var html = $(this).html();
// "Fortsetzung" entfernen, Leerzeichen ggf. bereinigen
var newHtml = html.replace(/Fortsetzung/g, '').trim();
// falls nach dem Entfernen gar kein Text übrig ist, komplette Header-Box ausblenden:
if (newHtml === '') {
$(this).hide();
} else {
// ansonsten nur den Text überschreiben, sodass z. B. "B Fortsetzung" → "B" wird
$(this).html(newHtml);
}
});*/
$(function () {
$('<style>')
.prop('type', 'text/css')
.html(
'.breadcrumb-item { font-size: 17px !important; }' +
'.breadcrumb-nav { border-bottom: 2px solid #85bc20!important; margin-bottom: 20px !important; }'
)
.appendTo('head');
});
});
});
// Namespace-Link für Unterseiten-Panel
function updateSubpageHeader() {
// Das Header-Element finden
const header = document.getElementById('subpage-tree-pnl-head');
if (header) {
// Aktuellen Namespace ermitteln
const namespace = mw.config.get('wgCanonicalNamespace');
const namespaceName = namespace || 'Hauptseite';
// Link zur Namespace-Hauptseite erstellen
let namespaceLink;
if (namespace) {
// Für Namespaces wie "Verein:" zur Hauptseite des Namespace
namespaceLink = `/${namespace}:Hauptseite`;
} else {
// Für Hauptnamespace zur allgemeinen Hauptseite
namespaceLink = '/Hauptseite';
}
// Header mit klickbarem Link ersetzen
header.innerHTML = `<a href="/wiki${namespaceLink}" style="color: inherit; text-decoration: none;">${namespaceName}</a>`;
// Hover-Effekt hinzufügen
const link = header.querySelector('a');
if (link) {
link.addEventListener('mouseenter', function() {
this.style.textDecoration = 'underline';
});
link.addEventListener('mouseleave', function() {
this.style.textDecoration = 'none';
});
}
}
}
// Nach dem Laden der Seite ausführen
$(document).ready(function() {
// Kurze Verzögerung, da der Unterseiten-Baum dynamisch geladen wird
setTimeout(updateSubpageHeader, 100);
});
// Auch nach AJAX-Updates ausführen
$(document).ajaxComplete(function() {
setTimeout(updateSubpageHeader, 100);
});
// Entferne "Hauptseite/" aus Linktexten
function cleanPageLinks() {
// Alle Links finden, die "Hauptseite/" im Text haben
const links = document.querySelectorAll('a[href*="Hauptseite/"]');
links.forEach(function(link) {
// Nur den sichtbaren Text ändern, nicht den href
if (link.textContent.includes('Hauptseite/')) {
link.textContent = link.textContent.replace('Hauptseite/', '');
}
});
}
// JavaScript nach dem Laden der Seite ausführen
$(document).ready(function() {
cleanPageLinks();
});
// Auch nach AJAX-Updates ausführen (für dynamische Inhalte)
$(document).ajaxComplete(function() {
cleanPageLinks();
});
$(function(){
// In allen Category-Ausgaben: jede LI, die einen <a class="new"> enthält, entfernen
$('.smw-columnlist-container a.new').each(function(){
$(this).closest('li').remove();
});
});
$(function(){
// 1. Rote Links raus (wie gehabt)
$('.smw-columnlist-container a.new').each(function(){
$(this).closest('li').remove();
});
// 2. Jetzt jede Buchstaben-Überschrift entfernen, deren Liste leer ist
$('.smw-column-header').each(function(){
var $header = $(this),
$ul = $header.next('ul');
if ($ul.length && $ul.children('li').length === 0) {
$ul.remove();
$header.remove();
}
});
});
// attachments immer in neuem Tab öffnen
(function () {
// Hilfs-Funktion, die alle neuen Attachment-Links anpasst
function updateAttachmentLinks() {
// Alle Download-Links in der Datei-Liste
$('.attachments-filelist a.oojsplus-data-gridWidget-url-button')
.attr('target','_blank')
.attr('rel','noopener noreferrer');
}
// beim Seiten-Load einmal ausführen
$(updateAttachmentLinks);
// und mit MutationObserver auf nachträglich geladene Links achten
var container = document.querySelector('.attachments-filelist');
if (container) {
new MutationObserver(function (mutations) {
updateAttachmentLinks();
}).observe(container, { childList: true, subtree: true });
}
})();
/* Startseiten-Menü: ohne Expander, #subpage-tree-pnl ausblenden, kein Einrücken unten */
(function (mw, $) {
'use strict';
function isMainView() {
return mw.config.get('wgIsMainPage') && mw.config.get('wgAction') === 'view';
}
// NEUE Funktion: Prüft ob Benutzer angemeldet ist
function isLoggedIn() {
return !mw.user.isAnon();
}
function hideSubpageTreePanel($scope) {
// Nur ausführen wenn auf Hauptseite UND angemeldet
if (!isMainView() || !isLoggedIn()) return;
// global (nur auf Startseite, weil Funktion nur hier läuft)
mw.util.addCSS('#subpage-tree-pnl{display:none!important;}');
// sofort im aktuellen/neu geladenen Bereich
($scope || $(document)).find('#subpage-tree-pnl').hide().attr('aria-hidden', 'true');
}
function injectHomeMenu($root) {
// Nur ausführen wenn auf Hauptseite UND angemeldet
if (!isMainView() || !isLoggedIn()) return;
if (document.getElementById('home-static-menu')) return; // Duplikate vermeiden
var $container = ($root || $(document)).find('#sb-pri-cnt:visible').last();
if (!$container.length) return;
const menuHtml = `
<div id="home-static-menu" class="home-static-menu">
<div class="enhanced-sidebar-cnt">
<div id="9a659-pnl" class="card w-100 bg-transp tree-component test">
<div id="9a659-head" class="card-header menu-title">Themen</div>
<ul id="9a659-menu" class="mws-tree root w-100 bg-transp" role="tree" aria-labelledby="9a659-head" tabindex="0">
<li id="43568" class="mws-tree-item internal" role="treeitem">
<div><a id="43568-label" class="mws-tree-item-label" href="/wiki/Verein:Hauptseite">Verein</a></div>
</li>
<li id="12180" class="mws-tree-item internal" role="treeitem">
<div><a id="12180-label" class="mws-tree-item-label" href="/wiki/Arbeitsorganisation:Hauptseite">Arbeitsorganisation</a></div>
</li>
<li id="94668" class="mws-tree-item internal" role="treeitem">
<div><a id="94668-label" class="mws-tree-item-label" href="/wiki/Angebote:Hauptseite">Angebote</a></div>
</li>
<li id="16759" class="mws-tree-item internal" role="treeitem">
<div><a id="16759-label" class="mws-tree-item-label" href="/wiki/Gruppenarbeit:Hauptseite">Gruppenarbeit</a></div>
</li>
<li id="20ee3" class="mws-tree-item internal" role="treeitem">
<div><a id="20ee3-label" class="mws-tree-item-label" href="/wiki/Mitarbeit:Hauptseite">Mitarbeit</a></div>
</li>
<li id="d5272" class="mws-tree-item internal" role="treeitem">
<div><a id="d5272-label" class="mws-tree-item-label" href="/wiki/Kommunikation:Hauptseite">Kommunikation</a></div>
</li>
<li id="48945" class="mws-tree-item internal" role="treeitem">
<div><a id="48945-label" class="mws-tree-item-label" href="/wiki/QM:Hauptseite">QM</a></div>
</li>
<li id="27eea" class="mws-tree-item internal" role="treeitem">
<div><a id="27eea-label" class="mws-tree-item-label" href="/wiki/Mitglieder:Hauptseite">Mitglieder</a></div>
</li>
<li id="3f70b" class="mws-tree-item internal" role="treeitem">
<div><a id="3f70b-label" class="mws-tree-item-label" href="/wiki/wikiHilfe:Anleitung">wikiHilfe</a></div>
</li>
</ul>
</div>
</div>
</div>`;
$container.append(menuHtml);
// Safety: Falls andere Skripte Expander nachträglich hinzufügen
$('#home-static-menu .mws-tree-expander').remove();
// Einrückung Top-Level neutralisieren (nur in unserem Menü)
mw.util.addCSS(`
#home-static-menu #9a659-menu { padding-left: 0 !important; margin-left: 0 !important; }
#home-static-menu #9a659-menu > li { margin-left: 0 !important; }
#home-static-menu #9a659-menu > li > div { padding-left: 0 !important; margin-left: 0 !important; }
#home-static-menu #9a659-menu > li .mws-tree-item-label { padding-left: 0 !important; margin-left: 0 !important; }
`);
}
// DOM ready
$(function () {
injectHomeMenu();
hideSubpageTreePanel();
});
// Dynamisch nachgeladene Inhalte (Discovery, Ajax, Tabs)
mw.hook('wikipage.content').add(function ($content) {
injectHomeMenu($content);
hideSubpageTreePanel($content);
});
// Fallback, falls #sb-pri-cnt später kommt
var tries = 0, max = 10;
var iv = setInterval(function () {
if (document.getElementById('sb-pri-cnt') || ++tries >= max) {
clearInterval(iv);
injectHomeMenu();
hideSubpageTreePanel();
}
}, 300);
})(mediaWiki, jQuery);