Compare commits

...

2 Commits

Author SHA1 Message Date
Calmcacil
1c03a706d1 bd sync: 2026-01-12 23:12:04 2026-01-12 23:12:04 +01:00
Calmcacil
a3c2828ec2 Integrate theme system across all screens 2026-01-12 23:11:53 +01:00
3 changed files with 12 additions and 2 deletions

View File

@@ -31,7 +31,7 @@
{"id":"wg-admin-hln","title":"Improve empty state messages with actionable guidance and call-to-action","description":"When no clients exist or search returns no results, provide clear guidance on next steps. Add tips like 'Press [a] to add your first client', 'Check spelling', 'Try shorter search term'. Make empty states welcoming and helpful.","status":"closed","priority":1,"issue_type":"feature","owner":"Calmcacil@Raion","created_at":"2026-01-12T21:40:04.504693809+01:00","created_by":"Calmcacil","updated_at":"2026-01-12T23:03:04.93789438+01:00","closed_at":"2026-01-12T23:03:04.93789438+01:00","close_reason":"Implemented improved empty state messages with actionable guidance including tips on adding clients, checking spelling, and shorter search terms"}
{"id":"wg-admin-hzl","title":"Add visual status icons (● Online/● Offline) for better scanning","description":"Connection status is currently just text ('Connected'/'Disconnected'). Add visual indicators with colored circles/icons for faster scanning. Green ● for connected, red ● for disconnected. This improves visual hierarchy and scanability.","status":"closed","priority":1,"issue_type":"feature","owner":"Calmcacil@Raion","created_at":"2026-01-12T21:40:04.554974884+01:00","created_by":"Calmcacil","updated_at":"2026-01-12T23:06:57.446848784+01:00","closed_at":"2026-01-12T23:06:57.446848784+01:00","close_reason":"Added visual status icons (● Online/● Offline) for better scanning. Green ● for connected, red ● for disconnected in both detail view and list table."}
{"id":"wg-admin-iqs","title":"Add navigation breadcrumbs to all screens for context","description":"Currently no breadcrumbs or navigation context in screens. Users can't tell where they are in the navigation hierarchy (list \u003e details, add \u003e form). Add breadcrumb at top of each screen showing navigation path.","status":"in_progress","priority":2,"issue_type":"feature","owner":"Calmcacil@Raion","created_at":"2026-01-12T21:40:23.210874178+01:00","created_by":"Calmcacil","updated_at":"2026-01-12T22:59:07.202238466+01:00"}
{"id":"wg-admin-jho","title":"Integrate theme system across all screens","description":"The theme system (internal/tui/theme/theme.go) with StylePrimary, StyleSuccess, StyleError is fully implemented but all screens hardcode colors instead. Replace hardcoded colors with theme references for consistency and to enable theme switching functionality.","status":"in_progress","priority":0,"issue_type":"feature","owner":"Calmcacil@Raion","created_at":"2026-01-12T21:39:36.098683097+01:00","created_by":"Calmcacil","updated_at":"2026-01-12T22:58:51.807174004+01:00"}
{"id":"wg-admin-jho","title":"Integrate theme system across all screens","description":"The theme system (internal/tui/theme/theme.go) with StylePrimary, StyleSuccess, StyleError is fully implemented but all screens hardcode colors instead. Replace hardcoded colors with theme references for consistency and to enable theme switching functionality.","status":"closed","priority":0,"issue_type":"feature","owner":"Calmcacil@Raion","created_at":"2026-01-12T21:39:36.098683097+01:00","created_by":"Calmcacil","updated_at":"2026-01-12T23:11:59.854042387+01:00","closed_at":"2026-01-12T23:11:59.854042387+01:00","close_reason":"Theme system integration complete - all screens and components now use theme.StylePrimary, StyleSuccess, StyleError, StyleWarning, StyleMuted, StyleTitle, StyleSubtitle, and StyleHelpKey instead of hardcoded colors"}
{"id":"wg-admin-k3q","title":"Implement Everforest color scheme theme","description":"Add Everforest color scheme to the theme registry. Use the Everforest dark variant: Background #272e33, Primary (blue) #7fbbb3, Success (green) #a7c080, Warning (yellow) #dbbc7f, Error (red) #e67e80, Muted #414b50.","status":"closed","priority":1,"issue_type":"feature","owner":"Calmcacil@Raion","created_at":"2026-01-12T19:07:40.303542104+01:00","created_by":"Calmcacil","updated_at":"2026-01-12T19:08:50.629948797+01:00","closed_at":"2026-01-12T19:08:50.629948797+01:00","close_reason":"Implemented Dracula and Everforest color schemes and set Everforest as default theme"}
{"id":"wg-admin-ka8","title":"Generate QR codes for clients","description":"Generate ANSI-colored QR codes from client configs using qrterminal library. Support both inline and fullscreen QR display modes. Handle terminal resize events for optimal QR rendering.","status":"closed","priority":2,"issue_type":"task","owner":"Calmcacil@Raion","created_at":"2026-01-12T17:03:30.273562645+01:00","created_by":"Calmcacil","updated_at":"2026-01-12T17:48:32.013388859+01:00","closed_at":"2026-01-12T17:48:32.013388859+01:00","close_reason":"QR code display implemented using qrterminal. Supports inline and fullscreen modes with f toggle. Handles terminal resize events. Returns to list on q/Esc.","dependencies":[{"issue_id":"wg-admin-ka8","depends_on_id":"wg-admin-wf1","type":"blocks","created_at":"2026-01-12T17:04:36.203581002+01:00","created_by":"Calmcacil"}]}
{"id":"wg-admin-kfs","title":"Create configuration file format for WireGuard settings","description":"Design and implement /etc/wg-admin/config file to replace hardcoded values. Include: SERVER_DOMAIN, WG_PORT, VPN_IPV4_RANGE, VPN_IPV6_RANGE, WG_INTERFACE, DNS_SERVERS, and other configurable parameters. Support both file-based and environment variable override.","status":"closed","priority":2,"issue_type":"task","owner":"Calmcacil@Raion","created_at":"2026-01-12T16:27:53.148859434+01:00","created_by":"Calmcacil","updated_at":"2026-01-12T16:31:29.339557739+01:00","closed_at":"2026-01-12T16:31:29.339557739+01:00","close_reason":"Config file approach replaced with interactive prompts using 'read', with 'WGI_' prefixed environment variable overrides. No persistent config file needed."}

View File

@@ -18,7 +18,7 @@ var (
Foreground(lipgloss.Color("241")).
MarginBottom(1)
breadcrumbSeparatorStyle = lipgloss.NewStyle().
Foreground(lipgloss.Color("240"))
Foreground(lipgloss.Color("240"))
breadcrumbItemStyle = lipgloss.NewStyle().
Foreground(lipgloss.Color("241"))
breadcrumbCurrentStyle = lipgloss.NewStyle().

View File

@@ -135,7 +135,17 @@ func (s *ListScreen) Update(msg tea.Msg) (Screen, tea.Cmd) {
return s, cmd
}
func (s *ListScreen) renderBreadcrumb() string {
return components.RenderBreadcrumb([]components.BreadcrumbItem{
{Label: "Clients", ID: "list"},
})
}
// View renders the list screen
func (s *ListScreen) View() string {
breadcrumb := s.renderBreadcrumb()
func (s *ListScreen) View() string {
// Breadcrumb: Home
breadcrumb := components.RenderBreadcrumb([]components.BreadcrumbItem{