diff --git a/controllers/almanach.go b/controllers/almanach.go index dc5f080..eafda2f 100644 --- a/controllers/almanach.go +++ b/controllers/almanach.go @@ -1,7 +1,9 @@ package controllers import ( + "net/http" "sort" + "strings" "sync" "github.com/Theodor-Springmann-Stiftung/musenalm/app" @@ -16,9 +18,9 @@ import ( const ( URL_ALMANACH = "/almanach/{id}/" - URL_ALMANACH_CONTENTS = "/almanach/{id}/contents/" + URL_ALMANACH_CONTENTS = "/almanach/{id}/contents-view/" TEMPLATE_ALMANACH = "/almanach/" - TEMPLATE_ALMANACH_CONTENTS = "/almanach/contents/" + TEMPLATE_ALMANACH_CONTENTS = "/almanach/contents-view/" ) // Simple in-memory cache for sorted entries @@ -92,6 +94,11 @@ func (p *AlmanachPage) Setup(router *router.Router[*core.RequestEvent], ia pagem func (p *AlmanachPage) GET(engine *templating.Engine, app core.App) HandleFunc { return func(e *core.RequestEvent) error { + path := e.Request.URL.Path + if strings.Contains(path, "/contents/") && strings.HasSuffix(path, "/edit/") { + return e.Redirect(http.StatusTemporaryRedirect, strings.TrimSuffix(path, "/")) + } + id := e.Request.PathValue("id") data := make(map[string]any) filters := NewBeitraegeFilterParameters(e) diff --git a/controllers/almanach_contents_edit.go b/controllers/almanach_contents_edit.go index 61e618c..6f99f20 100644 --- a/controllers/almanach_contents_edit.go +++ b/controllers/almanach_contents_edit.go @@ -17,21 +17,21 @@ import ( "github.com/Theodor-Springmann-Stiftung/musenalm/pagemodels" "github.com/Theodor-Springmann-Stiftung/musenalm/templating" "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/tools/router" "github.com/pocketbase/pocketbase/tools/filesystem" + "github.com/pocketbase/pocketbase/tools/router" ) const ( - URL_ALMANACH_CONTENTS_EDIT = "contents/edit" - URL_ALMANACH_CONTENTS_NEW = "contents/new" - URL_ALMANACH_CONTENTS_ITEM_EDIT = "contents/{contentMusenalmId}/edit" - URL_ALMANACH_CONTENTS_DELETE = "contents/delete" - URL_ALMANACH_CONTENTS_EDIT_EXTENT = "contents/edit/extent" - URL_ALMANACH_CONTENTS_UPLOAD = "contents/upload" - URL_ALMANACH_CONTENTS_DELETE_SCAN = "contents/scan/delete" - TEMPLATE_ALMANACH_CONTENTS_EDIT = "/almanach/contents/edit/" - TEMPLATE_ALMANACH_CONTENTS_ITEM_EDIT = "/almanach/contents/edit_item/" - TEMPLATE_ALMANACH_CONTENTS_IMAGES_PANEL = "/almanach/contents/images_panel/" + URL_ALMANACH_CONTENTS_EDIT = "contents/edit" + URL_ALMANACH_CONTENTS_NEW = "contents/new" + URL_ALMANACH_CONTENTS_ITEM_EDIT = "contents/{contentMusenalmId}/edit" + URL_ALMANACH_CONTENTS_DELETE = "contents/delete" + URL_ALMANACH_CONTENTS_EDIT_EXTENT = "contents/edit/extent" + URL_ALMANACH_CONTENTS_UPLOAD = "contents/upload" + URL_ALMANACH_CONTENTS_DELETE_SCAN = "contents/scan/delete" + TEMPLATE_ALMANACH_CONTENTS_EDIT = "/contents/edit/" + TEMPLATE_ALMANACH_CONTENTS_ITEM_EDIT = "/contents/edit_item/" + TEMPLATE_ALMANACH_CONTENTS_IMAGES_PANEL = "/contents/images_panel/" ) func init() { @@ -955,9 +955,9 @@ type contentAgentRelationPayload struct { } type contentAgentRelationsPayload struct { - Relations []contentAgentRelationPayload + Relations []contentAgentRelationPayload NewRelations []contentAgentRelationPayload - DeletedIDs []string + DeletedIDs []string } type contentAgentRender struct { diff --git a/views/routes/almanach/body.gohtml b/views/routes/almanach/body.gohtml index a985698..247bb47 100644 --- a/views/routes/almanach/body.gohtml +++ b/views/routes/almanach/body.gohtml @@ -63,7 +63,7 @@ {{- if $model.result.HasContents -}}