diff --git a/src/PortalTask.h b/src/PortalTask.h
index 846e2f2..d4f5be3 100644
--- a/src/PortalTask.h
+++ b/src/PortalTask.h
@@ -361,10 +361,16 @@ protected:
for (short int i = 0; i < apCount; i++) {
String ssid = WiFi.SSID(i);
doc[i]["ssid"] = ssid;
+ doc[i]["bssid"] = WiFi.BSSIDstr(i);
doc[i]["signalQuality"] = NetworkMgr::rssiToSignalQuality(WiFi.RSSI(i));
doc[i]["channel"] = WiFi.channel(i);
doc[i]["hidden"] = !ssid.length();
- doc[i]["encryptionType"] = WiFi.encryptionType(i);
+ #ifdef ARDUINO_ARCH_ESP8266
+ const bss_info* info = WiFi.getScanInfoByIndex(i);
+ doc[i]["auth"] = info->authmode;
+ #else
+ doc[i]["auth"] = WiFi.encryptionType(i);
+ #endif
}
doc.shrinkToFit();
diff --git a/src_data/dashboard.html b/src_data/dashboard.html
index 967fe81..3ca5d28 100644
--- a/src_data/dashboard.html
+++ b/src_data/dashboard.html
@@ -38,8 +38,8 @@
Current:
-
-
+
+
@@ -55,8 +55,8 @@
Current:
-
-
+
+
diff --git a/src_data/network.html b/src_data/network.html
index 8ca226d..0449f84 100644
--- a/src_data/network.html
+++ b/src_data/network.html
@@ -82,7 +82,7 @@
| # |
SSID |
- Signal |
+ Info |
diff --git a/src_data/static/app.css b/src_data/static/app.css
index b18c9c2..8e9bc06 100644
--- a/src_data/static/app.css
+++ b/src_data/static/app.css
@@ -86,18 +86,6 @@ tr.network:hover {
cursor: pointer;
}
-.greatSignal {
- background-color: var(--pico-form-element-valid-border-color);
-}
-
-.normalSignal {
- background-color: #e48500;
-}
-
-.badSignal {
- background-color: var(--pico-form-element-invalid-border-color);
-}
-
.primary {
border: 0.25rem solid var(--pico-form-element-invalid-border-color);
padding: 1rem;
@@ -194,3 +182,13 @@ tr.network:hover {
margin: 1.25rem 0;
}
+
+[class*=" icons-"],[class=icons],[class^=icons-] {font-size: 1.35rem; }
+*:has(> [class*=" icons-"], > [class=icons], > [class^=icons-]):has(+ * > [class*=" icons-"], + * > [class=icons], + * > [class^=icons-]) { margin: 0 0.5rem 0 0; }
+[data-tooltip]:has(> [class*=" icons-"], > [class=icons], > [class^=icons-]) { border: 0!important; }
+
+
+/*!
+ * Icons icon font. Generated by Iconly: https://iconly.io/
+ */
+ @font-face{font-display:auto;font-family:"Icons";font-style:normal;font-weight:400;src:url(./fonts/iconly.eot?1717885802370);src:url(./fonts/iconly.eot?#iefix) format("embedded-opentype"),url(./fonts/iconly.woff2?1717885802370) format("woff2"),url(./fonts/iconly.woff?1717885802370) format("woff"),url(./fonts/iconly.ttf?1717885802370) format("truetype")}[class*=" icons-"],[class=icons],[class^=icons-]{display:inline-block;font-family:"Icons"!important;font-weight:400;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}.icons-plus:before{content:"\e000"}.icons-minus:before{content:"\e001"}.icons-unlocked:before{content:"\e002"}.icons-locked:before{content:"\e003"}.icons-wifi-strength-1:before{content:"\e004"}.icons-wifi-strength-0:before{content:"\e005"}.icons-wifi-strength-2:before{content:"\e006"}.icons-wifi-strength-3:before{content:"\e008"}.icons-down:before{content:"\e009"}.icons-wifi-strength-4:before{content:"\e00a"}.icons-up:before{content:"\e00c"}
diff --git a/src_data/static/app.js b/src_data/static/app.js
index 51034fe..48fd387 100644
--- a/src_data/static/app.js
+++ b/src_data/static/app.js
@@ -150,19 +150,56 @@ function setupNetworkScanForm(formSelector, tableSelector) {
};
row.insertCell().textContent = "#" + (i + 1);
- row.insertCell().innerHTML = result[i].hidden ? 'Hidden' : result[i].ssid;
+ row.insertCell().innerHTML = result[i].hidden ? ("" + result[i].bssid + "") : result[i].ssid;
- const signalCell = row.insertCell();
- const signalElement = document.createElement("kbd");
- signalElement.textContent = result[i].signalQuality + "%";
- if (result[i].signalQuality > 60) {
- signalElement.classList.add('greatSignal');
+ // info cell
+ let infoCell = row.insertCell();
+
+ // signal quality
+ let signalQualityIcon = document.createElement("i");
+ if (result[i].signalQuality > 80) {
+ signalQualityIcon.classList.add('icons-wifi-strength-4');
+ } else if (result[i].signalQuality > 60) {
+ signalQualityIcon.classList.add('icons-wifi-strength-3');
} else if (result[i].signalQuality > 40) {
- signalElement.classList.add('normalSignal');
+ signalQualityIcon.classList.add('icons-wifi-strength-2');
+ } else if (result[i].signalQuality > 20) {
+ signalQualityIcon.classList.add('icons-wifi-strength-1');
} else {
- signalElement.classList.add('badSignal');
+ signalQualityIcon.classList.add('icons-wifi-strength-0');
}
- signalCell.appendChild(signalElement);
+
+ let signalQualityContainer = document.createElement("span");
+ signalQualityContainer.setAttribute('data-tooltip', result[i].signalQuality + "%");
+ signalQualityContainer.appendChild(signalQualityIcon);
+ infoCell.appendChild(signalQualityContainer);
+
+ // auth
+ const authList = {
+ 0: "Open",
+ 1: "WEP",
+ 2: "WPA",
+ 3: "WPA2",
+ 4: "WPA/WPA2",
+ 5: "WPA/WPA2 Enterprise",
+ 6: "WPA3",
+ 7: "WPA2/WPA3",
+ 8: "WAPI",
+ 9: "OWE",
+ 10: "WPA3 Enterprise"
+ };
+ let authIcon = document.createElement("i");
+
+ if (result[i].auth == 0) {
+ authIcon.classList.add('icons-unlocked');
+ } else {
+ authIcon.classList.add('icons-locked');
+ }
+
+ let authContainer = document.createElement("span");
+ authContainer.setAttribute('data-tooltip', (result[i].auth in authList) ? authList[result[i].auth] : "unknown");
+ authContainer.appendChild(authIcon);
+ infoCell.appendChild(authContainer);
}
if (button) {
diff --git a/src_data/static/fonts/iconly.eot b/src_data/static/fonts/iconly.eot
new file mode 100644
index 0000000..955eb43
Binary files /dev/null and b/src_data/static/fonts/iconly.eot differ
diff --git a/src_data/static/fonts/iconly.ttf b/src_data/static/fonts/iconly.ttf
new file mode 100644
index 0000000..967cc78
Binary files /dev/null and b/src_data/static/fonts/iconly.ttf differ
diff --git a/src_data/static/fonts/iconly.woff b/src_data/static/fonts/iconly.woff
new file mode 100644
index 0000000..412a1ce
Binary files /dev/null and b/src_data/static/fonts/iconly.woff differ
diff --git a/src_data/static/fonts/iconly.woff2 b/src_data/static/fonts/iconly.woff2
new file mode 100644
index 0000000..724540a
Binary files /dev/null and b/src_data/static/fonts/iconly.woff2 differ
diff --git a/tools/build.py b/tools/build.py
index aeb2a0f..932f6c1 100644
--- a/tools/build.py
+++ b/tools/build.py
@@ -25,6 +25,9 @@ def before_buildfs(source, target, env):
dst_name = name + ".gz"
dst_path = os.path.join(dst, os.path.relpath(root, src), dst_name)
+ if os.path.exists(os.path.join(dst, os.path.relpath(root, src))) == False:
+ os.mkdir(os.path.join(dst, os.path.relpath(root, src)))
+
with gzip.open(dst_path, 'wb', 9) as f_out:
shutil.copyfileobj(f_in, f_out)