diff --git a/.env.local b/.env.local index fa38c4b..6221d42 100644 --- a/.env.local +++ b/.env.local @@ -1,4 +1,4 @@ #Next.js Webserver -#NEXT_PUBLIC_API_BASE_URL=http://localhost:3000 +NEXT_PUBLIC_API_BASE_URL=http://localhost:3000 #CPL Webserver -NEXT_PUBLIC_API_BASE_URL=https://10.10.0.118:443 +#NEXT_PUBLIC_API_BASE_URL=https://10.10.0.118:443 diff --git a/app/dashboard/page.jsx b/app/dashboard/page.jsx index dcbdb5e..7634d03 100644 --- a/app/dashboard/page.jsx +++ b/app/dashboard/page.jsx @@ -21,6 +21,7 @@ function Dashboard() { const [gateway, setGateway] = useState(""); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); + const [kueCableBreak, setKueCableBreak] = useState([]); useEffect(() => { loadWindowVariables(apiUrl) @@ -43,6 +44,33 @@ function Dashboard() { setLoading(false); }); }, [apiUrl]); + useEffect(() => { + loadWindowVariables(apiUrl) + .then(() => { + if (window.kueCableBreak && Array.isArray(window.kueCableBreak)) { + // Prüfe, ob window.kueCableBreak ein Array ist + const cableBreakArray = window.kueCableBreak.map(Number); + setKueCableBreak(cableBreakArray); // Array für kueCableBreak + } else if (typeof window.kueCableBreak === "string") { + // Falls es ein String ist, splitte den String und mappe ihn in ein Array + const cableBreakArray = window.kueCableBreak.split(",").map(Number); + setKueCableBreak(cableBreakArray); + } else { + console.error( + "Konnte kueCableBreak nicht finden oder es ist kein gültiges Array/String." + ); + setError( + "Konnte kueCableBreak nicht finden oder es ist kein gültiges Array/String." + ); + } + setLoading(false); + }) + .catch((error) => { + console.error("Fehler beim Laden des Skripts:", error); + setError(error); + setLoading(false); + }); + }, [apiUrl]); const parseMessages = (messages) => { messages = messages @@ -93,38 +121,30 @@ function Dashboard() { const renderBaugruppentraeger = () => { const baugruppen = []; - // Dynamisch berechnen, wie viele Baugruppenträger benötigt werden, basierend auf der Länge von kueOnline + // Adjust based on actual length of kueOnline const numBaugruppen = Math.ceil(kueOnline.length / 8); for (let i = 0; i < numBaugruppen; i++) { const slots = kueOnline.slice(i * 8, (i + 1) * 8); - // Prüfen, ob der Baugruppenträger überhaupt Zahlen oder "0" enthält - const containsNumbersOrZero = slots.some( - (version) => version !== "" && version !== null && version !== undefined - ); + baugruppen.push( +
+
+ {slots.map((version, index) => { + const slotNumber = i * 8 + index + 1; - if (containsNumbersOrZero) { - baugruppen.push( -
-
- {slots.map((version, index) => { - const slotNumber = i * 8 + index + 1; - return version !== 0 ? ( - - ) : ( -
- Leer -
- ); - })} -
+ return ( + + ); + })}
- ); - } +
+ ); } return baugruppen; @@ -237,7 +257,7 @@ function Dashboard() { {loading ? (

Lädt...

) : error ? ( -

{error}

+

{error.toString()}

) : ( renderBaugruppentraeger() )} diff --git a/components/modulesStatus/Kue705_FO.jsx b/components/modulesStatus/Kue705_FO.jsx index 5781b2e..3270196 100644 --- a/components/modulesStatus/Kue705_FO.jsx +++ b/components/modulesStatus/Kue705_FO.jsx @@ -1,19 +1,31 @@ // components/Kue705_FO.jsx import React from "react"; -const Kue705_FO = ({ slot }) => { +const Kue705_FO = ({ slot, kueCableBreak, isOnline }) => { + if (!isOnline) { + return ( +
+
Leer
+
+ ); + } + + const isCableBreak = kueCableBreak[slot - 1] === 1; + return (
{/* Erstes Kind, nimmt den restlichen Platz ein */}
-
- {slot} -
+
{slot}
KÜ705
FO
{/* Die unteren Abschnitte behalten ihre festen Höhen */} -
+
);