From ee561c0823ab20a14d7eed8873876a6092c47c19 Mon Sep 17 00:00:00 2001 From: Juergen Kunz Date: Thu, 3 Jul 2025 01:50:46 +0000 Subject: [PATCH] update --- ts/monitoring/classes.metricsmanager.ts | 2 +- ts_web/appstate.ts | 11 +++++++++-- ts_web/elements/ops-dashboard.ts | 3 +++ ts_web/elements/ops-view-network.ts | 17 +++++++++-------- 4 files changed, 22 insertions(+), 11 deletions(-) diff --git a/ts/monitoring/classes.metricsmanager.ts b/ts/monitoring/classes.metricsmanager.ts index b194a8a..3cfebaf 100644 --- a/ts/monitoring/classes.metricsmanager.ts +++ b/ts/monitoring/classes.metricsmanager.ts @@ -517,6 +517,6 @@ export class MetricsManager { topIPs, totalDataTransferred, }; - }, 1000); // Use 200ms cache for more frequent updates + }, 200); // Use 200ms cache for more frequent updates } } \ No newline at end of file diff --git a/ts_web/appstate.ts b/ts_web/appstate.ts index 431acd9..c368bf0 100644 --- a/ts_web/appstate.ts +++ b/ts_web/appstate.ts @@ -415,7 +415,7 @@ async function dispatchCombinedRefreshAction() { email: true, dns: true, security: true, - network: currentView === 'network' || currentView === 'Network', // Only fetch network if on network view + network: currentView === 'network', // Only fetch network if on network view }, }); @@ -432,7 +432,7 @@ async function dispatchCombinedRefreshAction() { }); // Update network stats if included - if (combinedResponse.metrics.network && (currentView === 'network' || currentView === 'Network')) { + if (combinedResponse.metrics.network && currentView === 'network') { const network = combinedResponse.metrics.network; const connectionsByIP: { [ip: string]: number } = {}; @@ -505,6 +505,13 @@ let currentRefreshRate = 1000; // Track current refresh rate to avoid unnecessar refreshInterval = setInterval(() => { // Use combined refresh action for efficiency dispatchCombinedRefreshAction(); + + // If network view is active, also ensure we have fresh network data + const currentView = uiStatePart.getState().activeView; + if (currentView === 'network') { + // Network view needs more frequent updates, fetch directly + networkStatePart.dispatchAction(fetchNetworkStatsAction, null); + } }, uiState.refreshInterval); } } else { diff --git a/ts_web/elements/ops-dashboard.ts b/ts_web/elements/ops-dashboard.ts index 579da52..148fb9f 100644 --- a/ts_web/elements/ops-dashboard.ts +++ b/ts_web/elements/ops-dashboard.ts @@ -87,6 +87,9 @@ export class OpsDashboard extends DeesElement { { name: 'Network', element: OpsViewNetwork, + action: () => { + appstate.uiStatePart.dispatchAction(appstate.setActiveViewAction, 'network'); + }, }, { name: 'Emails', diff --git a/ts_web/elements/ops-view-network.ts b/ts_web/elements/ops-view-network.ts index 669d489..60fb458 100644 --- a/ts_web/elements/ops-view-network.ts +++ b/ts_web/elements/ops-view-network.ts @@ -66,6 +66,9 @@ export class OpsViewNetwork extends DeesElement { async connectedCallback() { await super.connectedCallback(); + // Force the activeView to be 'network' when this component connects + await appstate.uiStatePart.dispatchAction(appstate.setActiveViewAction, 'network'); + // When network view becomes visible, ensure we fetch network data await appstate.networkStatePart.dispatchAction(appstate.fetchNetworkStatsAction, null); } @@ -73,6 +76,12 @@ export class OpsViewNetwork extends DeesElement { async disconnectedCallback() { await super.disconnectedCallback(); this.stopTrafficUpdateTimer(); + + // When network view disconnects, reset activeView if it's still 'network' + const currentView = appstate.uiStatePart.getState().activeView; + if (currentView === 'network') { + await appstate.uiStatePart.dispatchAction(appstate.setActiveViewAction, 'overview'); + } } private subscribeToStateParts() { @@ -183,13 +192,6 @@ export class OpsViewNetwork extends DeesElement { ]; public render() { - console.log('Network view render - chart data points:', { - inPoints: this.trafficDataIn.length, - outPoints: this.trafficDataOut.length, - lastInValue: this.trafficDataIn[this.trafficDataIn.length - 1]?.y, - lastOutValue: this.trafficDataOut[this.trafficDataOut.length - 1]?.y - }); - return html` Network Activity @@ -527,7 +529,6 @@ export class OpsViewNetwork extends DeesElement { private updateTrafficData() { // This method is called when network data updates // The actual chart updates are handled by the timer calling addTrafficDataPoint() - console.log('UpdateTrafficData called - network data updated'); } private startTrafficUpdateTimer() {