diff --git a/assets/theme.png b/assets/theme.png deleted file mode 100644 index 837ad3d..0000000 Binary files a/assets/theme.png and /dev/null differ diff --git a/internal/tui/format.go b/internal/tui/format.go index 6614f60..b177f63 100644 --- a/internal/tui/format.go +++ b/internal/tui/format.go @@ -49,13 +49,13 @@ func siteOrder(s models.Site) int { return 3 } switch s.Status { - case "DOWN", "SSL EXP": + case models.StatusDown, models.StatusSSLExp: return 0 - case "STALE": + case models.StatusStale: return 1 - case "LATE": + case models.StatusLate: return 1 - case "PENDING": + case models.StatusPending: return 3 default: return 2 diff --git a/internal/tui/tab_logs.go b/internal/tui/tab_logs.go index d411530..7e1c896 100644 --- a/internal/tui/tab_logs.go +++ b/internal/tui/tab_logs.go @@ -81,7 +81,7 @@ func (m Model) viewLogsFullscreen() string { filterLabel = m.st.subtleStyle.Render("[f] Important only") } countLabel := m.st.subtleStyle.Render(fmt.Sprintf("%d/%d", m.logShown, m.logTotal)) - footer := m.divider() + "\n " + m.st.subtleStyle.Render("[Esc] Back") + " " + filterLabel + " " + countLabel + footer := m.divider() + "\n " + m.st.subtleStyle.Render("[q/Esc] Back") + " " + filterLabel + " " + countLabel m.logViewport.Width = m.termWidth - chromePadH m.logViewport.Height = m.termHeight - 8 diff --git a/internal/tui/tab_nodes.go b/internal/tui/tab_nodes.go index f79372f..ed5944f 100644 --- a/internal/tui/tab_nodes.go +++ b/internal/tui/tab_nodes.go @@ -8,7 +8,7 @@ import ( func (m Model) viewNodesTab() string { if len(m.nodes) == 0 { - return m.emptyState("No probe nodes connected.", "") + return m.emptyState("No probe nodes connected.", "Probes auto-register on connection.") } var headers []string diff --git a/internal/tui/tab_settings.go b/internal/tui/tab_settings.go index 2b02929..4c2017c 100644 --- a/internal/tui/tab_settings.go +++ b/internal/tui/tab_settings.go @@ -7,16 +7,10 @@ import ( ) func (m Model) viewSettingsTab() string { - maxSections := 2 - if m.isAdmin { - maxSections = 3 - } - sections := []string{"Alerts", "Nodes"} if m.isAdmin { sections = append(sections, "Users") } - _ = maxSections var tabs []string for i, name := range sections { diff --git a/internal/tui/view_dashboard.go b/internal/tui/view_dashboard.go index 60bcb9a..6bcde7a 100644 --- a/internal/tui/view_dashboard.go +++ b/internal/tui/view_dashboard.go @@ -48,12 +48,15 @@ func (m Model) View() string { case stateConfirmDelete: kind := "monitor" switch m.deleteTab { - case 1: - kind = "alert" - case 4: + case tabMaint: kind = "maintenance window" - case 5: - kind = "user" + case tabSettings: + switch m.settingsSection { + case sectionAlerts: + kind = "alert" + case sectionUsers: + kind = "user" + } } msg := m.st.dangerStyle.Render(fmt.Sprintf("Delete %s \"%s\"?", kind, m.deleteName)) hint := m.st.subtleStyle.Render("[y] Confirm [n] Cancel") diff --git a/internal/tui/view_detail_inline.go b/internal/tui/view_detail_inline.go index 5f10078..a11eeae 100644 --- a/internal/tui/view_detail_inline.go +++ b/internal/tui/view_detail_inline.go @@ -57,8 +57,7 @@ func (m Model) viewDetailTwoCol(site models.Site, hist monitor.SiteHistory, widt b.WriteString(l + " " + divChar + " " + r + "\n") } - keys := m.st.subtleStyle.Render("[h] History [s] SLA [e] Edit [esc] Close") - b.WriteString(" " + keys + "\n") + b.WriteString(" " + m.detailKeys() + "\n") return lipgloss.NewStyle().Width(width).MaxWidth(width).Render(b.String()) } @@ -293,12 +292,15 @@ func (m Model) viewDetailSingleCol(site models.Site, hist monitor.SiteHistory, w b.WriteString(" " + m.st.subtleStyle.Render("30d") + " " + m.uptimeTimeline(m.detailDailyDays, timelineW) + "\n") } - keys := m.st.subtleStyle.Render("[h] History [s] SLA [e] Edit [esc] Close") - b.WriteString(" " + keys + "\n") + b.WriteString(" " + m.detailKeys() + "\n") return lipgloss.NewStyle().Width(width).MaxWidth(width).Render(b.String()) } +func (m Model) detailKeys() string { + return m.st.subtleStyle.Render("[h] History [s] SLA [e] Edit [q/Esc] Back") +} + func (m Model) fmtStatusWord(status string) string { switch status { case "DOWN": diff --git a/internal/tui/view_history.go b/internal/tui/view_history.go index 9efddcb..a06563b 100644 --- a/internal/tui/view_history.go +++ b/internal/tui/view_history.go @@ -152,7 +152,7 @@ func (m Model) viewHistoryPanel() string { var b strings.Builder header := " " + m.st.titleStyle.Render("STATE HISTORY: "+m.historySiteName) - header += " " + m.st.subtleStyle.Render("[q] Back") + header += " " + m.st.subtleStyle.Render("[q/Esc] Back") b.WriteString(header + "\n") divWidth := m.dividerWidth() diff --git a/internal/tui/view_sla.go b/internal/tui/view_sla.go index b9d7abd..f9c292b 100644 --- a/internal/tui/view_sla.go +++ b/internal/tui/view_sla.go @@ -25,7 +25,7 @@ func (m Model) viewSLAPanel() string { var b strings.Builder header := " " + m.st.titleStyle.Render("SLA REPORT: "+m.slaSiteName) - header += " " + m.st.subtleStyle.Render("[q] Back") + header += " " + m.st.subtleStyle.Render("[q/Esc] Back") b.WriteString(header + "\n") b.WriteString(m.divider() + "\n")