Hallo zusammen,
neulich habe ich ein Installationsabbild im CCP hochgeladen.
Leider gibt es nur einen Ladebalken als Fortschrittsanzeige, keine Informationen über verbleibende Dauer, Geschwindigkeit oder über den Fortschritt in Prozent.
Weil das Image ziemlich groß war hatte ich genug Zeit ein kleines Skript für die Browserkonsole zu schreiben, welches das Feature implementiert.
Für jeden der das testen möchte:
JavaScript
var lastProgress = 0;
var lastTimestamp = new Date();
var lastEstimate = 0;
function calculateTimeEstimate(currentProgress){
if(lastProgress !== currentProgress && currentProgress > lastProgress){
const timeTaken = new Date() - lastTimestamp
const progressMade = currentProgress - lastProgress;
const timePerPercent = timeTaken/progressMade;
lastEstimate = timePerPercent*(100-currentProgress);
lastTimestamp = new Date();
lastProgress = currentProgress;
}
return lastEstimate
}
function uploadProgress(){
const progressBar = document.querySelector("progress#uploadProgress");
if(!progressBar) return false;
const progress = progressBar.getAttribute("value").split(".")[0] + "%";
let label = document.querySelector("#progressLabelInject");
if(!label){
const labelElement = document.createElement("p");
labelElement.innerText = progress;
labelElement.id = "progressLabelInject";
progressBar.parentElement.appendChild(labelElement);
}
const estimate = calculateTimeEstimate(Number(progressBar.getAttribute("value")));
label = document.querySelector("#progressLabelInject");
if(!label) return false;
const minutes = Math.floor((estimate/1000)/60);
const seconds = Math.ceil(estimate/1000 - minutes*60);
label.innerText = progress + ` (etwa ${minutes} Minuten, ${seconds} Sekunden übrig)`;
return true;
}
setInterval(uploadProgress, 100)
Display More
Wäre es möglich diese Informationen standardmäßig einzubauen?
Vielen Dank,
Hibatos