From e4e35a12851fc814d383b9131f4fc990ca3813f3 Mon Sep 17 00:00:00 2001 From: Christian Date: Tue, 5 May 2026 00:22:02 +0200 Subject: [PATCH] fix: skip auto-loadCalls when SSR already rendered telefoni rows --- VERSION | 2 +- app/modules/telefoni/templates/log.html | 41 ++++++++++++------------- 2 files changed, 21 insertions(+), 22 deletions(-) diff --git a/VERSION b/VERSION index c4c475d..3fe43a6 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.2.87 +2.2.88 diff --git a/app/modules/telefoni/templates/log.html b/app/modules/telefoni/templates/log.html index d5a020c..020ac8d 100644 --- a/app/modules/telefoni/templates/log.html +++ b/app/modules/telefoni/templates/log.html @@ -1046,39 +1046,38 @@ async function unlinkCase(callId) { document.addEventListener('DOMContentLoaded', async () => { initLinkContactModalEvents(); initLinkSagModalEvents(); + const userFilter = document.getElementById('filterUser'); const fromFilter = document.getElementById('filterFrom'); const toFilter = document.getElementById('filterTo'); const withoutCaseFilter = document.getElementById('filterWithoutCase'); + const tbody = document.getElementById('telefoniRows'); + const ssrCount = Number(tbody?.dataset?.initialCount || '0'); if (userFilter) userFilter.value = ''; if (fromFilter) fromFilter.value = ''; if (toFilter) toFilter.value = ''; if (withoutCaseFilter) withoutCaseFilter.checked = false; telefoniAutoResetTried = false; - telefoniFiltersArmed = false; + // Filters are already cleared above so we can arm immediately. + telefoniFiltersArmed = true; await loadUsers(); - document.getElementById('btnRefresh').addEventListener('click', () => { - telefoniFiltersArmed = true; - loadCalls(); - }); - document.getElementById('filterUser').addEventListener('change', () => { - telefoniFiltersArmed = true; - loadCalls(); - }); - document.getElementById('filterFrom').addEventListener('change', () => { - telefoniFiltersArmed = true; - loadCalls(); - }); - document.getElementById('filterTo').addEventListener('change', () => { - telefoniFiltersArmed = true; - loadCalls(); - }); - document.getElementById('filterWithoutCase').addEventListener('change', () => { - telefoniFiltersArmed = true; - loadCalls(); - }); + + document.getElementById('btnRefresh').addEventListener('click', () => loadCalls()); + document.getElementById('filterUser').addEventListener('change', () => loadCalls()); + document.getElementById('filterFrom').addEventListener('change', () => loadCalls()); + document.getElementById('filterTo').addEventListener('change', () => loadCalls()); + document.getElementById('filterWithoutCase').addEventListener('change', () => loadCalls()); + + if (ssrCount > 0) { + // SSR already rendered rows - no need for an extra API round-trip. + // loadCalls() will fire when the user interacts with filters or Refresh. + telefoniFirstApiLoadDone = true; + return; + } + + // SSR produced no rows (DB error or truly empty) - load via JS. await loadCalls(); });