feat(videos): show conversion progress % and elapsed time

- _converting dict now tracks started_at, source_size, tmp_path per file
- list_local_videos() reads tmp file size to compute pct complete
- Desktop badge: 'Converting 42% 1m30s'
- Mobile badge: '42%' (compact, fits under thumbnail)

Co-authored-by: Copilot <[email protected]>
This commit is contained in:
Mathieu Moran
2026-08-10 01:30:48 -04:00
co-authored by Copilot
parent c995599512
commit d9d1537a13
2 changed files with 36 additions and 7 deletions
+9 -3
View File
@@ -119,9 +119,12 @@
preview.appendChild(mobileMeta);
// Converting badge shown on mobile inside thumbnail cell
if (file.converting) {
const p = file.convert_progress;
const elapsed = p ? `${Math.floor(p.elapsed_s / 60)}m${p.elapsed_s % 60}s` : '…';
const pct = p ? ` ${p.pct}%` : '';
const mobileBadge = document.createElement("span");
mobileBadge.className = "badge bg-info text-dark dash-thumb-converting mt-1";
mobileBadge.innerHTML = '<i class="fas fa-spinner fa-spin"></i>';
mobileBadge.innerHTML = `<i class="fas fa-spinner fa-spin me-1"></i>${pct || elapsed}`;
preview.appendChild(mobileBadge);
}
row.appendChild(preview);
@@ -143,13 +146,16 @@
dateCell.className = "dash-col-date";
row.appendChild(dateCell);
// Upload / convert badge
// Upload / convert badge (desktop)
const upload = document.createElement("td");
upload.className = "dash-col-upload";
const badge = document.createElement("span");
if (file.converting) {
const p = file.convert_progress;
const pct = p && p.pct > 0 ? ` ${p.pct}%` : '';
const elapsed = p ? ` ${Math.floor(p.elapsed_s / 60)}m${p.elapsed_s % 60}s` : '';
badge.className = "badge bg-info text-dark";
badge.innerHTML = '<i class="fas fa-spinner fa-spin me-1"></i>Converting';
badge.innerHTML = `<i class="fas fa-spinner fa-spin me-1"></i>Converting${pct}${elapsed}`;
convertingCount++;
} else {
badge.className = file.uploaded ? "badge bg-success" : "badge bg-warning text-dark";