48 lines
1.9 KiB
TypeScript
48 lines
1.9 KiB
TypeScript
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;
|
|
}
|
|
} |