srv/poe_manager/templates/index.html aktualisiert
This commit is contained in:
@@ -34,7 +34,7 @@
|
|||||||
document.addEventListener("DOMContentLoaded", () => {
|
document.addEventListener("DOMContentLoaded", () => {
|
||||||
const intervalMinutes = {{ interval | int }};
|
const intervalMinutes = {{ interval | int }};
|
||||||
const intervalMilliseconds = intervalMinutes * 60 * 1000;
|
const intervalMilliseconds = intervalMinutes * 60 * 1000;
|
||||||
let lastUpdateTime = Date.now(); // Startpunkt beim Laden der Seite
|
let lastUpdateTime = Date.now(); // Standard: jetzt
|
||||||
let reloadCountdown = null;
|
let reloadCountdown = null;
|
||||||
let reloadTriggered = false;
|
let reloadTriggered = false;
|
||||||
|
|
||||||
@@ -47,12 +47,14 @@ document.addEventListener("DOMContentLoaded", () => {
|
|||||||
// Haupt-Timer läuft
|
// Haupt-Timer läuft
|
||||||
const remainingSec = Math.ceil((intervalMilliseconds - elapsed) / 1000);
|
const remainingSec = Math.ceil((intervalMilliseconds - elapsed) / 1000);
|
||||||
timerElem.innerText = `Nächste Prüfung in ${remainingSec} Sekunden`;
|
timerElem.innerText = `Nächste Prüfung in ${remainingSec} Sekunden`;
|
||||||
|
timerElem.classList.remove("reload");
|
||||||
} else {
|
} else {
|
||||||
// Haupt-Timer abgelaufen → Reload-Timer starten
|
// Haupt-Timer abgelaufen → Reload-Timer starten
|
||||||
if (reloadCountdown === null) reloadCountdown = 10; // 10 Sekunden Countdown
|
if (reloadCountdown === null) reloadCountdown = 10;
|
||||||
|
|
||||||
if (!reloadTriggered) {
|
if (!reloadTriggered) {
|
||||||
timerElem.innerText = `Aktualisieren der Seite in ${reloadCountdown} Sekunden`;
|
timerElem.innerText = `Aktualisieren der Seite in ${reloadCountdown} Sekunden`;
|
||||||
|
timerElem.classList.add("reload");
|
||||||
reloadCountdown--;
|
reloadCountdown--;
|
||||||
|
|
||||||
if (reloadCountdown < 0) {
|
if (reloadCountdown < 0) {
|
||||||
@@ -63,7 +65,6 @@ document.addEventListener("DOMContentLoaded", () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Initiale Synchronisierung mit letzter Log-Zeit optional
|
|
||||||
function fetchLastLog() {
|
function fetchLastLog() {
|
||||||
fetch("{{ url_for('get_log') }}")
|
fetch("{{ url_for('get_log') }}")
|
||||||
.then(response => response.text())
|
.then(response => response.text())
|
||||||
@@ -81,9 +82,12 @@ document.addEventListener("DOMContentLoaded", () => {
|
|||||||
const match = firstLine.match(/^(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})/);
|
const match = firstLine.match(/^(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})/);
|
||||||
if (match) {
|
if (match) {
|
||||||
const logTime = new Date(match[1]).getTime();
|
const logTime = new Date(match[1]).getTime();
|
||||||
// Nur Offset setzen, damit Haupt-Timer beim Laden nicht sofort abläuft
|
// Wenn Log älter als Intervall → Timer jetzt starten
|
||||||
const offset = Math.min(Date.now() - logTime, intervalMilliseconds);
|
if (Date.now() - logTime < intervalMilliseconds) {
|
||||||
lastUpdateTime = Date.now() - offset;
|
lastUpdateTime = logTime;
|
||||||
|
} else {
|
||||||
|
lastUpdateTime = Date.now();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user