import { Controller } from "./main"; export class NetworkConfigView { setScanResult(ssidList: SSIDList) { this.ssidlist.innerHTML = '' for (var ssid of ssidList.ssids) { var 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 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.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; } getConfig(): NetworkConfig { return { 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 } } }