import {Controller} from "./main"; import {VersionInfo} from "./api"; export class OTAView { readonly file1Upload: HTMLInputElement; readonly firmware_buildtime: HTMLDivElement; readonly firmware_githash: HTMLDivElement; readonly firmware_partition: HTMLDivElement; readonly firmware_state0: HTMLDivElement; readonly firmware_state1: HTMLDivElement; constructor(controller: Controller) { (document.getElementById("firmwareview") as HTMLElement).innerHTML = require("./ota.html") let test = document.getElementById("test") as HTMLButtonElement; this.firmware_buildtime = document.getElementById("firmware_buildtime") as HTMLDivElement; this.firmware_githash = document.getElementById("firmware_githash") as HTMLDivElement; this.firmware_partition = document.getElementById("firmware_partition") as HTMLDivElement; this.firmware_state0 = document.getElementById("firmware_state0") as HTMLDivElement; this.firmware_state1 = document.getElementById("firmware_state1") as HTMLDivElement; const file = document.getElementById("firmware_file") as HTMLInputElement; this.file1Upload = file this.file1Upload.onchange = () => { const selectedFile = file.files?.[0]; if (selectedFile == null) { //TODO error dialog here return } controller.uploadNewFirmware(selectedFile); }; test.onclick = () => { controller.selfTest(); } } setVersion(versionInfo: VersionInfo) { this.firmware_buildtime.innerText = versionInfo.build_time; this.firmware_githash.innerText = versionInfo.git_hash; this.firmware_partition.innerText = versionInfo.current; this.firmware_state0.innerText = versionInfo.slot0_state; this.firmware_state1.innerText = versionInfo.slot1_state; } }