disable upload button while upload is running

This commit is contained in:
wellenvogel 2021-12-17 13:07:02 +01:00
parent 031e4fa0e0
commit bab086acd5
1 changed files with 12 additions and 3 deletions

View File

@ -1448,11 +1448,12 @@ function updateDashboard(data) {
}); });
} }
} }
function uploadBin(){ function uploadBin(ev){
let el=document.getElementById("uploadFile"); let el=document.getElementById("uploadFile");
let progressEl=document.getElementById("uploadDone"); let progressEl=document.getElementById("uploadDone");
if (! el) return; if (! el) return;
if ( el.files.length < 1) return; if ( el.files.length < 1) return;
ev.target.disabled=true;
let file=el.files[0]; let file=el.files[0];
checkImageFile(file) checkImageFile(file)
.then(function (result) { .then(function (result) {
@ -1473,12 +1474,16 @@ function uploadBin(){
confirmText += "version in image: " + result.version; confirmText += "version in image: " + result.version;
} }
} }
if (!confirm(confirmText)) return; if (!confirm(confirmText)) {
ev.target.disabled=false;
return;
}
ensurePass() ensurePass()
.then(function (hash) { .then(function (hash) {
let len = file.size; let len = file.size;
let req = new XMLHttpRequest(); let req = new XMLHttpRequest();
req.onloadend = function () { req.onloadend = function () {
ev.target.disabled=false;
let result = "unknown error"; let result = "unknown error";
try { try {
let jresult = JSON.parse(req.responseText); let jresult = JSON.parse(req.responseText);
@ -1504,6 +1509,7 @@ function uploadBin(){
} }
} }
req.onerror = function (e) { req.onerror = function (e) {
ev.target.disabled=false;
alert("unable to upload: " + e); alert("unable to upload: " + e);
} }
if (progressEl) { if (progressEl) {
@ -1520,10 +1526,13 @@ function uploadBin(){
req.open("POST", '/api/update?_hash=' + encodeURIComponent(hash)); req.open("POST", '/api/update?_hash=' + encodeURIComponent(hash));
req.send(formData); req.send(formData);
}) })
.catch(function (e) { }); .catch(function (e) {
ev.target.disabled=false;
});
}) })
.catch(function (e) { .catch(function (e) {
alert("This file is an invalid image file:\n" + e); alert("This file is an invalid image file:\n" + e);
ev.target.disabled=false;
}) })
} }
let HDROFFSET=288; let HDROFFSET=288;