Fix: alle funktionalen Inline-Event-Handler → addEventListener/Delegation (von CSP-Härtung 65cfa25 app-weit blockiert)
Chat (senden/öffnen/löschen/Foto), Tagebuch-Buch, KI-Berichte, Wiki-Moderation, Events-Detail, Walks-Lightbox, Routen-Foto, Navigations-CTAs (data-page), Presse-Copy + Züchter-Landing (externes JS). 35x UI.modal.close → data-modal-close, 28x totes event.stopPropagation entfernt. Verbleibend: kosmetische onerror/Hover. SW v1164
This commit is contained in:
parent
152fde716c
commit
2ddd8ac350
34 changed files with 228 additions and 173 deletions
|
|
@ -80,6 +80,19 @@ window.Page_wiki = (() => {
|
|||
async function init(container, appState) {
|
||||
_container = container;
|
||||
_appState = appState;
|
||||
|
||||
// Delegierter Click-Handler — Inline-onclick wird von der CSP blockiert.
|
||||
if (!_container._wikiClickBound) {
|
||||
_container.addEventListener('click', e => {
|
||||
const btn = e.target.closest('[data-wiki-action]');
|
||||
if (!btn) return;
|
||||
const id = parseInt(btn.dataset.wikiId, 10);
|
||||
if (btn.dataset.wikiAction === 'approve') _approveSubmission(id);
|
||||
else if (btn.dataset.wikiAction === 'reject') _rejectSubmission(id);
|
||||
});
|
||||
_container._wikiClickBound = true;
|
||||
}
|
||||
|
||||
await _render();
|
||||
}
|
||||
|
||||
|
|
@ -180,11 +193,11 @@ window.Page_wiki = (() => {
|
|||
</div>
|
||||
<div style="display:flex;gap:var(--space-2);margin-top:var(--space-3)">
|
||||
<button class="btn btn-primary btn-sm flex-1"
|
||||
onclick="Page_wiki._approveSubmission(${s.id})">
|
||||
data-wiki-action="approve" data-wiki-id="${s.id}">
|
||||
${UI.icon('check')} Freischalten
|
||||
</button>
|
||||
<button class="btn btn-ghost btn-sm flex-1"
|
||||
onclick="Page_wiki._rejectSubmission(${s.id})">
|
||||
data-wiki-action="reject" data-wiki-id="${s.id}">
|
||||
${UI.icon('x')} Ablehnen
|
||||
</button>
|
||||
</div>
|
||||
|
|
@ -1400,7 +1413,7 @@ window.Page_wiki = (() => {
|
|||
</p>
|
||||
${data.hinweis ? `<p style="font-size:var(--text-sm);color:var(--c-text-muted);margin-top:var(--space-3)">${UI.escape(data.hinweis)}</p>` : ''}
|
||||
</div>`,
|
||||
footer: `<button class="btn btn-secondary" onclick="UI.modal.close()">Schließen</button>`,
|
||||
footer: `<button class="btn btn-secondary" data-modal-close>Schließen</button>`,
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue