From 048693481f27c15d893e6835390e07346f473c2e Mon Sep 17 00:00:00 2001 From: "Joseph.Rawlings" Date: Wed, 3 Dec 2025 17:48:04 -0500 Subject: [PATCH] feat: add network analysis link to firewall logs and enhance statistics filtering for improved user navigation and interaction --- .../Servers/Proxmox/views/firewall.blade.php | 37 +++++++++++++++ .../Proxmox/views/statistics.blade.php | 45 ++++++++++++++++++- 2 files changed, 81 insertions(+), 1 deletion(-) diff --git a/extensions/Servers/Proxmox/views/firewall.blade.php b/extensions/Servers/Proxmox/views/firewall.blade.php index 77e454a63..595b6e116 100644 --- a/extensions/Servers/Proxmox/views/firewall.blade.php +++ b/extensions/Servers/Proxmox/views/firewall.blade.php @@ -347,6 +347,28 @@ padding-top: 0.5rem; border-top: 1px solid rgba(var(--color-neutral), 0.3); } + + /* Network Analysis Link */ + .firewall-network-link { + display: inline-flex; + align-items: center; + gap: 0.375rem; + padding: 0.25rem 0.5rem; + font-size: 0.7rem; + font-weight: 500; + border-radius: 0.375rem; + background-color: rgba(var(--color-primary), 0.1); + color: rgba(var(--color-primary), 1); + border: 1px solid rgba(var(--color-primary), 0.3); + text-decoration: none; + transition: all 0.15s ease; + white-space: nowrap; + } + .firewall-network-link:hover { + background-color: rgba(var(--color-primary), 0.2); + border-color: rgba(var(--color-primary), 0.5); + color: rgba(var(--color-primary), 1); + }
@@ -1067,6 +1089,9 @@ + + Actions + @@ -1438,6 +1463,18 @@
+ + + + + diff --git a/extensions/Servers/Proxmox/views/statistics.blade.php b/extensions/Servers/Proxmox/views/statistics.blade.php index 88fb7c06a..923c6ec35 100644 --- a/extensions/Servers/Proxmox/views/statistics.blade.php +++ b/extensions/Servers/Proxmox/views/statistics.blade.php @@ -3834,10 +3834,32 @@ }; window.tableFilterSort = function(tableId) { + // Check for network_search query parameter for the connections table + var initialSearch = ''; + if (tableId === 'network-connections-table') { + var urlParams = new URLSearchParams(window.location.search); + var networkSearch = urlParams.get('network_search'); + if (networkSearch) { + initialSearch = networkSearch; + // Clean up URL by removing the query parameter (optional) + // window.history.replaceState({}, document.title, window.location.pathname + window.location.hash); + } + } + var component = { - search: '', + search: initialSearch, sortColumn: null, sortDirection: 'asc', + init: function() { + // If there's an initial search, trigger the filter after a short delay + // to ensure the table is fully rendered + if (this.search) { + var self = this; + setTimeout(function() { + self.filterTable(); + }, 100); + } + }, filterTable: function() { var table = document.getElementById(tableId); if (!table) { @@ -4809,6 +4831,27 @@ console.log('Network Analysis loaded successfully on page load, refresh flag cleared for server ' + serverId); } }, 2000); + + // Handle cross-reference from firewall logs + // If URL has network_search parameter and #network-analysis-card hash, scroll to it + var urlParams = new URLSearchParams(window.location.search); + var networkSearch = urlParams.get('network_search'); + if (networkSearch && window.location.hash === '#network-analysis-card') { + // Wait a bit for page to fully render, then scroll to Network Analysis + setTimeout(function() { + var networkCard = document.getElementById('network-analysis-card'); + if (networkCard) { + networkCard.scrollIntoView({ behavior: 'smooth', block: 'start' }); + + // Flash highlight the card briefly to draw attention + networkCard.style.transition = 'box-shadow 0.3s ease'; + networkCard.style.boxShadow = '0 0 0 3px rgba(var(--color-primary), 0.5)'; + setTimeout(function() { + networkCard.style.boxShadow = ''; + }, 2000); + } + }, 500); + } }); // Listen for 502 retry events from Core Router API