diff --git a/src/views/LibraryView.vue b/src/views/LibraryView.vue index 7e7ac5e..f9800f3 100644 --- a/src/views/LibraryView.vue +++ b/src/views/LibraryView.vue @@ -2279,28 +2279,20 @@ async function ctxPause(f: any) { if (!f?.file_uuid) { console.error('[ctxPause] no file_uuid'); return } try { const base = getApiBase() - const url = `${base}/api/v1/jobs/${f.file_uuid}/pause` - console.log('[ctxPause] calling:', url) - const res = await fetch(url, { method: 'POST' }) - console.log('[ctxPause] response status:', res.status) + const res = await fetch(`${base}/api/v1/jobs/${f.file_uuid}/pause`, { method: 'POST' }) if (res.ok) { pausedFileUuids.value = new Set(pausedFileUuids.value).add(f.file_uuid) - // Manually update file status in cache (backend pause only updates monitor_jobs, not videos table) - const file = filesCache.value.find((x: any) => x.file_uuid === f.file_uuid) - if (file) { - file.status = 'paused' - fileStatusCache.value[f.file_uuid] = 'paused' - } + // Reload files to get synced status from backend (PostgreSQL trigger syncs videos.status) + await loadFiles() + await loadPausedFiles() actionMsg.value = `⏸ Paused: ${f.file_name}` - console.log('[ctxPause] success, status updated to paused') } else { const err = await res.json().catch(() => ({})) actionMsg.value = `Pause failed: ${err.error || res.statusText}` - console.error('[ctxPause] failed:', err) } } catch (e: any) { actionMsg.value = `Pause error: ${e.message}` - console.error('[ctxPause] error:', e) + console.error('[ctxPause]', e) } setTimeout(() => { actionMsg.value = '' }, 5000) } @@ -2342,12 +2334,6 @@ async function batchPause() { try { const res = await fetch(`${base}/api/v1/jobs/${f.file_uuid}/pause`, { method: 'POST' }) if (res.ok) { - // Manually update status in cache - const file = filesCache.value.find((x: any) => x.file_uuid === f.file_uuid) - if (file) { - file.status = 'paused' - fileStatusCache.value[f.file_uuid] = 'paused' - } successCount++ } else { failCount++ @@ -2360,10 +2346,10 @@ async function batchPause() { await Promise.all(filesToPause.map(f => limit(() => pauseFile(f)))) - // Update paused set for reactivity - pausedFileUuids.value = new Set(pausedFileUuids.value) - if (successCount > 0) { + // Reload files to get synced status from backend (PostgreSQL trigger syncs videos.status) + await loadFiles() + await loadPausedFiles() actionMsg.value = `⏸ Paused ${successCount} files${failCount > 0 ? `, ${failCount} failed` : ''}` } else { actionMsg.value = `Failed to pause all ${failCount} files`