FIX: edit pages for contents could not be reached bc of trtailing slash error

This commit is contained in:
Simon Martens
2026-01-24 14:36:17 +01:00
parent 87dc77e990
commit a869dd8676
15 changed files with 116 additions and 29 deletions

View File

@@ -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)

View File

@@ -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 {