From 8aaa9f7a549cfda039bcb3b7a76f1dce09bfdacf Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" Date: Wed, 4 Mar 2026 12:59:18 +0000 Subject: [PATCH] templates/index.html aktualisiert --- templates/index.html | 63 +++++++++++++++++++++++++++++++++++--------- 1 file changed, 50 insertions(+), 13 deletions(-) diff --git a/templates/index.html b/templates/index.html index 0138f6f..0421d95 100644 --- a/templates/index.html +++ b/templates/index.html @@ -61,20 +61,25 @@

📍 Nodes

{% for node in nodes %} -
-
-
{{ node.name }}
-
- -
+
+
+
{{ node.name }}
+
+ +
+
+
+ {{ node.ip }} + +
+
+ + {{ node.status }} +
+
-
{{ node.ip }}
-
- - {{ node.status }} -
- -
{% endfor %}
@@ -221,6 +226,38 @@ alert("Alle Felder müssen ausgefüllt werden."); } }; + + window.refreshNodeStatus = async function(nodeId) { + const badge = document.getElementById(`badge-${nodeId}`); + const led = document.getElementById(`led-${nodeId}`); + + // Visuelles Feedback: Badge ausgrauen während der Suche + badge.innerText = "Prüfe..."; + badge.classList.add("animate-pulse"); + + try { + const response = await fetch(`/refresh_status/${nodeId}`); + const data = await response.json(); + + // UI aktualisieren + badge.innerText = data.status; + badge.classList.remove("animate-pulse"); + + if (data.status === "Docker Aktiv") { + led.className = "h-2 w-2 rounded-full bg-blue-500 shadow-[0_0_8px_#3b82f6]"; + badge.classList.add("text-blue-400"); + } else if (data.status === "Offline/Fehler") { + led.className = "h-2 w-2 rounded-full bg-red-600"; + badge.classList.add("text-red-400"); + } else { + led.className = "h-2 w-2 rounded-full bg-yellow-500"; + badge.classList.remove("text-blue-400"); + } + } catch (err) { + console.error("Fehler beim Refresh:", err); + badge.innerText = "Fehler"; + } + }; });