From f3810f3c69656c831718db2b5d1d017ced4b2da4 Mon Sep 17 00:00:00 2001 From: Brendan O'Leary Date: Wed, 17 Dec 2025 20:03:20 -0500 Subject: [PATCH] fix javascript issued --- scripts/build_html.py | 2 +- src/CrossPointWebServer.cpp | 20 +++----- src/activities/network/WifiScreen.cpp | 36 ++++++++++---- src/html/FilesPageFooter.html | 16 ------ src/html/FilesPageHeader.html | 70 ++++++--------------------- 5 files changed, 50 insertions(+), 94 deletions(-) diff --git a/scripts/build_html.py b/scripts/build_html.py index 3b3ac57..248aba8 100644 --- a/scripts/build_html.py +++ b/scripts/build_html.py @@ -5,7 +5,7 @@ SRC_DIR = "src" def minify_html(html: str) -> str: # Tags where whitespace should be preserved - preserve_tags = ['pre', 'code', 'textarea'] + preserve_tags = ['pre', 'code', 'textarea', 'script', 'style'] preserve_regex = '|'.join(preserve_tags) # Protect preserve blocks with placeholders diff --git a/src/CrossPointWebServer.cpp b/src/CrossPointWebServer.cpp index 1da5670..546676c 100644 --- a/src/CrossPointWebServer.cpp +++ b/src/CrossPointWebServer.cpp @@ -273,7 +273,7 @@ void CrossPointWebServer::handleFileList() { } } - // Page header with inline breadcrumb and +Add dropdown + // Page header with inline breadcrumb and action buttons html += "
"; html += "
"; html += "

📁 File Manager

"; @@ -310,20 +310,14 @@ void CrossPointWebServer::handleFileList() { html += "
"; html += "
"; - // +Add dropdown button - html += "
"; - html += ""; - html += "
"; - html += ""; - html += "
"; - html += ""; - html += "
"; html += "
"; html += ""; // end page-header diff --git a/src/activities/network/WifiScreen.cpp b/src/activities/network/WifiScreen.cpp index 5487569..3313003 100644 --- a/src/activities/network/WifiScreen.cpp +++ b/src/activities/network/WifiScreen.cpp @@ -2,6 +2,7 @@ #include #include +#include #include "CrossPointWebServer.h" #include "WifiCredentialStore.h" @@ -95,18 +96,35 @@ void WifiScreen::processWifiScanResults() { } // Scan complete, process results - networks.clear(); + // Use a map to deduplicate networks by SSID, keeping the strongest signal + std::map uniqueNetworks; + for (int i = 0; i < scanResult; i++) { - WifiNetworkInfo network; - network.ssid = WiFi.SSID(i).c_str(); - network.rssi = WiFi.RSSI(i); - network.isEncrypted = (WiFi.encryptionType(i) != WIFI_AUTH_OPEN); - network.hasSavedPassword = WIFI_STORE.hasSavedCredential(network.ssid); - + std::string ssid = WiFi.SSID(i).c_str(); + int32_t rssi = WiFi.RSSI(i); + // Skip hidden networks (empty SSID) - if (!network.ssid.empty()) { - networks.push_back(network); + if (ssid.empty()) { + continue; } + + // Check if we've already seen this SSID + auto it = uniqueNetworks.find(ssid); + if (it == uniqueNetworks.end() || rssi > it->second.rssi) { + // New network or stronger signal than existing entry + WifiNetworkInfo network; + network.ssid = ssid; + network.rssi = rssi; + network.isEncrypted = (WiFi.encryptionType(i) != WIFI_AUTH_OPEN); + network.hasSavedPassword = WIFI_STORE.hasSavedCredential(network.ssid); + uniqueNetworks[ssid] = network; + } + } + + // Convert map to vector + networks.clear(); + for (const auto& pair : uniqueNetworks) { + networks.push_back(pair.second); } // Sort by signal strength (strongest first) diff --git a/src/html/FilesPageFooter.html b/src/html/FilesPageFooter.html index e74e4bf..102430a 100644 --- a/src/html/FilesPageFooter.html +++ b/src/html/FilesPageFooter.html @@ -52,26 +52,11 @@