diff --git a/components/modales/settingsModal/handlers/handleReboot.js b/components/modales/settingsModal/handlers/handleReboot.js index 680792a..58ca489 100644 --- a/components/modales/settingsModal/handlers/handleReboot.js +++ b/components/modales/settingsModal/handlers/handleReboot.js @@ -1,5 +1,4 @@ -const handleReboot = async () => { - // Zeigt eine einfache Warteanzeige direkt in der aktuellen Seite an +const handleReboot = async (newIp = null) => { const showWaitPage = () => { const waitHTML = ` @@ -45,26 +44,23 @@ const handleReboot = async () => { `; - - // Ersetzt den gesamten HTML-Inhalt der Seite mit der Warteanzeige document.documentElement.innerHTML = waitHTML; }; if ( window.confirm("Sind Sie sicher, dass Sie den CPL neu starten möchten?") ) { - // Zeige die Warte-Seite direkt an showWaitPage(); - // Umleitung abhängig von der Umgebung nach 5 Sekunden - const redirectURL = + // Leite zur neuen IP oder zur ursprünglichen IP basierend auf der Umgebung weiter + const baseRedirectURL = newIp ? `https://${newIp}` : window.location.origin; + const redirectPath = process.env.NODE_ENV === "production" ? "/dashboard.html" : "/dashboard"; setTimeout(() => { - window.location.href = `${window.location.origin}${redirectURL}`; - }, 35000); // getestet, Nach 35 Sekunden wird CPL rebootet + window.location.href = `${baseRedirectURL}${redirectPath}`; + }, 33000); // Nach 33 Sekunden umleiten - // Führe den `fetch`-Aufruf zum Neustart aus (gleichzeitig) const url = `${window.location.origin}/CPL?wait2reboot.html&BOOT=1`; console.log(url); diff --git a/components/modales/settingsModal/handlers/handleSubmit.js b/components/modales/settingsModal/handlers/handleSubmit.js index ab3d049..ff82b5e 100644 --- a/components/modales/settingsModal/handlers/handleSubmit.js +++ b/components/modales/settingsModal/handlers/handleSubmit.js @@ -1,16 +1,19 @@ // components/modales/handlers/handleSubmit.js import handleReboot from "./handleReboot"; + const handleSubmit = (originalValues, currentValues) => { const changes = {}; let networkChanges = false; + let newIp = null; - // Überprüfe, welche Werte sich geändert haben, wobei Netzwerk- oder Namensänderungen einen Neustart erfordern + // Überprüfe, welche Werte sich geändert haben if (currentValues.name !== originalValues.name) { changes.SNNA = currentValues.name; networkChanges = true; } if (currentValues.ip !== originalValues.ip) { changes.SEI01 = currentValues.ip; + newIp = currentValues.ip; // Neue IP speichern networkChanges = true; } if (currentValues.subnet !== originalValues.subnet) { @@ -37,35 +40,24 @@ const handleSubmit = (originalValues, currentValues) => { changes.SNAC = currentValues.active; } - // Falls Änderungen vorhanden sind, sende die neuen Daten if (Object.keys(changes).length > 0) { - // Pfad anpassen, um sicherzustellen, dass er auf ".html" endet - let currentPath = window.location.pathname; - if (!currentPath.endsWith(".html")) { - currentPath += ".html"; - } - - // Erstelle die vollständige URL mit Host, Pfad und Parametern - let url = `${window.location.origin}/CPL?${currentPath}`; - + // URL für die Änderungen erstellen + let url = `${window.location.origin}/CPL?${window.location.pathname}`; Object.keys(changes).forEach((paramKey) => { url += `&${paramKey}=${encodeURIComponent(changes[paramKey])}`; }); - // Logge die URL zur Überprüfung console.log(url); - // Sende die URL mit den Änderungen an den Server fetch(url, { method: "GET" }); alert("Daten erfolgreich gesendet!"); - // Hinweis und Neustart bei Namens- oder Netzwerkeinstellungen if (networkChanges) { alert( "Hinweis: Die Änderungen in CPL-Name und den Netzwerkeinstellungen werden erst nach einem Neustart des CPL wirksam." ); - handleReboot(); // handleReboot enthält bereits die Bestätigung + handleReboot(newIp); // handleReboot mit neuer IP aufrufen } } else { alert("Keine Änderungen vorgenommen.");