MediaWiki:Gadget-LabelScan.js: Unterschied zwischen den Versionen
Admin (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Admin (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
| Zeile 1: | Zeile 1: | ||
/* LabelScan Gadget – | /* LabelScan Gadget – HARD BIND TEST (delegated click + hooks + observer) */ | ||
(function () { | (function () { | ||
'use strict'; | 'use strict'; | ||
document.addEventListener(' | // 1) Sofort melden, dass das Gadget wirklich ausgeführt wurde | ||
console.log('[LabelScan TEST] Modul ausgeführt (IIFE gestartet)'); | |||
if ( | // 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(); | ev.preventDefault(); | ||
alert('✅ Gadget | 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); | |||
})(); | })(); | ||