diff --git a/Dashboard/Controls/AlertsHistoryContent.xaml.cs b/Dashboard/Controls/AlertsHistoryContent.xaml.cs index 9741b2aa..132cb1d8 100644 --- a/Dashboard/Controls/AlertsHistoryContent.xaml.cs +++ b/Dashboard/Controls/AlertsHistoryContent.xaml.cs @@ -23,6 +23,8 @@ namespace PerformanceMonitorDashboard.Controls { public partial class AlertsHistoryContent : UserControl { + public event EventHandler? AlertsDismissed; + private List _allAlerts = new(); /* Column filter state */ @@ -219,6 +221,7 @@ private void DismissSelected_Click(object sender, RoutedEventArgs e) service.HideAlerts(keys); LoadAlerts(); + AlertsDismissed?.Invoke(this, EventArgs.Empty); } private void DismissAll_Click(object sender, RoutedEventArgs e) @@ -247,6 +250,7 @@ private void DismissAll_Click(object sender, RoutedEventArgs e) service.HideAllAlerts(hoursBack > 0 ? hoursBack : 8760, serverName); LoadAlerts(); + AlertsDismissed?.Invoke(this, EventArgs.Empty); } #endregion diff --git a/Dashboard/MainWindow.xaml.cs b/Dashboard/MainWindow.xaml.cs index 9b8d6488..fb49ecc0 100644 --- a/Dashboard/MainWindow.xaml.cs +++ b/Dashboard/MainWindow.xaml.cs @@ -606,6 +606,7 @@ private void OpenAlertsTab() } _alertsHistoryContent = new AlertsHistoryContent(); + _alertsHistoryContent.AlertsDismissed += (_, _) => UpdateAlertBadge(); var headerPanel = new StackPanel { Orientation = Orientation.Horizontal }; var headerText = new TextBlock @@ -1568,6 +1569,15 @@ private void AcknowledgeServerAlerts_Click(object sender, RoutedEventArgs e) { serverTab.UpdateBadges(null, _alertStateService); } + + // Hide alerts in the email alert log so the sidebar badge updates + var server = _serverManager.GetAllServers().FirstOrDefault(s => s.Id == serverId); + if (server != null) + { + _emailAlertService.HideAllAlerts(8760, server.DisplayName); + UpdateAlertBadge(); + _alertsHistoryContent?.RefreshAlerts(); + } } }