MediaWiki:Common.js: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| Zeile 1: | Zeile 1: | ||
/* === ULS-Button in Minerva neben der Glocke | /* === ULS-Button in Minerva neben der Glocke (funktioniert klickbar) ======= */ | ||
mw.loader.using(['ext.uls.interface', 'mediawiki.util'], function () { | mw.loader.using(['ext.uls.interface', 'mediawiki.util'], function () { | ||
if (mw.config.get('skin') !== 'minerva') return; | if (mw.config.get('skin') !== 'minerva') return; | ||
// | // vorhandenen Trigger nehmen oder neuen bauen | ||
var $trigger = $('a.uls-trigger, #pt-uls a').first(); | var $trigger = $('a.uls-trigger, #pt-uls a').first(); | ||
if (!$trigger.length) { | if (!$trigger.length) { | ||
$trigger = $('<a>') | $trigger = $('<a>') | ||
.attr(' | .attr({ href: '#', title: mw.msg('uls-plang-title') || 'Sprache', 'aria-label': 'Language' }) | ||
.addClass('uls-trigger') | .addClass('uls-trigger') | ||
.text('🌐'); | |||
.text('🌐'); | |||
} | } | ||
// | // Glocke finden (versch. Minerva-Versionen) | ||
var bell = | var bell = | ||
document.querySelector('.minerva-header [href*="Special:Notifications"]') || | document.querySelector('.minerva-header [href*="Special:Notifications"]') || | ||
document.querySelector('.minerva-header .notifications') || | document.querySelector('.minerva-header .notifications') || | ||
document.querySelector('.minerva-header .icon--notifications') || | document.querySelector('.minerva-header .icon--notifications') || | ||
document.querySelector('.minerva-header .notification'); // | document.querySelector('.minerva-header .notification'); | ||
// Klick abfangen (ULS übernimmt dann das Menü) | |||
$(document).off('click.mw-uls', '.uls-trigger').on('click.mw-uls', '.uls-trigger', function (e) { | |||
e.preventDefault(); | |||
}); | |||
if (bell) { | if (bell) { | ||
// Holder direkt NACH der Glocke einfügen | |||
var holder = document.getElementById('mw-minerva-uls'); | var holder = document.getElementById('mw-minerva-uls'); | ||
if (!holder) { | if (!holder) { | ||
| Zeile 41: | Zeile 37: | ||
bell.insertAdjacentElement('afterend', holder); | bell.insertAdjacentElement('afterend', holder); | ||
// | // evtl. Fallback entfernen | ||
var float = document.getElementById('mw-minerva-uls-float'); | var float = document.getElementById('mw-minerva-uls-float'); | ||
if (float) float.remove(); | if (float) float.remove(); | ||
| Zeile 47: | Zeile 43: | ||
} | } | ||
// | // Fallback: schwebender Button oben rechts, falls Glocke nicht gefunden | ||
if (!document.getElementById('mw-minerva-uls-float')) { | if (!document.getElementById('mw-minerva-uls-float')) { | ||
var float = document.createElement('div'); | var float = document.createElement('div'); | ||
Version vom 8. August 2025, 09:45 Uhr
/* === ULS-Button in Minerva neben der Glocke (funktioniert klickbar) ======= */
mw.loader.using(['ext.uls.interface', 'mediawiki.util'], function () {
if (mw.config.get('skin') !== 'minerva') return;
// vorhandenen Trigger nehmen oder neuen bauen
var $trigger = $('a.uls-trigger, #pt-uls a').first();
if (!$trigger.length) {
$trigger = $('<a>')
.attr({ href: '#', title: mw.msg('uls-plang-title') || 'Sprache', 'aria-label': 'Language' })
.addClass('uls-trigger')
.text('🌐');
}
// Glocke finden (versch. Minerva-Versionen)
var bell =
document.querySelector('.minerva-header [href*="Special:Notifications"]') ||
document.querySelector('.minerva-header .notifications') ||
document.querySelector('.minerva-header .icon--notifications') ||
document.querySelector('.minerva-header .notification');
// Klick abfangen (ULS übernimmt dann das Menü)
$(document).off('click.mw-uls', '.uls-trigger').on('click.mw-uls', '.uls-trigger', function (e) {
e.preventDefault();
});
if (bell) {
// Holder direkt NACH der Glocke einfügen
var holder = document.getElementById('mw-minerva-uls');
if (!holder) {
holder = document.createElement('div');
holder.id = 'mw-minerva-uls';
holder.className = 'minerva-icon mw-minerva-uls';
} else {
holder.innerHTML = '';
}
holder.appendChild($trigger.get(0));
bell.insertAdjacentElement('afterend', holder);
// evtl. Fallback entfernen
var float = document.getElementById('mw-minerva-uls-float');
if (float) float.remove();
return;
}
// Fallback: schwebender Button oben rechts, falls Glocke nicht gefunden
if (!document.getElementById('mw-minerva-uls-float')) {
var float = document.createElement('div');
float.id = 'mw-minerva-uls-float';
float.className = 'mw-minerva-uls-float';
float.appendChild($trigger.get(0));
document.body.appendChild(float);
}
});