diff --git a/app/static/public/js/video.js b/app/static/public/js/video.js index d1e1a69..d211dff 100644 --- a/app/static/public/js/video.js +++ b/app/static/public/js/video.js @@ -134,6 +134,32 @@ historyCount.textContent = String(count); } + function removePreviewItem(item) { + if (!item || !videoStage) return; + const idx = String(item.dataset.index || ''); + const url = String(item.dataset.url || '').trim(); + if (selectedVideoItemId && selectedVideoItemId === idx) { + selectedVideoItemId = ''; + selectedVideoUrl = ''; + if (enterEditBtn) enterEditBtn.disabled = true; + closeEditPanel(); + } + if (mergeTargetVideoUrl && url && mergeTargetVideoUrl === url) { + mergeTargetVideoUrl = ''; + mergeTargetVideoName = ''; + } + item.remove(); + const hasAny = videoStage.querySelector('.video-item'); + if (!hasAny) { + videoStage.classList.add('hidden'); + if (videoEmpty) videoEmpty.classList.remove('hidden'); + } + updateHistoryCount(); + refreshVideoSelectionUi(); + updateMergeLabels(); + updateManualActionsVisibility(); + } + function updateMergeLabels() { if (mergeVideoA) { mergeVideoA.textContent = selectedVideoUrl ? shortHash(selectedVideoUrl) : '-'; @@ -1356,11 +1382,16 @@ if (!taskState || taskState.done) { return; } + const previewItem = taskState.previewItem || null; + const hasVideoUrl = Boolean(previewItem && String(previewItem.dataset.url || '').trim()); taskState.done = true; - if (!hasError) { + if (!hasError && hasVideoUrl) { taskState.progress = 100; } else { hasRunError = true; + if (previewItem) { + removePreviewItem(previewItem); + } } if (taskState.source) { try { @@ -1506,6 +1537,12 @@ if (authHeader !== null) { await stopVideoTask(activeTaskIds, authHeader); } + taskStates.forEach((taskState) => { + if (!taskState || taskState.done) return; + if (taskState.previewItem) { + removePreviewItem(taskState.previewItem); + } + }); closeAllSources(); isRunning = false; taskStates = new Map(); diff --git a/app/static/public/pages/video.html b/app/static/public/pages/video.html index 9359aa9..25c6eb8 100644 --- a/app/static/public/pages/video.html +++ b/app/static/public/pages/video.html @@ -307,7 +307,7 @@ - +