From 7569800e231fa976310abb0e18aaafaf3fd5625c Mon Sep 17 00:00:00 2001 From: Martin Boonk Date: Sun, 20 Feb 2022 18:59:42 +0100 Subject: [PATCH] Disable upload and save button if not yet ready --- apps/imageclock/custom.html | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/apps/imageclock/custom.html b/apps/imageclock/custom.html index ce53c022e..3389c3504 100644 --- a/apps/imageclock/custom.html +++ b/apps/imageclock/custom.html @@ -24,6 +24,8 @@ var resultJson = {}; var infoJson; var faceJson; + var handledFiles = 0; + var expectedFiles = 0; function imageLoaded() { var options = {}; @@ -100,6 +102,14 @@ currentElement = currentElement[jsonPath[i]]; } } + + handledFiles++; + console.log("Expected:", expectedFiles, " handled:", handledFiles); + + if (handledFiles == expectedFiles){ + document.getElementById('btnSave').disabled = false; + document.getElementById('btnUpload').disabled = false; + } } function handleWatchFace(infoFile, faceFile, resourceFiles){ @@ -140,6 +150,12 @@ } function handleFileSelect(event) { + handledFiles = 0; + expectedFiles = undefined; + + document.getElementById('btnSave').disabled = true; + document.getElementById('btnUpload').disabled = true; + console.log("File select event", event); if (event.target.files.length == 0) return; result = ""; @@ -154,6 +170,7 @@ if (current.webkitRelativePath.split("/")[1].startsWith("resources")){ console.log('Found resource file', current.name); resourceFiles.push(current); + expectedFiles = resourceFiles.length; } else if (current.name == "face.json"){ console.log('Found face file', current.name); faceFile = current; @@ -193,6 +210,10 @@ function handleZipSelect(evt) { function handleFile(f) { + expectedFiles = 0; + handledFiles = 0; + document.getElementById('btnSave').disabled = true; + document.getElementById('btnUpload').disabled = true; JSZip.loadAsync(f).then(function(zip) { console.log("Zip loaded", zip); @@ -215,6 +236,7 @@ console.log("iterating over", relativePath); if (!file.dir){ + expectedFiles++; promise = promise.then(file.async("blob").then(function (blob) { var reader = new FileReader(); console.log("Handling ", file.name, " with path ", relativePath); @@ -246,12 +268,13 @@ } handleFile(files[0]); -} + } -document.getElementById('zipLoader').addEventListener('change', handleZipSelect, false); - + document.getElementById('zipLoader').addEventListener('change', handleZipSelect, false); + document.getElementById('btnSave').disabled = true; + document.getElementById('btnUpload').disabled = true;