diff --git a/CHANGELOG.md b/CHANGELOG.md index cb5d60c..d3c86f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,21 @@ Alle Änderungen und Versionen des CPLv4.0 Frontends chronologisch dokumentiert. --- +## [1.6.407] – 2025-06-16 + +### Feature: Kabelname statt Bezeichnung + +- In `Kue705FO.tsx` wird jetzt **der Kabelname (`kueName`)** unterhalb jedes Moduls angezeigt, statt der bisherigen Kabelbezeichnung (`kueID`) +- Im Einstellungsmodal (`KueEinstellung.tsx`) wurde: + - `kueID` als **readOnly** markiert (nicht mehr beschreibbar) + - Ein neues editierbares Feld für `kueName` hinzugefügt + - Hochkommas `'` werden automatisch entfernt + - Änderungen werden dauerhaft per `&KIA${slot}=${name}` an das CPL-Gerät gesendet +- State & `window.win_kueName` werden synchronisiert, damit Änderungen sofort und dauerhaft angezeigt werden +- Debug-Funktion für `fetch`-Monitoring entfernt + +--- + ## [1.6.403] – 2025-05-13 ### Sicherheit & UI diff --git a/components/main/kabelueberwachung/kue705FO/Kue705FO.tsx b/components/main/kabelueberwachung/kue705FO/Kue705FO.tsx index 138df69..84645a9 100644 --- a/components/main/kabelueberwachung/kue705FO/Kue705FO.tsx +++ b/components/main/kabelueberwachung/kue705FO/Kue705FO.tsx @@ -41,6 +41,7 @@ const Kue705FO: React.FC = ({ ); const dispatch = useDispatch(); + const { kueName } = useSelector((state: RootState) => state.kueDataSlice); const chartRef = useRef(null); @@ -262,7 +263,7 @@ const Kue705FO: React.FC = ({
- {currentModulName || `Modul ${slotIndex + 1}`} + {kueName?.[slotIndex] || `Modul ${slotIndex + 1}`}
diff --git a/components/main/kabelueberwachung/kue705FO/handlers/handleSave.ts b/components/main/kabelueberwachung/kue705FO/handlers/handleSave.ts index 1f45a46..4230a50 100644 --- a/components/main/kabelueberwachung/kue705FO/handlers/handleSave.ts +++ b/components/main/kabelueberwachung/kue705FO/handlers/handleSave.ts @@ -3,6 +3,7 @@ import { setKueData } from "../../../../../redux/slices/kueDataSlice"; export interface OriginalValues { kueID: string[]; + kueName: string[]; isolationsgrenzwerte: number[]; verzoegerung: number[]; untereSchleifenGrenzwerte: number[]; @@ -13,6 +14,7 @@ export interface OriginalValues { export interface HandleSaveParams { ids: string[]; + kueName: string[]; isolationsgrenzwerte: number[]; verzoegerung: number[]; untereSchleifenGrenzwerte: number[]; @@ -21,6 +23,7 @@ export interface HandleSaveParams { speicherintervall: number[]; originalValues: { kueID: string[]; + kueName: string[]; isolationsgrenzwerte: number[]; verzoegerung: number[]; untereSchleifenGrenzwerte: number[]; @@ -46,6 +49,7 @@ const isDifferent = (a: any, b: any): boolean => { const handleSave = async ({ ids, + kueName, isolationsgrenzwerte, verzoegerung, untereSchleifenGrenzwerte, @@ -63,6 +67,11 @@ const handleSave = async ({ if (isDifferent(ids[slot], originalValues.kueID[slot])) { changesForFile.KID = ids[slot]; } + + if (isDifferent(kueName[slot], originalValues.kueName[slot])) { + changesForFile.KIA = kueName[slot]; + } + if ( isDifferent( isolationsgrenzwerte[slot], @@ -111,6 +120,7 @@ const handleSave = async ({ if (isDev) { const keyMap: Record = { KID: "win_kueID", + KIA: "win_kueName", KL_: "win_kueLimit1", KD_: "win_kueDelay1", KR_: "win_kueLimit2Low", @@ -166,6 +176,7 @@ const handleSave = async ({ dispatch( setKueData({ kueID: [...ids], + kueName: [...kueName], isolationsgrenzwerte: [...isolationsgrenzwerte], verzoegerung: [...verzoegerung], untereSchleifenGrenzwerte: [...untereSchleifenGrenzwerte], diff --git a/components/main/kabelueberwachung/kue705FO/modals/KueEinstellung.tsx b/components/main/kabelueberwachung/kue705FO/modals/KueEinstellung.tsx index ffa79d1..500eaae 100644 --- a/components/main/kabelueberwachung/kue705FO/modals/KueEinstellung.tsx +++ b/components/main/kabelueberwachung/kue705FO/modals/KueEinstellung.tsx @@ -1,8 +1,6 @@ -// KueEinstellung.tsx – final überarbeitet: formData wird direkt nach dem Speichern aktualisiert - "use client"; -import { useState } from "react"; +import { useState, useEffect } from "react"; import { useDispatch, useSelector } from "react-redux"; import type { RootState } from "../../../../../redux/store"; import handleSave from "../handlers/handleSave"; @@ -78,8 +76,11 @@ export default function KueEinstellung({ const handleSaveWrapper = async () => { const updatedKueID = [...kueID]; - updatedKueID[slot] = formData.kueID; - + //updatedKueID[slot] = formData.kueID; + /* if (Object.isFrozen(kueID)) { + console.warn("kueID ist readonly!"); + } + */ const updatedKueName = [...kueName]; updatedKueName[slot] = formData.kueName; @@ -116,7 +117,7 @@ export default function KueEinstellung({ // 🔧 handleSave aufrufen mit allen Daten await handleSave({ slot, - ids: updatedKueID, + ids: kueID, kueName: updatedKueName, isolationsgrenzwerte: updatedLimit1, verzoegerung: updatedDelay1, @@ -135,7 +136,7 @@ export default function KueEinstellung({ speicherintervall: memoryInterval, }, dispatch, - onModulNameChange, + onModulNameChange: onModulNameChange ?? (() => {}), onClose, }); }; diff --git a/config/webVersion.ts b/config/webVersion.ts index 61e37e4..b759c70 100644 --- a/config/webVersion.ts +++ b/config/webVersion.ts @@ -6,5 +6,5 @@ 2: Patch oder Hotfix (Bugfixes oder kleine Änderungen). */ -const webVersion = "1.6.406"; +const webVersion = "1.6.407"; export default webVersion; diff --git a/redux/slices/kueDataSlice.ts b/redux/slices/kueDataSlice.ts index 57838c7..407a53e 100644 --- a/redux/slices/kueDataSlice.ts +++ b/redux/slices/kueDataSlice.ts @@ -16,7 +16,7 @@ interface KueDataState { //----------------------- kueOnline: number[]; kueID: string[]; - kueName?: string[]; + kueName: string[]; kuePSTmMinus96V: number[]; kueAlarm1: number[]; kueAlarm2: number[]; diff --git a/utils/loadWindowVariables.ts b/utils/loadWindowVariables.ts index a71ab1a..a6ffb58 100644 --- a/utils/loadWindowVariables.ts +++ b/utils/loadWindowVariables.ts @@ -68,6 +68,7 @@ export async function loadWindowVariables(): Promise<{ ? { kueOnline: win.win_kueOnline || [], kueID: win.win_kueID || [], + kueName: win.win_kueName || [], kuePSTmMinus96V: win.win_kuePSTmMinus96V || [], kueAlarm1: win.win_kueAlarm1 || [], kueAlarm2: win.win_kueAlarm2 || [],