Consolidate Item Types, Users, and Settings into one Settings section

The navbar previously listed Item Types, Users, and Settings as three
separate top-level links. They now live under a single "Settings" entry
in the navbar, backed by one unified section with a left sub-nav (General,
Item Types, Users) shared across all three areas so it reads as one
settings panel rather than three disconnected admin pages.

- New templates/partials/settings_nav.html shared sub-nav, included by
  settings.html, itemtypes_list/form.html, and users_list/form.html.
- Routes moved under /settings/: /item-types* -> /settings/item-types*,
  /users* -> /settings/users*. All redirects, form actions, and the
  item-type custom-field JS base action updated to match.
This commit is contained in:
Owen
2026-08-17 15:30:50 -05:00
parent 4ceb1cbc03
commit 62bdcb2428
10 changed files with 186 additions and 135 deletions
+21 -21
View File
@@ -59,27 +59,9 @@ func (a *App) Router() http.Handler {
mux.HandleFunc("GET /export/assets.csv", a.requireLogin(a.handleExportCSV))
mux.HandleFunc("POST /import/assets.csv", a.requireAdmin(a.handleImportCSV))
// Item types (admin, traditional pages)
mux.HandleFunc("GET /item-types", a.requireAdmin(a.handleItemTypesList))
mux.HandleFunc("GET /item-types/new", a.requireAdmin(a.handleItemTypeNewForm))
mux.HandleFunc("POST /item-types", a.requireAdmin(a.handleItemTypeCreate))
mux.HandleFunc("GET /item-types/{id}/edit", a.requireAdmin(a.handleItemTypeEditForm))
mux.HandleFunc("POST /item-types/{id}", a.requireAdmin(a.handleItemTypeUpdate))
mux.HandleFunc("POST /item-types/{id}/delete", a.requireAdmin(a.handleItemTypeDelete))
mux.HandleFunc("POST /item-types/{id}/fields", a.requireAdmin(a.handleFieldCreate))
mux.HandleFunc("POST /item-types/{id}/fields/{fieldID}", a.requireAdmin(a.handleFieldUpdate))
mux.HandleFunc("POST /item-types/{id}/fields/{fieldID}/delete", a.requireAdmin(a.handleFieldDelete))
// Users (admin, traditional pages)
mux.HandleFunc("GET /users", a.requireAdmin(a.handleUsersList))
mux.HandleFunc("GET /users/new", a.requireAdmin(a.handleUserNewForm))
mux.HandleFunc("POST /users", a.requireAdmin(a.handleUserCreate))
mux.HandleFunc("GET /users/{id}/edit", a.requireAdmin(a.handleUserEditForm))
mux.HandleFunc("POST /users/{id}", a.requireAdmin(a.handleUserUpdate))
mux.HandleFunc("POST /users/{id}/password", a.requireAdmin(a.handleUserPassword))
mux.HandleFunc("POST /users/{id}/delete", a.requireAdmin(a.handleUserDelete))
// Settings (admin, traditional page)
// Settings (admin, traditional pages) - Item Types, Users, and general
// settings all live under one unified /settings section with shared
// sub-navigation, rather than as separate top-level nav items.
mux.HandleFunc("GET /settings", a.requireAdmin(a.handleSettingsPage))
mux.HandleFunc("POST /settings/general", a.requireAdmin(a.handleSettingsGeneral))
mux.HandleFunc("POST /settings/statuses", a.requireAdmin(a.handleStatusCreate))
@@ -87,6 +69,24 @@ func (a *App) Router() http.Handler {
mux.HandleFunc("POST /settings/statuses/{id}/delete", a.requireAdmin(a.handleStatusDelete))
mux.HandleFunc("POST /settings/statuses/{id}/reorder", a.requireAdmin(a.handleStatusReorder))
mux.HandleFunc("GET /settings/item-types", a.requireAdmin(a.handleItemTypesList))
mux.HandleFunc("GET /settings/item-types/new", a.requireAdmin(a.handleItemTypeNewForm))
mux.HandleFunc("POST /settings/item-types", a.requireAdmin(a.handleItemTypeCreate))
mux.HandleFunc("GET /settings/item-types/{id}/edit", a.requireAdmin(a.handleItemTypeEditForm))
mux.HandleFunc("POST /settings/item-types/{id}", a.requireAdmin(a.handleItemTypeUpdate))
mux.HandleFunc("POST /settings/item-types/{id}/delete", a.requireAdmin(a.handleItemTypeDelete))
mux.HandleFunc("POST /settings/item-types/{id}/fields", a.requireAdmin(a.handleFieldCreate))
mux.HandleFunc("POST /settings/item-types/{id}/fields/{fieldID}", a.requireAdmin(a.handleFieldUpdate))
mux.HandleFunc("POST /settings/item-types/{id}/fields/{fieldID}/delete", a.requireAdmin(a.handleFieldDelete))
mux.HandleFunc("GET /settings/users", a.requireAdmin(a.handleUsersList))
mux.HandleFunc("GET /settings/users/new", a.requireAdmin(a.handleUserNewForm))
mux.HandleFunc("POST /settings/users", a.requireAdmin(a.handleUserCreate))
mux.HandleFunc("GET /settings/users/{id}/edit", a.requireAdmin(a.handleUserEditForm))
mux.HandleFunc("POST /settings/users/{id}", a.requireAdmin(a.handleUserUpdate))
mux.HandleFunc("POST /settings/users/{id}/password", a.requireAdmin(a.handleUserPassword))
mux.HandleFunc("POST /settings/users/{id}/delete", a.requireAdmin(a.handleUserDelete))
return a.loadSession(mux)
}