import { Controller } from "./main"; import {NetworkConfig, SSIDList} from "./api"; export class NetworkConfigView { setScanResult(ssidList: SSIDList) { this.ssidlist.innerHTML = '' for (const ssid of ssidList.ssids) { const wi = document.createElement("option"); wi.value = ssid; this.ssidlist.appendChild(wi); } } private readonly ap_ssid: HTMLInputElement; private readonly ssid: HTMLInputElement; private readonly password: HTMLInputElement; private readonly mqtt_url: HTMLInputElement; private readonly base_topic: HTMLInputElement; private readonly max_wait: HTMLInputElement; private readonly ssidlist: HTMLElement; constructor(controller: Controller, publicIp: string) { (document.getElementById("network_view") as HTMLElement).innerHTML = require('./network.html') as string; (document.getElementById("remote_ip") as HTMLElement).innerText = publicIp; this.ap_ssid = (document.getElementById("ap_ssid") as HTMLInputElement); this.ap_ssid.onchange = controller.configChanged this.ssid = (document.getElementById("ssid") as HTMLInputElement); this.ssid.onchange = controller.configChanged this.password = (document.getElementById("password") as HTMLInputElement); this.password.onchange = controller.configChanged this.max_wait = (document.getElementById("max_wait") as HTMLInputElement); this.max_wait.onchange = controller.configChanged this.mqtt_url = document.getElementById("mqtt_url") as HTMLInputElement; this.mqtt_url.onchange = controller.configChanged this.base_topic = document.getElementById("base_topic") as HTMLInputElement; this.base_topic.onchange = controller.configChanged this.ssidlist = document.getElementById("ssidlist") as HTMLElement let scanWifiBtn = document.getElementById("scan") as HTMLButtonElement; scanWifiBtn.onclick = function (){ controller.scanWifi(); } } setConfig(network: NetworkConfig) { this.ap_ssid.value = network.ap_ssid; this.ssid.value = network.ssid; this.password.value = network.password; this.mqtt_url.value = network.mqtt_url; this.base_topic.value = network.base_topic; this.max_wait.value = network.max_wait.toString(); } getConfig(): NetworkConfig { return { max_wait: +this.max_wait.value, ap_ssid: this.ap_ssid.value, ssid: this.ssid.value ?? null, password: this.password.value ?? null, mqtt_url: this.mqtt_url.value ?? null, base_topic: this.base_topic.value ?? null } } }