From beaea0288cf3def5e61e025ca3e8d60ee42459d9 Mon Sep 17 00:00:00 2001 From: Christian Date: Wed, 18 Mar 2026 09:29:57 +0100 Subject: [PATCH] release: v2.2.60 enforce active sag tab top view --- RELEASE_NOTES_v2.2.60.md | 17 +++++++++++++++ app/modules/sag/templates/detail.html | 31 ++++++++------------------- 2 files changed, 26 insertions(+), 22 deletions(-) create mode 100644 RELEASE_NOTES_v2.2.60.md diff --git a/RELEASE_NOTES_v2.2.60.md b/RELEASE_NOTES_v2.2.60.md new file mode 100644 index 0000000..70bfb90 --- /dev/null +++ b/RELEASE_NOTES_v2.2.60.md @@ -0,0 +1,17 @@ +# Release Notes v2.2.60 + +Dato: 2026-03-18 + +## Fokus +Korrekt top-visning af aktiv fane paa SAG detaljesiden. + +## Aendringer +- Tvang korrekt tab-pane synlighed i `#caseTabsContent`: + - inaktive faner skjules (`display: none`) + - kun aktiv fane vises (`display: block`) +- Fjernet tidligere scroll/DOM-workaround til fanevisning. +- Resultat: aktiv fane vises i toppen under fanebjaelken uden tom top-sektion. + +## Berorte filer +- app/modules/sag/templates/detail.html +- RELEASE_NOTES_v2.2.60.md diff --git a/app/modules/sag/templates/detail.html b/app/modules/sag/templates/detail.html index 3f81f15..708e1ee 100644 --- a/app/modules/sag/templates/detail.html +++ b/app/modules/sag/templates/detail.html @@ -634,6 +634,15 @@ border-bottom: 1px solid rgba(15, 76, 117, 0.08); } + #caseTabsContent > .tab-pane { + display: none; + } + + #caseTabsContent > .tab-pane.active, + #caseTabsContent > .tab-pane.show.active { + display: block; + } + .todo-step-item { padding: 0.38rem 0.5rem; } @@ -2208,25 +2217,6 @@ let selectedRelationCaseId = null; const caseTypeKey = "{{ (case.template_key or case.type or 'ticket')|lower }}"; - function scrollToCaseTabContent(tabId) { - if (!tabId) return; - - const pane = document.getElementById(tabId); - if (!pane) return; - - const firstContent = pane.querySelector( - '.card, .row, .alert, .table-responsive, .list-group, form, [data-module]' - ); - const target = firstContent || pane; - - const navbar = document.querySelector('.navbar'); - const navHeight = navbar ? navbar.getBoundingClientRect().height : 0; - const offset = navHeight + 24; - const top = target.getBoundingClientRect().top + window.pageYOffset - offset; - - window.scrollTo({ top: Math.max(0, top), behavior: 'smooth' }); - } - window.moduleDisplayNames = { 'relations': 'Relationer', 'call-history': 'Opkaldshistorik', @@ -2324,8 +2314,6 @@ } catch (tabLoadError) { console.error('Tab data reload failed:', tabLoadError); } - - requestAnimationFrame(() => scrollToCaseTabContent(tabId)); }); } @@ -7723,7 +7711,6 @@ if (tabBtn) { setTimeout(() => { bootstrap.Tab.getOrCreateInstance(tabBtn).show(); - scrollToCaseTabContent(tabParam); }, 300); } }