refactor and fix homepage override not correctly loaded

This commit is contained in:
yusing 2025-02-19 14:58:52 +08:00
parent 161cd84150
commit f0b04afa11
7 changed files with 19 additions and 27 deletions

View file

@ -86,7 +86,7 @@ func GetFavIcon(w http.ResponseWriter, req *http.Request) {
}
var result *fetchResult
hp := r.HomepageConfig().GetOverride()
hp := r.HomepageConfig()
if !hp.IsEmpty() && hp.Icon != nil {
if hp.Icon.IconSource == homepage.IconSourceRelative {
result = findIcon(r, req, hp.Icon.Value)

View file

@ -71,9 +71,9 @@ func SetHomePageOverrides(w http.ResponseWriter, r *http.Request) {
return
}
if params.Value {
overrides.UnhideItems(params.Which...)
overrides.UnhideItems(params.Which)
} else {
overrides.HideItems(params.Which...)
overrides.HideItems(params.Which)
}
case HomepageOverrideCategoryOrder:
var params HomepageOverrideCategoryOrderParams

View file

@ -56,8 +56,8 @@ func (item *Item) IsEmpty() bool {
return item == nil || item.IsUnset || item.ItemConfig == nil
}
func (item *Item) GetOverride() *Item {
return overrideConfigInstance.GetOverride(item)
func (item *Item) ApplyOverride() *Item {
return overrideConfigInstance.ApplyOverride(item)
}
func (c *Categories) Clear() {

View file

@ -31,6 +31,6 @@ func TestOverrideItem(t *testing.T) {
}
overrides := GetOverrideConfig()
overrides.OverrideItem(a.Alias, override)
overridden := a.GetOverride()
overridden := a.ApplyOverride()
ExpectDeepEqual(t, overridden.ItemConfig, override)
}

View file

@ -64,24 +64,16 @@ func (c *OverrideConfig) OverrideItems(items map[string]*ItemConfig) {
}
}
func (c *OverrideConfig) GetOverride(item *Item) *Item {
func (c *OverrideConfig) ApplyOverride(item *Item) *Item {
c.mu.RLock()
defer c.mu.RUnlock()
itemOverride, hasOverride := c.ItemOverrides[item.Alias]
if hasOverride {
clone := *item
clone.ItemConfig = itemOverride
clone.IsUnset = false
item = &clone
item.ItemConfig = itemOverride
item.IsUnset = false
}
if show, ok := c.ItemVisibility[item.Alias]; ok {
if !hasOverride {
clone := *item
clone.Show = show
item = &clone
} else {
item.Show = show
}
item.Show = show
}
return item
}
@ -92,7 +84,7 @@ func (c *OverrideConfig) SetCategoryOrder(key string, value int) {
c.CategoryOrder[key] = value
}
func (c *OverrideConfig) UnhideItems(keys ...string) {
func (c *OverrideConfig) UnhideItems(keys []string) {
c.mu.Lock()
defer c.mu.Unlock()
for _, key := range keys {
@ -100,7 +92,7 @@ func (c *OverrideConfig) UnhideItems(keys ...string) {
}
}
func (c *OverrideConfig) HideItems(keys ...string) {
func (c *OverrideConfig) HideItems(keys []string) {
c.mu.Lock()
defer c.mu.Unlock()
for _, key := range keys {

View file

@ -87,7 +87,6 @@ func (p *Provider) MarshalText() ([]byte, error) {
}
func (p *Provider) startRoute(parent task.Parent, r *route.Route) gperr.Error {
r.FinalizeHomepageConfig()
err := r.Start(parent)
if err != nil {
delete(p.routes, r.Alias)
@ -157,7 +156,9 @@ func (p *Provider) loadRoutes() (routes route.Routes, err gperr.Error) {
}
if r.ShouldExclude() {
delete(routes, alias)
continue
}
r.FinalizeHomepageConfig()
}
return routes, errs.Error()
}

View file

@ -369,15 +369,14 @@ func (r *Route) FinalizeHomepageConfig() {
isDocker := r.Container != nil
hp := r.Homepage
if hp.IsEmpty() {
hp = homepage.NewItem(r.Alias)
if r.Homepage.IsEmpty() {
r.Homepage = homepage.NewItem(r.Alias)
}
hp = hp.GetOverride()
hp := r.Homepage
hp.Alias = r.Alias
hp.Provider = r.Provider
r.Homepage = hp
hp = hp.ApplyOverride()
var key string
if hp.Name == "" {