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"; + } + }; });