- Replace 12-item flat menu with 4-item main menu: Health Check, Export support bundle, Settings, Exit - Add Health Check screen (Lenovo-style): per-component checkboxes (GPU/MEM/DISK/CPU), Quick/Standard/Express modes, Run All, letter hotkeys G/M/S/C/R/A/1/2/3 - Add two-column main screen: left = menu, right = hardware panel with colored PASS/FAIL/CANCEL/N/A status per component; Tab/→ switches focus, Enter opens component detail - Add app.LoadHardwarePanel() + ComponentDetailResult() reading audit JSON and SAT summary.txt files - Move Network/Services/audit actions into Settings submenu - Export: support bundle only (remove separate audit JSON export) - Delete screen_acceptance.go; add screen_health_check.go, screen_settings.go, app/panel.go - Add BMC + CPU stress-ng tests to backlog - Update bible submodule - Rewrite tui_test.go for new screen/action structure Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
28 lines
599 B
Go
28 lines
599 B
Go
package tui
|
|
|
|
import (
|
|
tea "github.com/charmbracelet/bubbletea"
|
|
)
|
|
|
|
func (m model) handleMainMenu() (tea.Model, tea.Cmd) {
|
|
switch m.cursor {
|
|
case 0: // Health Check
|
|
return m.enterHealthCheck()
|
|
case 1: // Export support bundle
|
|
m.pendingAction = actionExportBundle
|
|
m.busy = true
|
|
m.busyTitle = "Export support bundle"
|
|
return m, func() tea.Msg {
|
|
targets, err := m.app.ListRemovableTargets()
|
|
return exportTargetsMsg{targets: targets, err: err}
|
|
}
|
|
case 2: // Settings
|
|
m.screen = screenSettings
|
|
m.cursor = 0
|
|
return m, nil
|
|
case 3: // Exit
|
|
return m, tea.Quit
|
|
}
|
|
return m, nil
|
|
}
|