MediaWiki:Gadget-LabelScan.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
/* LabelScan Gadget – HARD BIND TEST (delegated click + hooks + observer) */
(function () {
'use strict';
// 1) Sofort melden, dass das Gadget wirklich ausgeführt wurde
console.log('[LabelScan TEST] Modul ausgeführt (IIFE gestartet)');
// 2) Delegiertes Click-Event: reagiert auch, wenn der Button später ins DOM kommt
document.addEventListener('click', function (ev) {
var el = ev.target;
// trifft auf #ados-scan-run oder ein Kindelement davon
if (el && (el.id === 'ados-scan-run' || (el.closest && el.closest('#ados-scan-run')))) {
ev.preventDefault();
console.log('[LabelScan TEST] Click auf #ados-scan-run erkannt');
alert('✅ Gadget hängt am Button. (Binding OK)');
}
}, true);
// 3) Zusätzlich über MediaWiki-Hooks jedes Mal melden, wenn Seitenteil gerendert wurde
if (window.mw && mw.hook) {
mw.hook('wikipage.content').add(function ($content) {
console.log('[LabelScan TEST] wikipage.content hook', $content && $content.length);
// Optional: einmal visuell markieren, dass der Button da ist
var btn = document.getElementById('ados-scan-run');
if (btn && !btn.dataset._lscanMark) {
btn.dataset._lscanMark = '1';
btn.style.outline = '2px dashed #22c55e';
btn.style.outlineOffset = '2px';
}
});
}
// 4) Fallback: Wenn der Button gar nicht existiert, füge oben rechts einen Test-Button ein
// (nur, um zu beweisen, dass das Gadget läuft)
setTimeout(function () {
if (!document.getElementById('ados-scan-run')) {
var test = document.createElement('button');
test.textContent = 'LabelScan Test';
test.style.cssText = 'position:fixed;top:10px;right:10px;z-index:99999;padding:.5rem .8rem;border-radius:8px;border:1px solid #ccc;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.15);';
test.addEventListener('click', function () {
alert('✅ Gadget läuft. (Seiten-UI-Button #ados-scan-run ist auf dieser Seite aber nicht vorhanden)');
});
document.body.appendChild(test);
console.log('[LabelScan TEST] Fallback-Testbutton eingefügt (weil #ados-scan-run nicht gefunden wurde)');
}
}, 500);
})();