mirror of
https://github.com/yusing/godoxy.git
synced 2025-05-20 04:42:33 +02:00
37 lines
1,014 B
Go
37 lines
1,014 B
Go
package homepage
|
|
|
|
type (
|
|
HomePageConfig map[string]HomePageCategory
|
|
HomePageCategory []HomePageItem
|
|
|
|
HomePageItem struct {
|
|
Name string `yaml:"name" json:"name"`
|
|
Icon string `yaml:"icon" json:"icon,omitempty"` // URL or unicodes
|
|
Category string `yaml:"category" json:"category"`
|
|
Description string `yaml:"description" json:"description,omitempty"`
|
|
WidgetConfig map[string]any `yaml:",flow" json:"widget_config,omitempty"`
|
|
}
|
|
)
|
|
|
|
func NewHomePageConfig() HomePageConfig {
|
|
return HomePageConfig(make(map[string]HomePageCategory))
|
|
}
|
|
|
|
func HomePageItemDefault() *HomePageItem {
|
|
return &HomePageItem{
|
|
Name: "Docker",
|
|
Category: "Uncategorized",
|
|
WidgetConfig: make(map[string]any),
|
|
}
|
|
}
|
|
|
|
func (c *HomePageConfig) Clear() {
|
|
*c = make(HomePageConfig)
|
|
}
|
|
|
|
func (c HomePageConfig) Add(item HomePageItem) {
|
|
if c[item.Category] == nil {
|
|
c[item.Category] = make(HomePageCategory, 0)
|
|
}
|
|
c[item.Category] = append(c[item.Category], item)
|
|
}
|