Files
espurna/code/html/src/wifi.mjs
Maxim Prokhorov 4f520a8798 webui: consistent settingsMax check
remove leftover manual template merge, idForContainer() should just use template-id data key
group add event now checks that instead, raising alert when number is greater than max

ref. #2610
2024-06-24 22:43:19 +03:00

83 lines
2.1 KiB
JavaScript

import {
fromSchema,
groupSettingsOnAdd,
variableListeners,
} from './settings.mjs';
import { addFromTemplate } from './template.mjs';
import { moreElem } from './core.mjs';
import { sendAction } from './connection.mjs';
function addNode(cfg, showMore) {
const container = document.getElementById("networks");
addFromTemplate(container, "network-config", cfg);
if ((showMore === undefined) || showMore) {
moreElem(container.lastChild)
}
}
function scanResult(values) {
let loading = document.querySelector("div.scan.loading");
loading.style.display = "none";
for (let button of document.querySelectorAll(".button-wifi-scan")) {
button.disabled = false;
}
let table = document.getElementById("scanResult");
table.style.display = "table";
let [results] = table.tBodies;
let row = results.insertRow();
for (let value of values) {
let cell = row.insertCell();
cell.appendChild(document.createTextNode(value));
}
}
function scanStart(event) {
event.preventDefault();
let [results] = document.getElementById("scanResult").tBodies;
while (results.rows.length) {
results.deleteRow(0);
}
let loading = document.querySelector("div.scan.loading");
loading.style.display = "inherit";
for (let button of document.querySelectorAll(".button-wifi-scan")) {
button.disabled = true;
}
sendAction("scan");
}
function listeners() {
return {
"wifiConfig": (_, value) => {
const container = document.getElementById("networks");
container.dataset["settingsMax"] = value.max;
value.networks.forEach((entries) => {
addNode(fromSchema(entries, value.schema), false);
});
},
"scanResult": (_, value) => {
scanResult(value);
},
};
}
export function init() {
variableListeners(listeners());
groupSettingsOnAdd("networks", () => {
addNode();
});
document.querySelector(".button-wifi-scan")
.addEventListener("click", scanStart);
}