mirror of
https://github.com/yusing/godoxy.git
synced 2025-05-20 12:42:34 +02:00
refactor and fix homepage override not correctly loaded
This commit is contained in:
parent
161cd84150
commit
f0b04afa11
7 changed files with 19 additions and 27 deletions
|
@ -86,7 +86,7 @@ func GetFavIcon(w http.ResponseWriter, req *http.Request) {
|
||||||
}
|
}
|
||||||
|
|
||||||
var result *fetchResult
|
var result *fetchResult
|
||||||
hp := r.HomepageConfig().GetOverride()
|
hp := r.HomepageConfig()
|
||||||
if !hp.IsEmpty() && hp.Icon != nil {
|
if !hp.IsEmpty() && hp.Icon != nil {
|
||||||
if hp.Icon.IconSource == homepage.IconSourceRelative {
|
if hp.Icon.IconSource == homepage.IconSourceRelative {
|
||||||
result = findIcon(r, req, hp.Icon.Value)
|
result = findIcon(r, req, hp.Icon.Value)
|
||||||
|
|
|
@ -71,9 +71,9 @@ func SetHomePageOverrides(w http.ResponseWriter, r *http.Request) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if params.Value {
|
if params.Value {
|
||||||
overrides.UnhideItems(params.Which...)
|
overrides.UnhideItems(params.Which)
|
||||||
} else {
|
} else {
|
||||||
overrides.HideItems(params.Which...)
|
overrides.HideItems(params.Which)
|
||||||
}
|
}
|
||||||
case HomepageOverrideCategoryOrder:
|
case HomepageOverrideCategoryOrder:
|
||||||
var params HomepageOverrideCategoryOrderParams
|
var params HomepageOverrideCategoryOrderParams
|
||||||
|
|
|
@ -56,8 +56,8 @@ func (item *Item) IsEmpty() bool {
|
||||||
return item == nil || item.IsUnset || item.ItemConfig == nil
|
return item == nil || item.IsUnset || item.ItemConfig == nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (item *Item) GetOverride() *Item {
|
func (item *Item) ApplyOverride() *Item {
|
||||||
return overrideConfigInstance.GetOverride(item)
|
return overrideConfigInstance.ApplyOverride(item)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Categories) Clear() {
|
func (c *Categories) Clear() {
|
||||||
|
|
|
@ -31,6 +31,6 @@ func TestOverrideItem(t *testing.T) {
|
||||||
}
|
}
|
||||||
overrides := GetOverrideConfig()
|
overrides := GetOverrideConfig()
|
||||||
overrides.OverrideItem(a.Alias, override)
|
overrides.OverrideItem(a.Alias, override)
|
||||||
overridden := a.GetOverride()
|
overridden := a.ApplyOverride()
|
||||||
ExpectDeepEqual(t, overridden.ItemConfig, override)
|
ExpectDeepEqual(t, overridden.ItemConfig, override)
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,25 +64,17 @@ 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()
|
c.mu.RLock()
|
||||||
defer c.mu.RUnlock()
|
defer c.mu.RUnlock()
|
||||||
itemOverride, hasOverride := c.ItemOverrides[item.Alias]
|
itemOverride, hasOverride := c.ItemOverrides[item.Alias]
|
||||||
if hasOverride {
|
if hasOverride {
|
||||||
clone := *item
|
item.ItemConfig = itemOverride
|
||||||
clone.ItemConfig = itemOverride
|
item.IsUnset = false
|
||||||
clone.IsUnset = false
|
|
||||||
item = &clone
|
|
||||||
}
|
}
|
||||||
if show, ok := c.ItemVisibility[item.Alias]; ok {
|
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
|
return item
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -92,7 +84,7 @@ func (c *OverrideConfig) SetCategoryOrder(key string, value int) {
|
||||||
c.CategoryOrder[key] = value
|
c.CategoryOrder[key] = value
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *OverrideConfig) UnhideItems(keys ...string) {
|
func (c *OverrideConfig) UnhideItems(keys []string) {
|
||||||
c.mu.Lock()
|
c.mu.Lock()
|
||||||
defer c.mu.Unlock()
|
defer c.mu.Unlock()
|
||||||
for _, key := range keys {
|
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()
|
c.mu.Lock()
|
||||||
defer c.mu.Unlock()
|
defer c.mu.Unlock()
|
||||||
for _, key := range keys {
|
for _, key := range keys {
|
||||||
|
|
|
@ -87,7 +87,6 @@ func (p *Provider) MarshalText() ([]byte, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *Provider) startRoute(parent task.Parent, r *route.Route) gperr.Error {
|
func (p *Provider) startRoute(parent task.Parent, r *route.Route) gperr.Error {
|
||||||
r.FinalizeHomepageConfig()
|
|
||||||
err := r.Start(parent)
|
err := r.Start(parent)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
delete(p.routes, r.Alias)
|
delete(p.routes, r.Alias)
|
||||||
|
@ -157,7 +156,9 @@ func (p *Provider) loadRoutes() (routes route.Routes, err gperr.Error) {
|
||||||
}
|
}
|
||||||
if r.ShouldExclude() {
|
if r.ShouldExclude() {
|
||||||
delete(routes, alias)
|
delete(routes, alias)
|
||||||
|
continue
|
||||||
}
|
}
|
||||||
|
r.FinalizeHomepageConfig()
|
||||||
}
|
}
|
||||||
return routes, errs.Error()
|
return routes, errs.Error()
|
||||||
}
|
}
|
||||||
|
|
|
@ -369,15 +369,14 @@ func (r *Route) FinalizeHomepageConfig() {
|
||||||
|
|
||||||
isDocker := r.Container != nil
|
isDocker := r.Container != nil
|
||||||
|
|
||||||
hp := r.Homepage
|
if r.Homepage.IsEmpty() {
|
||||||
if hp.IsEmpty() {
|
r.Homepage = homepage.NewItem(r.Alias)
|
||||||
hp = homepage.NewItem(r.Alias)
|
|
||||||
}
|
}
|
||||||
hp = hp.GetOverride()
|
|
||||||
|
hp := r.Homepage
|
||||||
hp.Alias = r.Alias
|
hp.Alias = r.Alias
|
||||||
hp.Provider = r.Provider
|
hp.Provider = r.Provider
|
||||||
|
hp = hp.ApplyOverride()
|
||||||
r.Homepage = hp
|
|
||||||
|
|
||||||
var key string
|
var key string
|
||||||
if hp.Name == "" {
|
if hp.Name == "" {
|
||||||
|
|
Loading…
Add table
Reference in a new issue