diff --git a/internal/tui/tab_sites.go b/internal/tui/tab_sites.go index 2ece926..ac89ce1 100644 --- a/internal/tui/tab_sites.go +++ b/internal/tui/tab_sites.go @@ -29,9 +29,9 @@ func typeIcon(siteType string, collapsed bool) string { return "◆" case "group": if collapsed { - return "" + return "▶" } - return "" + return "▼" default: return "·" } diff --git a/internal/tui/tui.go b/internal/tui/tui.go index 5ad3a06..a992ca6 100644 --- a/internal/tui/tui.go +++ b/internal/tui/tui.go @@ -764,8 +764,14 @@ func (m Model) View() string { } func (m Model) viewDashboard() string { + allSites := m.engine.GetAllSites() + totalMonitors := 0 downCount := 0 - for _, s := range m.sites { + for _, s := range allSites { + if s.Type == "group" { + continue + } + totalMonitors++ if !s.Paused && !m.isMonitorInMaintenance(s.ID) && (s.Status == "DOWN" || s.Status == "SSL EXP") { downCount++ } @@ -780,8 +786,8 @@ func (m Model) viewDashboard() string { var sitesLabel string if downCount > 0 { sitesLabel = fmt.Sprintf("Sites (%d↓)", downCount) - } else if len(m.sites) > 0 { - sitesLabel = fmt.Sprintf("Sites (%d)", len(m.sites)) + } else if totalMonitors > 0 { + sitesLabel = fmt.Sprintf("Sites (%d)", totalMonitors) } else { sitesLabel = "Sites" } @@ -845,12 +851,12 @@ func (m Model) viewDashboard() string { } } - upCount := len(m.sites) - downCount + upCount := totalMonitors - downCount var upStr string if downCount > 0 { - upStr = dangerStyle.Render(fmt.Sprintf("%d/%d UP", upCount, len(m.sites))) + upStr = dangerStyle.Render(fmt.Sprintf("%d/%d UP", upCount, totalMonitors)) } else { - upStr = specialStyle.Render(fmt.Sprintf("%d/%d UP", upCount, len(m.sites))) + upStr = specialStyle.Render(fmt.Sprintf("%d/%d UP", upCount, totalMonitors)) } statusParts := []string{upStr} if len(m.nodes) > 0 {