MediaWiki:Gadget-LabelScan.js
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
/* global mw */
(function(){
'use strict';
try {
console.log('[LabelScan] Gadget FILE EXECUTED');
var BOUND = false;
function bindOnce(ctx){
if (BOUND) return;
var root = ctx || document;
var runBtn = root.querySelector('#ados-scan-run');
var fileIn = root.querySelector('#ados-scan-file');
console.log('[LabelScan] find UI → runBtn:', !!runBtn, 'fileIn:', !!fileIn);
if (!runBtn || !fileIn) return;
if (runBtn.dataset.bound === '1') return;
runBtn.dataset.bound = '1';
BOUND = true;
runBtn.addEventListener('click', function(ev){
ev.preventDefault();
alert('Klick funktioniert ✅ (Minimal-Diagnose)');
console.log('[LabelScan] CLICK HANDLER FIRED');
});
var bigBtn = root.querySelector('#ados-scan-bigbtn');
if (bigBtn && fileIn) {
bigBtn.addEventListener('click', function(){ fileIn.click(); });
}
// Klicks sicher durchlassen
runBtn.style.position = 'relative';
runBtn.style.zIndex = '9999';
runBtn.style.pointerEvents = 'auto';
var wrap = root.querySelector('#ados-labelscan');
if (wrap) wrap.style.position = 'relative';
console.log('[LabelScan] BOUND ✔');
}
// sofort & später binden
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', function(){ bindOnce(document); });
} else {
bindOnce(document);
}
setTimeout(function(){ bindOnce(document); }, 200);
setTimeout(function(){ bindOnce(document); }, 800);
var mo = new MutationObserver(function(){
if (BOUND) { mo.disconnect(); return; }
bindOnce(document);
});
mo.observe(document.documentElement || document.body, { childList:true, subtree:true });
console.log('[LabelScan] Gadget READY (observer active)');
} catch (e) {
console.error('[LabelScan] FATAL:', e);
}
})();