diff --git a/components/modales/KueModal.jsx b/components/modales/kueModal/KueModal.jsx similarity index 68% rename from components/modales/KueModal.jsx rename to components/modales/kueModal/KueModal.jsx index d26f3b2..eb62e47 100644 --- a/components/modales/KueModal.jsx +++ b/components/modales/kueModal/KueModal.jsx @@ -2,8 +2,10 @@ import ReactModal from "react-modal"; import { useState, useEffect } from "react"; import { useSelector, useDispatch } from "react-redux"; -import { updateValues } from "../../store/variablesSlice"; import "bootstrap-icons/font/bootstrap-icons.css"; // Import Bootstrap Icons +import handleChange from "./handlers/handleChange"; +import handleDisplayEinschalten from "./handlers/handleDisplayEinschalten"; +import handleSave from "./handlers/handleSave"; function KueModal({ showModal, onClose, slot, onModulNameChange }) { const dispatch = useDispatch(); @@ -60,105 +62,6 @@ function KueModal({ showModal, onClose, slot, onModulNameChange }) { } }, [showModal]); // nur von showModal abhängig ansonsten wird alle 10 Sekunden die Werte zurückgesetzt in Modal - // Funktionen zur Änderung der Werte - const handleChange = (setter, e, slot) => { - const value = e.target.value; - setter((prev) => { - const updated = [...prev]; - updated[slot] = value; - return updated; - }); - }; - - const handleSave = () => { - const changes = {}; - - // Überprüfen, ob Änderungen gegenüber den Originalwerten vorliegen - if (ids[slot] !== originalValues.ids[slot]) { - changes.KID = ids[slot]; - } - if (bezeichnungen[slot] !== originalValues.bezeichnungen[slot]) { - changes.KIA = bezeichnungen[slot]; - } - if ( - isolationsgrenzwerte[slot] !== originalValues.isolationsgrenzwerte[slot] - ) { - changes.KL_ = isolationsgrenzwerte[slot]; - } - if (verzoegerung[slot] !== originalValues.verzoegerung[slot]) { - changes.KD_ = verzoegerung[slot]; - } - if ( - untereSchleifenGrenzwerte[slot] !== - originalValues.untereSchleifenGrenzwerte[slot] - ) { - changes.KR_ = untereSchleifenGrenzwerte[slot]; - } - if ( - obereSchleifenGrenzwerte[slot] !== - originalValues.obereSchleifenGrenzwerte[slot] - ) { - changes.KRO_ = obereSchleifenGrenzwerte[slot]; - } - if (schleifenintervall[slot] !== originalValues.schleifenintervall[slot]) { - changes.KRI = schleifenintervall[slot]; - } - - if (Object.keys(changes).length > 0) { - let url = `/cpl?/kabelueberwachung.html&slot=${slot}`; - Object.keys(changes).forEach((paramKey) => { - url += `&${paramKey}${slot}=${encodeURIComponent(changes[paramKey])}`; - }); - - fetch(url, { method: "GET" }) - .then((response) => { - if (response.ok) { - alert("Daten erfolgreich gespeichert!"); - onModulNameChange(ids[slot]); - - // Aktualisiere Redux-Store mit neuen Werten - dispatch( - updateValues({ - ids: [...ids], - bezeichnungen: [...bezeichnungen], - isolationsgrenzwerte: [...isolationsgrenzwerte], - verzoegerung: [...verzoegerung], - untereSchleifenGrenzwerte: [...untereSchleifenGrenzwerte], - obereSchleifenGrenzwerte: [...obereSchleifenGrenzwerte], - schleifenintervall: [...schleifenintervall], - }) - ); - } else { - alert("Fehler beim Speichern der Daten!"); - } - }) - .catch((error) => { - console.error("Fehler:", error); - //alert("Fehler beim Senden der Daten!"); - }); - } else { - alert("Keine Änderungen vorgenommen."); - } - - onClose(); - }; - - const handleDisplayEinschalten = () => { - const url = `/CPL?/kabelueberwachung.html&KSD${slot}=1`; - fetch(url, { method: "GET" }) - .then((response) => { - if (response.ok) { - alert(`Display für Slot ${slot + 1} erfolgreich eingeschaltet!`); - } else { - alert("Fehler beim Einschalten des Displays!"); - } - }) - .catch((error) => { - console.error("Fehler:", error); - alert("Fehler beim Einschalten des Displays!"); - }); - }; - return (