@@ -21,11 +21,13 @@ const (
2121)
2222
2323var (
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