Headless Core & JS Blur & MultiThreading Addet

This commit is contained in:
Joey Pillunat 2025-10-24 16:02:19 +02:00
parent a41f765211
commit 5b99621044
4 changed files with 235 additions and 68 deletions

View file

@ -38,29 +38,33 @@ document.addEventListener('DOMContentLoaded', () => {
const status = document.getElementById('status');
const consoleEl = document.getElementById('console');
// SSE: Logs anhören
const es = new EventSource('/api/logs');
es.onmessage = (ev) => {
consoleEl.textContent += ev.data + '\n';
consoleEl.scrollTop = consoleEl.scrollHeight;
};
es.onerror = () => {
// optional: Reconnect-Info
};
btn.addEventListener('click', async () => {
const val = (ip.value || '').trim();
if (!val) { status.textContent = 'Bitte IP eingeben.'; return; }
status.textContent = `Starte`;
status.textContent = 'Starte';
try {
// 1) Job starten → job_id erhalten
const res = await fetch('/api/start', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ ip: val })
});
const text = await res.text();
status.textContent = text || 'OK';
const data = await res.json();
const jobId = data.job_id;
status.textContent = `Job: ${jobId}`;
consoleEl.textContent = '';
// 2) individuellen Log-Stream für diesen Job öffnen
const es = new EventSource(`/api/logs?job=${encodeURIComponent(jobId)}`);
es.onmessage = (ev) => {
consoleEl.textContent += ev.data + '\n';
consoleEl.scrollTop = consoleEl.scrollHeight;
};
es.onerror = () => {
// Stream beendet/Fehler optional kennzeichnen
};
} catch (err) {
status.textContent = 'Fehler: ' + (err?.message || err);
}