Explain save failures and keep download diagnostics available
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
/* Download controls and device storage accounting. */
|
||||
(function(root) {
|
||||
'use strict';
|
||||
const errors = typeof module !== 'undefined' ? require('./download-errors.js') : root.DownloadErrors;
|
||||
const bytes = n => n >= 1073741824 ? `${(n / 1073741824).toFixed(1)} GB` : `${(n / 1048576).toFixed(1)} MB`;
|
||||
function breakdown(files, playlists) {
|
||||
const kinds = { video: 0, audio: 0, eq: 0 }, byId = new Map();
|
||||
@@ -24,13 +25,15 @@
|
||||
for (const job of items) {
|
||||
const row = doc.createElement('div'); row.className = 'download-job';
|
||||
const title = doc.createElement('b'); title.textContent = job.title || job.id;
|
||||
const status = doc.createElement('small'); status.textContent = job.error || job.status;
|
||||
const status = doc.createElement('small'); status.textContent = job.error ? errors.message(job.error) : job.status;
|
||||
const progress = doc.createElement('progress'); progress.max = job.progress?.total || 1; if (job.progress?.total) progress.value = job.progress.received || 0; progress.setAttribute('aria-label', `Saving ${job.title || job.id}`);
|
||||
const actions = doc.createElement('div');
|
||||
for (const action of [...(['active', 'queued'].includes(job.status) ? ['pause'] : [job.status === 'failed' ? 'retry' : 'resume']), 'cancel']) {
|
||||
const button = doc.createElement('button'); button.type = 'button'; button.textContent = action[0].toUpperCase() + action.slice(1); button.setAttribute('aria-label', `${button.textContent} ${job.title || job.id}`); button.onclick = () => { adapter.action(job.id, action); signature = ''; paint(); }; actions.append(button);
|
||||
}
|
||||
row.append(title, status, progress, actions); jobs.append(row);
|
||||
row.append(title, status, progress, actions);
|
||||
if (job.error) errors.appendDetails(row, job.error);
|
||||
jobs.append(row);
|
||||
}
|
||||
}
|
||||
async function disk() {
|
||||
|
||||
Reference in New Issue
Block a user