From 6b6b6cc9b84fdcd7211500a812f0be90c5a2537e Mon Sep 17 00:00:00 2001 From: ISA Date: Mon, 31 Mar 2025 10:05:36 +0200 Subject: [PATCH] feat: Referenzkurve-Button sendet API-Aufruf an Backend (KTR) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - handleSetReference um fetch-Aufruf ergänzt - Unterscheidung von Entwicklungs- und Produktionsumgebung via NEXT_PUBLIC_API_BASE_URL - Fehlerbehandlung und Alert bei Erfolg/Misserfolg eingebaut --- .../kue705FO/Charts/TDRChart/TDRChart.tsx | 4 +- .../Charts/TDRChart/TDRChartActionBar.tsx | 41 +++++++++++++++---- draw.io/test.drawio | 27 ++++++++++++ services/fetchTDRReferenceCurve.ts | 2 +- 4 files changed, 62 insertions(+), 12 deletions(-) diff --git a/components/main/kabelueberwachung/kue705FO/Charts/TDRChart/TDRChart.tsx b/components/main/kabelueberwachung/kue705FO/Charts/TDRChart/TDRChart.tsx index b3933e7..8d59d7a 100644 --- a/components/main/kabelueberwachung/kue705FO/Charts/TDRChart/TDRChart.tsx +++ b/components/main/kabelueberwachung/kue705FO/Charts/TDRChart/TDRChart.tsx @@ -121,13 +121,13 @@ const TDRChart: React.FC<{ isFullScreen: boolean }> = ({ isFullScreen }) => { pointRadius: 10, pointStyle: "triangle", // Hier den korrekten Stil setzen showLine: false, - clip: true, // Wenn du die Fehlerstelle sichtbar sehen möchtest + clip: false, // Wenn du die Fehlerstelle sichtbar sehen möchtest parsing: { xAxisKey: "d", yAxisKey: "p", }, order: 9999, - z: 10, // Hier die Reihenfolge der Marker bestimmen + // Hier die Reihenfolge der Marker bestimmen }, ], }, diff --git a/components/main/kabelueberwachung/kue705FO/Charts/TDRChart/TDRChartActionBar.tsx b/components/main/kabelueberwachung/kue705FO/Charts/TDRChart/TDRChartActionBar.tsx index 6f00451..64ba7db 100644 --- a/components/main/kabelueberwachung/kue705FO/Charts/TDRChart/TDRChartActionBar.tsx +++ b/components/main/kabelueberwachung/kue705FO/Charts/TDRChart/TDRChartActionBar.tsx @@ -37,18 +37,41 @@ const TDRChartActionBar: React.FC = () => { }; // 📌 Referenz setzen (nutzt Slotnummer + 1 für die API) - const handleSetReference = () => { - if (selectedSlot === null || !currentChartData?.length) return; + const handleSetReference = async () => { + if ( + selectedSlot === null || + selectedId === null || + !currentChartData?.length + ) + return; - localStorage.setItem( - `ref-curve-slot${selectedSlot}`, - JSON.stringify(currentChartData) - ); + try { + const slotNumber = selectedSlot + 1; // Slot ist 0-basiert, API will 1-basiert + const url = `/CPL?KTR${slotNumber}=${selectedId}`; - // 🔄 Redux updaten → Chart reagiert sofort! - dispatch(fetchReferenceCurveBySlotThunk(selectedSlot)); + const response = await fetch(url, { + method: "GET", + }); - alert("Referenzkurve gesetzt!"); + if (!response.ok) { + throw new Error( + `Fehler beim Setzen der Referenz: ${response.statusText}` + ); + } + + // Optional: lokale Speicherung und Redux-Update + localStorage.setItem( + `ref-curve-slot${selectedSlot}`, + JSON.stringify(currentChartData) + ); + + dispatch(fetchReferenceCurveBySlotThunk(selectedSlot)); + + alert("Referenzkurve wurde erfolgreich gesetzt!"); + } catch (error) { + console.error("Fehler beim Setzen der Referenzkurve:", error); + alert("Fehler beim Setzen der Referenzkurve."); + } }; // 📥 Beim Slot-Wechsel TDM-Liste + letzte ID laden diff --git a/draw.io/test.drawio b/draw.io/test.drawio index e69de29..16dad4c 100644 --- a/draw.io/test.drawio +++ b/draw.io/test.drawio @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/services/fetchTDRReferenceCurve.ts b/services/fetchTDRReferenceCurve.ts index d7cf096..1a8e921 100644 --- a/services/fetchTDRReferenceCurve.ts +++ b/services/fetchTDRReferenceCurve.ts @@ -14,7 +14,7 @@ export const fetchTDRReferenceCurve = async ( const isDev = process.env.NEXT_PUBLIC_NODE_ENV === "development"; const url = isDev ? `/CPLmockData/tdr-reference-curves/slot${slot}.json` - : `${window.location.origin}/CPL?Service/empty.acp&TDRR=${slot}`; + : `${window.location.origin}/CPL?Service/empty.acp&TDR=${slot}`; try { const res = await fetch(url);