diff --git a/srv/poe_manager/templates/index.html b/srv/poe_manager/templates/index.html index 2c19ca9..1f839b5 100644 --- a/srv/poe_manager/templates/index.html +++ b/srv/poe_manager/templates/index.html @@ -46,7 +46,7 @@ document.addEventListener("DOMContentLoaded", () => { function updateTimer() { const now = Date.now(); const elapsed = now - lastUpdateTime; - const remainingMs = Math.max(intervalMilliseconds - elapsed, 0); + const remainingMs = intervalMilliseconds - (elapsed % intervalMilliseconds); const remainingSec = Math.ceil(remainingMs / 1000); document.getElementById("dashboard-timer").innerText = `Nächste Prüfung in ${remainingSec} Sekunden`; @@ -56,14 +56,19 @@ document.addEventListener("DOMContentLoaded", () => { fetch("{{ url_for('get_log') }}") .then(response => response.text()) .then(data => { - const lines = data.split("\n").map(l => l.trim()).filter(Boolean); - if (lines.length > 0) { - const lastLine = lines[lines.length - 1]; - const match = lastLine.match(/^(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})/); - if (match) { - lastUpdateTime = parseLogTimestamp(match[1]); + const lines = data.split("\n").filter(line => !line.includes("ist erreichbar!")); + let lastSepIndex = -1; + for (let i = lines.length - 1; i >= 0; i--) { + if (lines[i].startsWith("--------------------------------------------------------------------")) { + lastSepIndex = i; + break; } } + if (lastSepIndex >= 0 && lastSepIndex + 1 < lines.length) { + const firstLine = lines[lastSepIndex + 1]; + const match = firstLine.match(/^(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})/); + if (match) lastUpdateTime = parseLogTimestamp(match[1]); + } }) .catch(err => console.error("Fehler beim Laden der Logs:", err)); }