From 7778e7262832a4db3dcc9ec24416d712a22d6277 Mon Sep 17 00:00:00 2001 From: dsutanto Date: Thu, 30 Jul 2026 21:07:52 +0700 Subject: [PATCH] Keep counter when recounting finish --- templates/recounting.html | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/templates/recounting.html b/templates/recounting.html index 5e45751..0859255 100644 --- a/templates/recounting.html +++ b/templates/recounting.html @@ -663,6 +663,8 @@ async function startRecount() { streamUrl = data.stream_url; streaming = true; selectedFile = data.path; + lastRecountCount = null; + lastRecountTime = null; document.getElementById('btn-stop').disabled = false; btnStart.textContent = 'STREAMING'; @@ -751,6 +753,9 @@ function resetVideoToggle() { // --- Recount counter --- +let lastRecountCount = null; +let lastRecountTime = null; + async function loadRecountProgress() { const countEl = document.getElementById('recount-count'); const timeEl = document.getElementById('recount-time'); @@ -759,26 +764,34 @@ async function loadRecountProgress() { const res = await fetch('/api/recount-progress'); const data = await res.json(); if (!data.success) { - countEl.textContent = '--'; - timeEl.textContent = data.error || 'unreachable'; + if (lastRecountCount === null) { + countEl.textContent = '--'; + timeEl.textContent = data.error || 'unreachable'; + } statusEl.className = 'counter-status disconnected'; - statusEl.textContent = 'no connection'; + statusEl.textContent = 'completed'; return; } - countEl.textContent = data.count.toLocaleString(); + lastRecountCount = data.count.toLocaleString(); + countEl.textContent = lastRecountCount; if (data.last_detection_time) { const d = new Date(data.last_detection_time); - timeEl.textContent = d.toLocaleTimeString('en-US', { hour12: false, hour: '2-digit', minute: '2-digit', second: '2-digit' }); + lastRecountTime = d.toLocaleTimeString('en-US', { hour12: false, hour: '2-digit', minute: '2-digit', second: '2-digit' }); + timeEl.textContent = lastRecountTime; + } else if (lastRecountTime) { + timeEl.textContent = lastRecountTime; } else { timeEl.textContent = 'waiting...'; } statusEl.className = 'counter-status connected'; statusEl.textContent = 'connected'; } catch (err) { - countEl.textContent = '--'; - timeEl.textContent = 'unreachable'; + if (lastRecountCount === null) { + countEl.textContent = '--'; + timeEl.textContent = 'unreachable'; + } statusEl.className = 'counter-status disconnected'; - statusEl.textContent = 'no connection'; + statusEl.textContent = 'completed'; } }