From 415abb058a447b816d836f2e3d7682d62363c91c Mon Sep 17 00:00:00 2001 From: Christian Date: Mon, 4 May 2026 23:46:41 +0200 Subject: [PATCH] hotfix: keep initial telephony rows on first empty refresh --- RELEASE_NOTES_v2.2.86.md | 13 +++++++++++++ VERSION | 2 +- app/modules/telefoni/templates/log.html | 14 +++++++++++++- 3 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 RELEASE_NOTES_v2.2.86.md diff --git a/RELEASE_NOTES_v2.2.86.md b/RELEASE_NOTES_v2.2.86.md new file mode 100644 index 0000000..c225c01 --- /dev/null +++ b/RELEASE_NOTES_v2.2.86.md @@ -0,0 +1,13 @@ +# Release Notes v2.2.86 + +Dato: 2026-05-04 + +## Hotfix + +- Rettet Telefoni UI race-condition hvor server-renderede kald blev vist ved page load, men kunne blive overskrevet med tom liste efter ca. 1 sekund af foerste JS-refresh. +- Siden bevarer nu initialt viste kald, hvis foerste API-refresh uden aktive filtre returnerer tomt. + +## Berorte filer + +- `app/modules/telefoni/templates/log.html` +- `VERSION` diff --git a/VERSION b/VERSION index 5bca469..4ccffcd 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.2.85 +2.2.86 diff --git a/app/modules/telefoni/templates/log.html b/app/modules/telefoni/templates/log.html index de3dbb1..40c0115 100644 --- a/app/modules/telefoni/templates/log.html +++ b/app/modules/telefoni/templates/log.html @@ -58,7 +58,7 @@ Varighed - + {% if initial_calls and initial_calls|length > 0 %} {% for r in initial_calls %} @@ -213,6 +213,7 @@ function escapeHtml(str) { let telefoniCurrentUserId = null; let telefoniAutoResetTried = false; +let telefoniFirstApiLoadDone = false; const telefoniCallMap = new Map(); const linkSagState = { callId: null, @@ -857,6 +858,8 @@ async function loadUsers() { async function loadCalls() { const tbody = document.getElementById('telefoniRows'); + const initialCount = Number(tbody?.dataset?.initialCount || '0'); + const hadServerRows = Number.isFinite(initialCount) && initialCount > 0; tbody.innerHTML = 'Indlæser...'; const userId = document.getElementById('filterUser').value; @@ -882,6 +885,13 @@ async function loadCalls() { (rows || []).forEach(r => telefoniCallMap.set(Number(r.id), r)); if (!rows || rows.length === 0) { const hadFilters = Boolean(userId || from || to || withoutCase); + + // If SSR already showed calls, avoid replacing them with an empty first auto-refresh. + if (!telefoniFirstApiLoadDone && hadServerRows && !hadFilters) { + telefoniFirstApiLoadDone = true; + return; + } + if (hadFilters && !telefoniAutoResetTried) { telefoniAutoResetTried = true; document.getElementById('filterUser').value = ''; @@ -892,10 +902,12 @@ async function loadCalls() { return; } tbody.innerHTML = 'Ingen opkald fundet'; + telefoniFirstApiLoadDone = true; return; } telefoniAutoResetTried = false; + telefoniFirstApiLoadDone = true; tbody.innerHTML = rows.map(r => { const started = r.started_at ? new Date(r.started_at) : null;