Refactor: Menu
This commit is contained in:
parent
a7309d5268
commit
7f820224ec
16 changed files with 103 additions and 92 deletions
|
|
@ -63,6 +63,19 @@ func (admin *Admin) Menu(r *http.Request) []component.MenuItem {
|
|||
}
|
||||
}
|
||||
|
||||
var (
|
||||
menuAdmin = component.MenuItem{Title: "Admin", Path: "/admin/"}
|
||||
menuComponents = component.MenuItem{Title: "Components", Path: "/admin/components/", Priority: component.SmallButton}
|
||||
|
||||
menuUsers = component.MenuItem{Title: "Users", Path: "/admin/users/"}
|
||||
menuUserCreate = component.MenuItem{Title: "Create User", Path: "/admin/users/create/"}
|
||||
|
||||
menuInstances = component.MenuItem{Title: "Instances", Path: "/admin/instance/"}
|
||||
menuInstance = component.DummyMenuItem()
|
||||
menuGrants = component.DummyMenuItem()
|
||||
menuIngredients = component.DummyMenuItem()
|
||||
)
|
||||
|
||||
func (admin *Admin) HandleRoute(ctx context.Context, route string) (handler http.Handler, err error) {
|
||||
|
||||
router := httprouter.New()
|
||||
|
|
|
|||
|
|
@ -34,9 +34,9 @@ func (admin *Admin) components(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.MenuItem{Title: "Components", Path: "/admin/components/"},
|
||||
menuAdmin,
|
||||
menuInstances,
|
||||
menuComponents,
|
||||
),
|
||||
templating.Title("Components"),
|
||||
)
|
||||
|
|
@ -47,19 +47,14 @@ 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/"},
|
||||
instanceCrumb,
|
||||
ingredientsCrumb,
|
||||
menuAdmin,
|
||||
menuInstances,
|
||||
menuInstance,
|
||||
menuIngredients,
|
||||
),
|
||||
)
|
||||
|
||||
|
|
@ -75,8 +70,8 @@ func (admin *Admin) ingredients(ctx context.Context) http.Handler {
|
|||
return ac, nil, err
|
||||
}
|
||||
funcs = []templating.FlagFunc{
|
||||
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.ReplaceCrumb(menuInstance, component.MenuItem{Title: "Instance", Path: template.URL("/admin/instance/" + slug)}),
|
||||
templating.ReplaceCrumb(menuIngredients, component.MenuItem{Title: "Ingredients", Path: template.URL("/admin/instance/" + slug + "/ingredients/")}),
|
||||
templating.Title(instance.Name() + " - Ingredients"),
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -41,19 +41,14 @@ 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/"},
|
||||
instancePageCrumb,
|
||||
grantsPageCrumb,
|
||||
menuAdmin,
|
||||
menuInstances,
|
||||
menuInstance,
|
||||
menuGrants,
|
||||
),
|
||||
)
|
||||
|
||||
|
|
@ -142,8 +137,8 @@ func (gc *grantsContext) use(r *http.Request, slug string, admin *Admin) (funcs
|
|||
|
||||
// replace the functions
|
||||
funcs = []templating.FlagFunc{
|
||||
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.ReplaceCrumb(menuInstance, component.MenuItem{Title: "Instance", Path: template.URL("/admin/instance/" + slug)}),
|
||||
templating.ReplaceCrumb(menuGrants, component.MenuItem{Title: "Grants", Path: template.URL("/admin/instance/" + slug + "/grants/")}),
|
||||
templating.Title(gc.Instance.Slug + " - Grants"),
|
||||
}
|
||||
return funcs, nil
|
||||
|
|
|
|||
|
|
@ -85,6 +85,10 @@ var indexTemplate = templating.Parse[indexContext](
|
|||
|
||||
templating.Title("Admin"),
|
||||
templating.Assets(assets.AssetsAdmin),
|
||||
|
||||
templating.Crumbs(
|
||||
menuAdmin,
|
||||
),
|
||||
)
|
||||
|
||||
//go:embed "html/instances.html"
|
||||
|
|
@ -106,13 +110,10 @@ type indexContext struct {
|
|||
func (admin *Admin) index(ctx context.Context) http.Handler {
|
||||
tpl := indexTemplate.Prepare(
|
||||
admin.Dependencies.Templating,
|
||||
templating.Crumbs(
|
||||
component.MenuItem{Title: "Admin", Path: "/admin/"},
|
||||
),
|
||||
templating.Actions(
|
||||
component.MenuItem{Title: "Users", Path: "/admin/users/"},
|
||||
component.MenuItem{Title: "Instances", Path: "/admin/instance/"},
|
||||
component.MenuItem{Title: "Components", Path: "/admin/components/", Priority: component.SmallButton},
|
||||
menuUsers,
|
||||
menuInstances,
|
||||
menuComponents,
|
||||
),
|
||||
)
|
||||
|
||||
|
|
@ -126,8 +127,8 @@ func (admin *Admin) instances(ctx context.Context) http.Handler {
|
|||
tpl := instancesTemplate.Prepare(
|
||||
admin.Dependencies.Templating,
|
||||
templating.Crumbs(
|
||||
component.MenuItem{Title: "Admin", Path: "/admin/"},
|
||||
component.MenuItem{Title: "Instances", Path: "/admin/instance/"},
|
||||
menuAdmin,
|
||||
menuInstances,
|
||||
),
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -31,23 +31,17 @@ 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/"},
|
||||
instancesPageCrumb,
|
||||
menuAdmin,
|
||||
menuInstances,
|
||||
menuInstance,
|
||||
),
|
||||
templating.Actions(
|
||||
grantsAction,
|
||||
ingredientsAction,
|
||||
menuGrants,
|
||||
menuIngredients,
|
||||
),
|
||||
)
|
||||
|
||||
|
|
@ -71,9 +65,9 @@ func (admin *Admin) instance(ctx context.Context) http.Handler {
|
|||
}
|
||||
|
||||
funcs = []templating.FlagFunc{
|
||||
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.ReplaceCrumb(menuInstance, component.MenuItem{Title: "Instance", Path: template.URL("/admin/instance/" + slug)}),
|
||||
templating.ReplaceAction(menuGrants, component.MenuItem{Title: "Grants", Path: template.URL("/admin/grants/" + slug)}),
|
||||
templating.ReplaceAction(menuIngredients, component.MenuItem{Title: "Ingredients", Path: template.URL("/admin/ingredients/" + slug), Priority: component.SmallButton}),
|
||||
|
||||
templating.Title(instance.Slug),
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ import (
|
|||
|
||||
_ "embed"
|
||||
|
||||
"github.com/FAU-CDI/wisski-distillery/internal/dis/component"
|
||||
"github.com/FAU-CDI/wisski-distillery/internal/dis/component/auth"
|
||||
"github.com/FAU-CDI/wisski-distillery/internal/dis/component/server/assets"
|
||||
"github.com/FAU-CDI/wisski-distillery/internal/dis/component/server/templating"
|
||||
|
|
@ -36,11 +35,11 @@ func (admin *Admin) users(ctx context.Context) http.Handler {
|
|||
tpl := usersTemplate.Prepare(
|
||||
admin.Dependencies.Templating,
|
||||
templating.Crumbs(
|
||||
component.MenuItem{Title: "Admin", Path: "/admin/"},
|
||||
component.MenuItem{Title: "Users", Path: "/admin/users/"},
|
||||
menuAdmin,
|
||||
menuUsers,
|
||||
),
|
||||
templating.Actions(
|
||||
component.MenuItem{Title: "Create New", Path: "/admin/users/create/"},
|
||||
menuUserCreate,
|
||||
),
|
||||
)
|
||||
|
||||
|
|
@ -75,9 +74,9 @@ func (admin *Admin) createUser(ctx context.Context) http.Handler {
|
|||
tpl := userCreateTemplate.Prepare(
|
||||
admin.Dependencies.Templating,
|
||||
templating.Crumbs(
|
||||
component.MenuItem{Title: "Admin", Path: "/admin/"},
|
||||
component.MenuItem{Title: "Users", Path: "/admin/users"},
|
||||
component.MenuItem{Title: "Create", Path: "/admin/users/create"},
|
||||
menuAdmin,
|
||||
menuUsers,
|
||||
menuUserCreate,
|
||||
),
|
||||
)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue