component.DummyMenuItem: Force early replacement

This commit is contained in:
Tom Wiesing 2023-02-03 15:12:52 +01:00
parent 2466238388
commit a7309d5268
No known key found for this signature in database
7 changed files with 75 additions and 27 deletions

View file

@ -47,14 +47,19 @@ func (admin *Admin) components(ctx context.Context) http.Handler {
})
}
var (
instanceCrumb = component.DummyMenuItem()
ingredientsCrumb = component.DummyMenuItem()
)
func (admin *Admin) ingredients(ctx context.Context) http.Handler {
tpl := analTemplate.Prepare(
admin.Dependencies.Templating,
templating.Crumbs(
component.MenuItem{Title: "Admin", Path: "/admin/"},
component.MenuItem{Title: "Instances", Path: "/admin/instance/"},
component.DummyMenuItem,
component.DummyMenuItem,
instanceCrumb,
ingredientsCrumb,
),
)
@ -70,8 +75,8 @@ func (admin *Admin) ingredients(ctx context.Context) http.Handler {
return ac, nil, err
}
funcs = []templating.FlagFunc{
templating.ReplaceCrumb(2, component.MenuItem{Title: "Instance", Path: template.URL("/admin/instance/" + slug)}),
templating.ReplaceCrumb(3, component.MenuItem{Title: "Ingredients", Path: template.URL("/admin/instance/" + slug + "/ingredients/")}),
templating.ReplaceCrumb(instanceCrumb, component.MenuItem{Title: "Instance", Path: template.URL("/admin/instance/" + slug)}),
templating.ReplaceCrumb(ingredientsCrumb, component.MenuItem{Title: "Ingredients", Path: template.URL("/admin/instance/" + slug + "/ingredients/")}),
templating.Title(instance.Name() + " - Ingredients"),
}

View file

@ -41,14 +41,19 @@ type grantsContext struct {
Drupals []string // unusued drupal usernames
}
var (
instancePageCrumb = component.DummyMenuItem()
grantsPageCrumb = component.DummyMenuItem()
)
func (admin *Admin) grants(ctx context.Context) http.Handler {
tpl := grantsTemplate.Prepare(
admin.Dependencies.Templating,
templating.Crumbs(
component.MenuItem{Title: "Admin", Path: "/admin/"},
component.MenuItem{Title: "Instances", Path: "/admin/instance/"},
component.DummyMenuItem,
component.DummyMenuItem,
instancePageCrumb,
grantsPageCrumb,
),
)
@ -137,8 +142,8 @@ func (gc *grantsContext) use(r *http.Request, slug string, admin *Admin) (funcs
// replace the functions
funcs = []templating.FlagFunc{
templating.ReplaceCrumb(2, component.MenuItem{Title: "Instance", Path: template.URL("/admin/instance/" + slug)}),
templating.ReplaceCrumb(3, component.MenuItem{Title: "Grants", Path: template.URL("/admin/instance/" + slug + "/grants/")}),
templating.ReplaceCrumb(instancePageCrumb, component.MenuItem{Title: "Instance", Path: template.URL("/admin/instance/" + slug)}),
templating.ReplaceCrumb(grantsPageCrumb, component.MenuItem{Title: "Grants", Path: template.URL("/admin/instance/" + slug + "/grants/")}),
templating.Title(gc.Instance.Slug + " - Grants"),
}
return funcs, nil

View file

@ -31,17 +31,23 @@ type instanceContext struct {
Info status.WissKI
}
var (
instancesPageCrumb = component.DummyMenuItem()
grantsAction = component.DummyMenuItem()
ingredientsAction = component.DummyMenuItem()
)
func (admin *Admin) instance(ctx context.Context) http.Handler {
tpl := instanceTemplate.Prepare(
admin.Dependencies.Templating,
templating.Crumbs(
component.MenuItem{Title: "Admin", Path: "/admin/"},
component.MenuItem{Title: "Instances", Path: "/admin/instance/"},
component.DummyMenuItem,
instancesPageCrumb,
),
templating.Actions(
component.DummyMenuItem,
component.DummyMenuItem,
grantsAction,
ingredientsAction,
),
)
@ -65,9 +71,9 @@ func (admin *Admin) instance(ctx context.Context) http.Handler {
}
funcs = []templating.FlagFunc{
templating.ReplaceCrumb(2, component.MenuItem{Title: "Instance", Path: template.URL("/admin/instance/" + slug)}),
templating.ReplaceAction(0, component.MenuItem{Title: "Grants", Path: template.URL("/admin/grants/" + slug)}),
templating.ReplaceAction(1, component.MenuItem{Title: "Ingredients", Path: template.URL("/admin/ingredients/" + slug), Priority: component.SmallButton}),
templating.ReplaceCrumb(instancesPageCrumb, component.MenuItem{Title: "Instance", Path: template.URL("/admin/instance/" + slug)}),
templating.ReplaceAction(grantsAction, component.MenuItem{Title: "Grants", Path: template.URL("/admin/grants/" + slug)}),
templating.ReplaceAction(ingredientsAction, component.MenuItem{Title: "Ingredients", Path: template.URL("/admin/ingredients/" + slug), Priority: component.SmallButton}),
templating.Title(instance.Slug),
}