From d8b658df30024ae7f5dd1a3b57b8bbfd1dca6682 Mon Sep 17 00:00:00 2001 From: Petr Kracik Date: Fri, 30 Jan 2026 21:31:42 +0100 Subject: [PATCH] Prepare AutoAP enable/disable --- data_embed/index.html | 94 +++++++++++++++++++++++++---------------- data_embed/script.js | 14 ++++++ include/configuration.h | 1 + src/configuration.cpp | 6 ++- src/web_utils.cpp | 2 +- 5 files changed, 79 insertions(+), 38 deletions(-) diff --git a/data_embed/index.html b/data_embed/index.html index 611dc07..0c4ab20 100644 --- a/data_embed/index.html +++ b/data_embed/index.html @@ -1853,46 +1853,68 @@
-
- -
+
+
-
-
-
- -
- - minutesEnable Auto AP
- Set to 0 if you don't - want WiFi AP to stop. + Create WiFi AP when no network is available +
+
+
+
+
+
+
+ +
+ +
+
+
+ +
+ + minutes +
+ Set to 0 if you don't + want WiFi AP to stop. +
diff --git a/data_embed/script.js b/data_embed/script.js index e0c26fa..dab331f 100644 --- a/data_embed/script.js +++ b/data_embed/script.js @@ -237,8 +237,10 @@ function loadSettings(settings) { RebootModeTime.disabled = !RebootModeCheckbox.check; // WiFi Auto AP + document.getElementById("wifi.autoAP.enabled").checked = settings.wifi.autoAP.enabled; document.getElementById("wifi.autoAP.password").value = settings.wifi.autoAP.password; document.getElementById("wifi.autoAP.timeout").value = settings.wifi.autoAP.timeout; + toggleWiFiAutoAPFields(); // OTA document.getElementById("ota.username").value = settings.ota.username; @@ -432,6 +434,18 @@ WebadminCheckbox.addEventListener("change", function () { WebadminPassword.disabled = !this.checked; }); +// WiFi Auto AP Switches +const WiFiAutoAPCheckbox = document.querySelector('input[name="wifi.autoAP.enabled"]'); +WiFiAutoAPCheckbox.addEventListener("change", function () { + toggleWiFiAutoAPFields(); +}); + +function toggleWiFiAutoAPFields() { + const isEnabled = WiFiAutoAPCheckbox.checked; + const autoAPConfig = document.getElementById('wifi-autoap-config'); + if (autoAPConfig) autoAPConfig.style.display = isEnabled ? 'block' : 'none'; +} + document.querySelector(".new button").addEventListener("click", function () { const networksContainer = document.querySelector(".list-networks"); diff --git a/include/configuration.h b/include/configuration.h index abf5cc7..38080c3 100644 --- a/include/configuration.h +++ b/include/configuration.h @@ -32,6 +32,7 @@ public: class WiFi_Auto_AP { public: + bool enabled; // Enable Auto AP String password; int timeout; }; diff --git a/src/configuration.cpp b/src/configuration.cpp index 4ffb2a6..e50eef6 100644 --- a/src/configuration.cpp +++ b/src/configuration.cpp @@ -47,6 +47,7 @@ bool Configuration::writeFile() { data["other"]["startupDelay"] = startupDelay; + data["wifi"]["autoAP"]["enabled"] = wifiAutoAP.enabled; data["wifi"]["autoAP"]["password"] = wifiAutoAP.password; data["wifi"]["autoAP"]["timeout"] = wifiAutoAP.timeout; @@ -214,8 +215,10 @@ bool Configuration::readFile() { if (!data["other"].containsKey("startupDelay")) needsRewrite = true; startupDelay = data["other"]["startupDelay"] | 0; - if (!data["wifi"]["autoAP"].containsKey("password") || + if (!data["wifi"]["autoAP"].containsKey("enabled") || + !data["wifi"]["autoAP"].containsKey("password") || !data["wifi"]["autoAP"].containsKey("timeout")) needsRewrite = true; + wifiAutoAP.enabled = data["wifi"]["autoAP"]["enabled"] | true; wifiAutoAP.password = data["wifi"]["autoAP"]["password"] | "1234567890"; wifiAutoAP.timeout = data["wifi"]["autoAP"]["timeout"] | 10; @@ -446,6 +449,7 @@ void Configuration::setDefaultValues() { startupDelay = 0; + wifiAutoAP.enabled = true; wifiAutoAP.password = "1234567890"; wifiAutoAP.timeout = 10; diff --git a/src/web_utils.cpp b/src/web_utils.cpp index 6197b37..8eebfc2 100644 --- a/src/web_utils.cpp +++ b/src/web_utils.cpp @@ -161,7 +161,7 @@ namespace WEB_Utils { Config.callsign = getParamStringSafe("callsign", Config.callsign); Config.tacticalCallsign = getParamStringSafe("tacticalCallsign", Config.tacticalCallsign); - + Config.wifiAutoAP.enabled = request->hasParam("wifi.autoAP.enabled", true); Config.wifiAutoAP.password = getParamStringSafe("wifi.autoAP.password", Config.wifiAutoAP.password); Config.wifiAutoAP.timeout = getParamIntSafe("wifi.autoAP.timeout", Config.wifiAutoAP.timeout);