animate merging chunks
This commit is contained in:
@@ -2059,3 +2059,11 @@ body.dark-mode .admin-panel-content label {
|
|||||||
#changePasswordModal {
|
#changePasswordModal {
|
||||||
z-index: 9999;
|
z-index: 9999;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@keyframes spin {
|
||||||
|
0% { transform: rotate(0deg); }
|
||||||
|
100% { transform: rotate(360deg); }
|
||||||
|
}
|
||||||
|
.spinning {
|
||||||
|
animation: spin 1s linear infinite;
|
||||||
|
}
|
||||||
20
upload.js
20
upload.js
@@ -458,17 +458,18 @@ function initResumableUpload() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
resumableInstance.on("fileProgress", function(file) {
|
resumableInstance.on("fileProgress", function(file) {
|
||||||
const percent = Math.floor(file.progress() * 100);
|
const progress = file.progress(); // value between 0 and 1
|
||||||
|
const percent = Math.floor(progress * 100);
|
||||||
const li = document.querySelector(`li.upload-progress-item[data-upload-index="${file.uniqueIdentifier}"]`);
|
const li = document.querySelector(`li.upload-progress-item[data-upload-index="${file.uniqueIdentifier}"]`);
|
||||||
if (li && li.progressBar) {
|
if (li && li.progressBar) {
|
||||||
|
if (percent < 99) {
|
||||||
li.progressBar.style.width = percent + "%";
|
li.progressBar.style.width = percent + "%";
|
||||||
|
|
||||||
// Calculate elapsed time since file entry was created.
|
// Calculate elapsed time and speed.
|
||||||
const elapsed = (Date.now() - li.startTime) / 1000;
|
const elapsed = (Date.now() - li.startTime) / 1000;
|
||||||
let speed = "";
|
let speed = "";
|
||||||
if (elapsed > 0) {
|
if (elapsed > 0) {
|
||||||
// Calculate total bytes uploaded so far using file.progress() * file.size
|
const bytesUploaded = progress * file.size;
|
||||||
const bytesUploaded = file.progress() * file.size;
|
|
||||||
const spd = bytesUploaded / elapsed;
|
const spd = bytesUploaded / elapsed;
|
||||||
if (spd < 1024) {
|
if (spd < 1024) {
|
||||||
speed = spd.toFixed(0) + " B/s";
|
speed = spd.toFixed(0) + " B/s";
|
||||||
@@ -479,8 +480,13 @@ function initResumableUpload() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
li.progressBar.innerText = percent + "% (" + speed + ")";
|
li.progressBar.innerText = percent + "% (" + speed + ")";
|
||||||
|
} else {
|
||||||
|
// When progress reaches 99% or higher, show only a spinner icon.
|
||||||
|
li.progressBar.style.width = "100%";
|
||||||
|
li.progressBar.innerHTML = '<i class="material-icons spinning" style="vertical-align: middle;">autorenew</i>';
|
||||||
|
}
|
||||||
|
|
||||||
// Enable the pause/resume button once progress starts
|
// Enable the pause/resume button once progress starts.
|
||||||
const pauseResumeBtn = li.querySelector(".pause-resume-btn");
|
const pauseResumeBtn = li.querySelector(".pause-resume-btn");
|
||||||
if (pauseResumeBtn) {
|
if (pauseResumeBtn) {
|
||||||
pauseResumeBtn.disabled = false;
|
pauseResumeBtn.disabled = false;
|
||||||
@@ -491,9 +497,11 @@ function initResumableUpload() {
|
|||||||
resumableInstance.on("fileSuccess", function(file, message) {
|
resumableInstance.on("fileSuccess", function(file, message) {
|
||||||
const li = document.querySelector(`li.upload-progress-item[data-upload-index="${file.uniqueIdentifier}"]`);
|
const li = document.querySelector(`li.upload-progress-item[data-upload-index="${file.uniqueIdentifier}"]`);
|
||||||
if (li && li.progressBar) {
|
if (li && li.progressBar) {
|
||||||
|
// Clear any merging indicators.
|
||||||
li.progressBar.style.width = "100%";
|
li.progressBar.style.width = "100%";
|
||||||
li.progressBar.innerText = "Done";
|
li.progressBar.innerText = "Done";
|
||||||
// Hide the pause/resume button when upload is complete.
|
|
||||||
|
// Optionally hide the pause/resume and remove buttons.
|
||||||
const pauseResumeBtn = li.querySelector(".pause-resume-btn");
|
const pauseResumeBtn = li.querySelector(".pause-resume-btn");
|
||||||
if (pauseResumeBtn) {
|
if (pauseResumeBtn) {
|
||||||
pauseResumeBtn.style.display = "none";
|
pauseResumeBtn.style.display = "none";
|
||||||
|
|||||||
Reference in New Issue
Block a user