diff --git a/appview/knots/knots.go b/appview/knots/knots.go --- a/appview/knots/knots.go +++ b/appview/knots/knots.go @@ -39,6 +39,19 @@ Logger *slog.Logger Knotstream *eventconsumer.Consumer } +type tab = map[string]any + +var ( + knotsTabs []tab = []tab{ + {"Name": "profile", "Icon": "user"}, + {"Name": "keys", "Icon": "key"}, + {"Name": "emails", "Icon": "mail"}, + {"Name": "notifications", "Icon": "bell"}, + {"Name": "knots", "Icon": "volleyball"}, + {"Name": "spindles", "Icon": "spool"}, + } +) + func (k *Knots) Router() http.Handler { r := chi.NewRouter() @@ -70,6 +83,8 @@ k.Pages.Knots(w, pages.KnotsParams{ LoggedInUser: user, Registrations: registrations, + Tabs: knotsTabs, + Tab: "knots", }) } @@ -132,6 +147,8 @@ Registration: ®istration, Members: members, Repos: repoMap, IsOwner: true, + Tabs: knotsTabs, + Tab: "knots", }) } @@ -596,7 +613,7 @@ return } // success - k.Pages.HxRedirect(w, fmt.Sprintf("/knots/%s", domain)) + k.Pages.HxRedirect(w, fmt.Sprintf("/settings/knots/%s", domain)) } func (k *Knots) removeMember(w http.ResponseWriter, r *http.Request) { diff --git a/appview/pages/pages.go b/appview/pages/pages.go --- a/appview/pages/pages.go +++ b/appview/pages/pages.go @@ -407,6 +407,8 @@ type KnotsParams struct { LoggedInUser *oauth.User Registrations []models.Registration + Tabs []map[string]any + Tab string } func (p *Pages) Knots(w io.Writer, params KnotsParams) error { @@ -419,6 +421,8 @@ Registration *models.Registration Members []string Repos map[string][]models.Repo IsOwner bool + Tabs []map[string]any + Tab string } func (p *Pages) Knot(w io.Writer, params KnotParams) error { @@ -436,6 +440,8 @@ type SpindlesParams struct { LoggedInUser *oauth.User Spindles []models.Spindle + Tabs []map[string]any + Tab string } func (p *Pages) Spindles(w io.Writer, params SpindlesParams) error { @@ -444,6 +450,8 @@ } type SpindleListingParams struct { models.Spindle + Tabs []map[string]any + Tab string } func (p *Pages) SpindleListing(w io.Writer, params SpindleListingParams) error { @@ -455,6 +463,8 @@ LoggedInUser *oauth.User Spindle models.Spindle Members []string Repos map[string][]models.Repo + Tabs []map[string]any + Tab string } func (p *Pages) SpindleDashboard(w io.Writer, params SpindleDashboardParams) error { diff --git a/appview/pages/templates/knots/dashboard.html b/appview/pages/templates/knots/dashboard.html --- a/appview/pages/templates/knots/dashboard.html +++ b/appview/pages/templates/knots/dashboard.html @@ -1,9 +1,25 @@ -{{ define "title" }}{{ .Registration.Domain }} · knots{{ end }} +{{ define "title" }}{{ .Registration.Domain }} · {{ .Tab }} settings{{ end }} {{ define "content" }} -
Settings
+A knot hosts repository data. Learn how to register your own knot.
+A knot hosts repository data. Learn how to register your own knot.
A knot hosts repository data and handles Git operations. - You can also register your own knot. + You can also register your own knot.
Settings
+Settings
+- Spindles are small CI runners. -
++ Spindles are small CI runners. +
Enter the hostname of your spindle to get started.
- + +