import React, { useState, useEffect } from "react"; import ReactModal from "react-modal"; import { ClipLoader } from "react-spinners"; import "bootstrap-icons/font/bootstrap-icons.css"; // Import Bootstrap Icons function SettingModal({ showModal, onClose }) { const [name, setName] = useState("CPLV4"); const [mac1, setMac1] = useState("0 48 86 81 46 157"); const [mac2, setMac2] = useState("0 48 86 81 46 158"); const [ip, setIp] = useState("10.10.0.118"); const [subnet, setSubnet] = useState("255.255.255.0"); const [gateway, setGateway] = useState("10.10.0.1"); const [systemUhr, setSystemUhr] = useState("16.10.24 15:27:23 Uhr"); const [ntp1, setNtp1] = useState("192.53.103.108"); const [ntp2, setNtp2] = useState("0.0.0.0"); const [ntp3, setNtp3] = useState("0.0.0.0"); const [zeitzone, setZeitzone] = useState("2"); const [active, setActive] = useState("1"); const [showRebootModal, setShowRebootModal] = useState(false); useEffect(() => { if (window.deviceName) setName(window.deviceName); if (window.mac1) setMac1(window.mac1); if (window.mac2) setMac2(window.mac2); if (window.ip) setIp(window.ip); if (window.subnet) setSubnet(window.subnet); if (window.gateway) setGateway(window.gateway); if (window.datetime) setSystemUhr(window.datetime); if (window.ntpServer1Ip) setNtp1(window.ntpServer1Ip); if (window.ntpServer2Ip) setNtp2(window.ntpServer2Ip); if (window.ntpServer3Ip) setNtp3(window.ntpServer3Ip); if (window.ntpTimezone) setZeitzone(window.ntpTimezone); if (window.ntpActive) setActive(window.ntpActive); }, []); const handleReboot = () => { if ( window.confirm("Sind Sie sicher, dass Sie den CPL neu starten möchten?") ) { fetch(`CPL?KUEdetail.ACP&BOOT=1`, { method: "GET" }).finally(() => { window.location.href = `/wait`; //auf Client-Seite }); } }; const handleClearDatabase = () => { if ( window.confirm("Sind Sie sicher, dass Sie die Datenbank leeren möchten?") ) { const clearDbUrl = `CPL?KUEdetail.ACP&DEDB=1`; fetch(clearDbUrl) .then((response) => { if (response.ok) { alert("Befehl zum Leeren der Datenbank erfolgreich gesendet!"); } else { alert("Fehler beim Senden des Befehls zum Leeren der Datenbank!"); } }) .catch((error) => { console.error("Fehler:", error); alert("Fehler beim Senden des Befehls zum Leeren der Datenbank!"); }); } }; const handleSubmit = () => { if (window.confirm("Möchten Sie die Änderungen wirklich übernehmen?")) { const url = `CPL?KUEdetail.ACP&SNNA=${name}&SEI01=${ip}&SEI02=${subnet}&SEI03=${gateway}&SNIP1=${ntp1}&SNIP2=${ntp2}&SNIP3=${ntp3}&SNTZ=${zeitzone}&SNAC=${active}`; fetch(url) .then((response) => { if (response.ok) { alert("Daten erfolgreich gesendet!"); } else { alert("Fehler beim Senden der Daten!"); } }) .catch((error) => { console.error("Fehler:", error); alert("Fehler beim Senden der Daten!"); }); } }; return ( <> {/* Modal-Inhalt */} {/* Weitere Inhalte wie Formular */} System: Name: setName(e.target.value)} /> MAC Adresse 1: setMac1(e.target.value)} disabled /> MAC Adresse 2: setMac2(e.target.value)} disabled /> IP: setIp(e.target.value)} /> Subnet: setSubnet(e.target.value)} /> Gateway: setGateway(e.target.value)} /> Systemuhr: {/* Button für Systemzeit übernehmen */} console.log("Systemzeit übernehmen")} > Systemzeit übernehmen {/* SNTP Client */} SNTP Client: IP NTP Server 1: setNtp1(e.target.value)} /> IP NTP Server 2: setNtp2(e.target.value)} /> IP NTP Server 3: setNtp3(e.target.value)} /> Zeitzone: setZeitzone(e.target.value)} /> NTP Active: setActive(e.target.value)} /> {/* Datenbank leeren und Neustart CPL */} handleReboot()} > Neustart CPL {/* Modal Footer */} handleClearDatabase()} > Datenbank leeren handleSubmit()} className="bg-blue-500 text-white px-4 py-2 rounded" > Übernehmen {/* Reboot Modal */} CPL wird neu gestartet... {/* Spinner */} Bitte warten Sie 5 Sekunden... > ); } export default SettingModal;
Bitte warten Sie 5 Sekunden...