Skip to content

Commit 93c37f3

Browse files
committed
feat: add configureable default for collapsing statuses
1 parent ef6159e commit 93c37f3

File tree

6 files changed

+77
-481
lines changed

6 files changed

+77
-481
lines changed

config/ui/ui.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,13 @@ const (
2121
)
2222

2323
var (
24-
defaultDarkMode = true
24+
defaultDarkMode = true
25+
defaultCollapse = true
2526

2627
ErrButtonValidationFailed = errors.New("invalid button configuration: missing required name or link")
2728
ErrInvalidDefaultSortBy = errors.New("invalid default-sort-by value: must be 'name', 'group', or 'health'")
2829
ErrInvalidDefaultFilterBy = errors.New("invalid default-filter-by value: must be 'none', 'failing', or 'unstable'")
30+
ErrInvalidDefaultCollapse = errors.New("invalid default-collapse value: must be a boolean")
2931
)
3032

3133
// Config is the configuration for the UI of Gatus
@@ -40,6 +42,7 @@ type Config struct {
4042
DarkMode *bool `yaml:"dark-mode,omitempty"` // DarkMode is a flag to enable dark mode by default
4143
DefaultSortBy string `yaml:"default-sort-by,omitempty"` // DefaultSortBy is the default sort option ('name', 'group', 'health')
4244
DefaultFilterBy string `yaml:"default-filter-by,omitempty"` // DefaultFilterBy is the default filter option ('none', 'failing', 'unstable')
45+
DefaultCollapse *bool `yaml:"default-collapse,omitempty"` // DefaultCollapse is a flag to enable/disable collapsing of groups by default
4346

4447
//////////////////////////////////////////////
4548
// Non-configurable - used for UI rendering //
@@ -80,6 +83,7 @@ func GetDefaultConfig() *Config {
8083
DarkMode: &defaultDarkMode,
8184
DefaultSortBy: defaultSortBy,
8285
DefaultFilterBy: defaultFilterBy,
86+
DefaultCollapse: &defaultCollapse,
8387
MaximumNumberOfResults: storage.DefaultMaximumNumberOfResults,
8488
}
8589
}
@@ -117,6 +121,9 @@ func (cfg *Config) ValidateAndSetDefaults() error {
117121
} else if cfg.DefaultFilterBy != "none" && cfg.DefaultFilterBy != "failing" && cfg.DefaultFilterBy != "unstable" {
118122
return ErrInvalidDefaultFilterBy
119123
}
124+
if cfg.DefaultCollapse == nil {
125+
cfg.DefaultCollapse = &defaultCollapse
126+
}
120127
for _, btn := range cfg.Buttons {
121128
if err := btn.Validate(); err != nil {
122129
return err

0 commit comments

Comments
 (0)