diff --git a/wwwroot/js/pages/cronjob-page.js b/wwwroot/js/pages/cronjob-page.js index 117c1e1..3191005 100644 --- a/wwwroot/js/pages/cronjob-page.js +++ b/wwwroot/js/pages/cronjob-page.js @@ -170,7 +170,7 @@ function openSessionPickerModal(sessions, agentMap, currentId, onSelect, options // Header const header = document.createElement('div'); header.className = 'agent-picker-header'; - header.innerHTML = `${escapeHtml(title)}`; + header.innerHTML = `${esc(title)}`; modal.appendChild(header); // Body @@ -181,10 +181,10 @@ function openSessionPickerModal(sessions, agentMap, currentId, onSelect, options const noneCard = document.createElement('div'); noneCard.className = 'card agent-picker-item' + (!currentId ? ' selected' : ''); noneCard.innerHTML = ` -
+
- ${escapeHtml(noneLabel)} + ${esc(noneLabel)}
`; @@ -315,23 +315,19 @@ function showCronjobStatus(box, job) { const statusIcon = job.lastRunStatus === 'success' ? '✅' : '❌'; parts.push(`${statusIcon} Letzte Ausführung: ${last.toLocaleString('de-AT')}`); if (job.lastRunStatus === 'error' && job.lastRunError) { - parts.push(` ${escapeHtml(job.lastRunError)}`); + parts.push(` ${esc(job.lastRunError)}`); } } if (job.sessionName) { - parts.push(` Session: ${escapeHtml(job.sessionName)}`); + parts.push(` Session: ${esc(job.sessionName)}`); } if (job.notifySessionName) { - parts.push(` Benachrichtigung → ${escapeHtml(job.notifySessionName)}`); + parts.push(` Benachrichtigung → ${esc(job.notifySessionName)}`); } box.innerHTML = parts.join(''); } -function escapeHtml(s) { - const d = document.createElement('div'); - d.textContent = s || ''; - return d.innerHTML; -} + diff --git a/wwwroot/js/pages/dashboard.js b/wwwroot/js/pages/dashboard.js index 3acee1c..f39310c 100644 --- a/wwwroot/js/pages/dashboard.js +++ b/wwwroot/js/pages/dashboard.js @@ -386,12 +386,6 @@ function closeAllCardMenus() { document.querySelectorAll('.card-menu-dropdown').forEach(d => d.hidden = true); } -function esc(s) { - const d = document.createElement('div'); - d.textContent = s; - return d.innerHTML; -} - function formatDate(iso) { if (!iso) return ''; return new Date(iso).toLocaleString('de-AT', { diff --git a/wwwroot/js/pages/session-page.js b/wwwroot/js/pages/session-page.js index a16c329..da70e16 100644 --- a/wwwroot/js/pages/session-page.js +++ b/wwwroot/js/pages/session-page.js @@ -362,9 +362,9 @@ async function refreshTelegramStatus(sessionId, statusBox, registerBtn, deleteBt var html = ''; if (active) { html += '

✅ Webhook aktiv

'; - html += '

URL: ' + escapeHtml(url) + '

'; + html += '

URL: ' + esc(url) + '

'; html += '

Ausstehend: ' + pending + '

'; - if (lastError) html += '

Letzter Fehler: ' + escapeHtml(lastError) + '

'; + if (lastError) html += '

Letzter Fehler: ' + esc(lastError) + '

'; } else { html += '

⚠️ Webhook nicht registriert

'; } @@ -375,7 +375,7 @@ async function refreshTelegramStatus(sessionId, statusBox, registerBtn, deleteBt registerBtn.hidden = active; deleteBtn.hidden = !active; } catch(e) { - statusBox.innerHTML = '

Status konnte nicht abgerufen werden: ' + escapeHtml(e.message) + '

'; + statusBox.innerHTML = '

Status konnte nicht abgerufen werden: ' + esc(e.message) + '

'; statusBox.hidden = false; registerBtn.hidden = false; deleteBtn.hidden = true; @@ -390,10 +390,4 @@ async function saveTelegramConfig(sessionId, tokenInput, secretInput) { await apiSessionTelegramSave(sessionId, token, secret, allowed); } -function escapeHtml(str) { - return String(str) - .replace(/&/g, '&') - .replace(//g, '>') - .replace(/"/g, '"'); -} +