diff --git a/app/static/public/js/video.js b/app/static/public/js/video.js index fbf09a5..924bd9a 100644 --- a/app/static/public/js/video.js +++ b/app/static/public/js/video.js @@ -2073,6 +2073,7 @@ authHeader, taskIds: [], placeholders: new Map(), + failedPlaceholders: new Set(), sources: new Set(), pendingRejects: new Set(), }; @@ -2132,10 +2133,7 @@ successCount += 1; } catch (singleErr) { if (item) { - const completed = String(item.dataset.completed || '0') === '1'; - if (!completed) { - removePreviewItem(item); - } + spliceRun.failedPlaceholders.add(item); } if (String(singleErr && singleErr.message || '') === 'edit_cancelled') { return; @@ -2148,11 +2146,21 @@ return; } const missItem = spliceRun.placeholders.get(taskId) || null; - if (missItem) removePreviewItem(missItem); + if (missItem) spliceRun.failedPlaceholders.add(missItem); }) ); await Promise.allSettled(waitTasks); await processChain; + if (spliceRun.failedPlaceholders && spliceRun.failedPlaceholders.size) { + spliceRun.failedPlaceholders.forEach((item) => { + if (!item) return; + const completed = String(item.dataset.completed || '0') === '1'; + if (!completed) { + removePreviewItem(item); + } + }); + spliceRun.failedPlaceholders.clear(); + } if (spliceRun.cancelled) { throw new Error('edit_cancelled'); diff --git a/app/static/public/pages/video.html b/app/static/public/pages/video.html index a7c275e..f9367eb 100644 --- a/app/static/public/pages/video.html +++ b/app/static/public/pages/video.html @@ -318,7 +318,7 @@ - +