From 1046537429dc3e75218770a86288ddcd94acd015 Mon Sep 17 00:00:00 2001 From: Jared Vititoe Date: Fri, 20 Mar 2026 10:41:57 -0400 Subject: [PATCH] Move ASCII banner into boot sequence, fix remaining UI issues MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove collapsible ASCII banner from dashboard (was cluttering the UI) - Show ASCII banner in the boot overlay on first session visit, above the boot messages, with a 400ms pause before messages begin - Add scroll fade indicator (green-tinted gradient edges) to .table-wrapper so users can see when the table is horizontally scrollable - Fix null guards for tab switcher in ticket.js (tabEl, activeBtn) - Fix Reset → RESET uppercase in AuditLogView and UserActivityView Co-Authored-By: Claude Sonnet 4.6 --- assets/css/dashboard.css | 12 ++++++- assets/js/ticket.js | 9 +++-- views/DashboardView.php | 62 +++++++++++--------------------- views/admin/AuditLogView.php | 2 +- views/admin/UserActivityView.php | 2 +- 5 files changed, 39 insertions(+), 48 deletions(-) diff --git a/assets/css/dashboard.css b/assets/css/dashboard.css index c88dc08..70660d0 100644 --- a/assets/css/dashboard.css +++ b/assets/css/dashboard.css @@ -4650,8 +4650,18 @@ table td:nth-child(4) { overflow-y: visible; margin: 0; padding: 0; - /* Subtle scroll hint via gradient on right edge */ -webkit-overflow-scrolling: touch; + /* Scroll fade indicator: fades out right edge when content overflows */ + background-image: + linear-gradient(to right, var(--bg-primary), var(--bg-primary)), + linear-gradient(to right, var(--bg-primary), var(--bg-primary)), + linear-gradient(to right, rgba(0,255,65,0.12), transparent), + linear-gradient(to left, rgba(0,255,65,0.12), transparent); + background-position: left center, right center, left center, right center; + background-repeat: no-repeat; + background-color: var(--bg-primary); + background-size: 20px 100%, 20px 100%, 12px 100%, 12px 100%; + background-attachment: local, local, scroll, scroll; } @media (max-width: 768px) { diff --git a/assets/js/ticket.js b/assets/js/ticket.js index cb7e0d6..d8a48b3 100644 --- a/assets/js/ticket.js +++ b/assets/js/ticket.js @@ -548,10 +548,13 @@ function showTab(tabName) { }); // Show selected tab and activate its button - document.getElementById(`${tabName}-tab`).style.display = 'block'; + const tabEl = document.getElementById(`${tabName}-tab`); + if (tabEl) tabEl.style.display = 'block'; const activeBtn = document.querySelector(`.tab-btn[data-tab="${tabName}"]`); - activeBtn.classList.add('active'); - activeBtn.setAttribute('aria-selected', 'true'); + if (activeBtn) { + activeBtn.classList.add('active'); + activeBtn.setAttribute('aria-selected', 'true'); + } // Load attachments when tab is shown if (tabName === 'attachments') { diff --git a/views/DashboardView.php b/views/DashboardView.php index 663e009..18be29b 100644 --- a/views/DashboardView.php +++ b/views/DashboardView.php @@ -33,18 +33,18 @@ $nonce = SecurityHeadersMiddleware::getNonce();
+

     
-
@@ -888,9 +869,6 @@ $nonce = SecurityHeadersMiddleware::getNonce(); saveSettings(); break; - case 'toggle-banner': - toggleBanner(); - break; case 'toggle-sidebar': toggleSidebar(); diff --git a/views/admin/AuditLogView.php b/views/admin/AuditLogView.php index 094c253..01c0e82 100644 --- a/views/admin/AuditLogView.php +++ b/views/admin/AuditLogView.php @@ -78,7 +78,7 @@ $nonce = SecurityHeadersMiddleware::getNonce();
- Reset + RESET
diff --git a/views/admin/UserActivityView.php b/views/admin/UserActivityView.php index 42cff2a..65155d2 100644 --- a/views/admin/UserActivityView.php +++ b/views/admin/UserActivityView.php @@ -52,7 +52,7 @@ $nonce = SecurityHeadersMiddleware::getNonce(); - Reset + RESET