MediaWiki:Gadget-LabelScan.js: Unterschied zwischen den Versionen

Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
/* LabelScan Gadget – Syntax-/Lade-Test */
/* LabelScan Gadget – HARD BIND TEST (delegated click + hooks + observer) */
(function () {
(function () {
   'use strict';
   'use strict';
  function log(msg){ console.log('[LabelScan TEST]', msg); }


   document.addEventListener('DOMContentLoaded', function () {
  // 1) Sofort melden, dass das Gadget wirklich ausgeführt wurde
     log('✅ Gadget geladen.');
  console.log('[LabelScan TEST] Modul ausgeführt (IIFE gestartet)');
     var btn = document.getElementById('ados-scan-run');
 
     if (!btn) { log('UI nicht gefunden (ok, wenn du nicht auf der LabelScan-Seite bist)'); return; }
  // 2) Delegiertes Click-Event: reagiert auch, wenn der Button später ins DOM kommt
    btn.addEventListener('click', function (ev) {
   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 funktioniert (Syntax OK).');
      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);
})();
})();