export function uploadFile() { var file1 = document.getElementById("file1") as HTMLInputElement; var loaded_n_total = document.getElementById("loaded_n_total"); var progressBar = document.getElementById("progressBar") as HTMLProgressElement; var status = document.getElementById("status"); var answer = document.getElementById("answer"); var file = file1.files[0]; var ajax = new XMLHttpRequest(); ajax.upload.addEventListener("progress", event => { loaded_n_total.innerHTML = "Uploaded " + event.loaded + " bytes of " + event.total; var percent = (event.loaded / event.total) * 100; progressBar.value = Math.round(percent); status.innerHTML = Math.round(percent) + "%"; answer.innerHTML = "in progress"; }, false); ajax.addEventListener("load", () => { status.innerHTML = ajax.responseText; answer.innerHTML = "finished"; progressBar.value = 0; }, false); ajax.addEventListener("error", () => { status.innerHTML = ajax.responseText; answer.innerHTML = "failed"; }, false); ajax.addEventListener("abort", () => { status.innerHTML = ajax.responseText; answer.innerHTML = "aborted"; }, false); ajax.open("POST", "/ota"); ajax.send(file); } interface VersionInfo{ git_hash:string, build_time: string } let file1Upload = document.getElementById("file1") as HTMLInputElement; file1Upload.onchange = uploadFile; let firmware_buildtime = document.getElementById("firmware_buildtime") as HTMLDivElement; let firmware_githash = document.getElementById("firmware_githash") as HTMLDivElement; document.addEventListener('DOMContentLoaded', function() { fetch("/version") .then(response => response.json()) .then(json => json as VersionInfo) .then(versionInfo => { firmware_buildtime.innerText = versionInfo.build_time; firmware_githash.innerText = versionInfo.git_hash; }) }, false);