feat: Display 'All uploads complete' banner on finish
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
This commit is contained in:
@@ -34,6 +34,7 @@ try {
|
|||||||
} catch {}
|
} catch {}
|
||||||
let items = [];
|
let items = [];
|
||||||
let socket;
|
let socket;
|
||||||
|
let allCompleteBannerShown = false;
|
||||||
|
|
||||||
// Status precedence: never regress (e.g., uploading -> done shouldn't go back to uploading)
|
// Status precedence: never regress (e.g., uploading -> done shouldn't go back to uploading)
|
||||||
const STATUS_ORDER = { queued: 0, checking: 1, uploading: 2, duplicate: 3, done: 3, error: 4 };
|
const STATUS_ORDER = { queued: 0, checking: 1, uploading: 2, duplicate: 3, done: 3, error: 4 };
|
||||||
@@ -92,6 +93,7 @@ function addItem(file, relativePath){
|
|||||||
const resolvedPath = (relativePath !== undefined) ? relativePath : (file.webkitRelativePath || '');
|
const resolvedPath = (relativePath !== undefined) ? relativePath : (file.webkitRelativePath || '');
|
||||||
const it = { id, file, name: file.name, size: file.size, status: 'queued', progress: 0, relativePath: resolvedPath };
|
const it = { id, file, name: file.name, size: file.size, status: 'queued', progress: 0, relativePath: resolvedPath };
|
||||||
items.unshift(it);
|
items.unshift(it);
|
||||||
|
allCompleteBannerShown = false;
|
||||||
render();
|
render();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -155,6 +157,15 @@ function render(){
|
|||||||
document.getElementById('countDone').textContent=c.done;
|
document.getElementById('countDone').textContent=c.done;
|
||||||
document.getElementById('countDup').textContent=c.dup;
|
document.getElementById('countDup').textContent=c.dup;
|
||||||
document.getElementById('countErr').textContent=c.err;
|
document.getElementById('countErr').textContent=c.err;
|
||||||
|
|
||||||
|
if (!allCompleteBannerShown && items.length > 0) {
|
||||||
|
const isComplete = items.every(it => FINAL_STATES.has(it.status));
|
||||||
|
const hasSuccess = items.some(it => it.status === 'done' || it.status === 'duplicate');
|
||||||
|
if (isComplete && hasSuccess) {
|
||||||
|
showBanner("All uploads complete.", "ok");
|
||||||
|
allCompleteBannerShown = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- WebSocket progress ---
|
// --- WebSocket progress ---
|
||||||
|
|||||||
Reference in New Issue
Block a user