From ef20af0d927985217b56168a91477494af5abfbd Mon Sep 17 00:00:00 2001 From: Sam Rolfe Date: Mon, 10 Aug 2026 14:47:07 +1000 Subject: [PATCH] fix: user photo upload now INSIDE the main edit form (one Save = file+fields, no JS); admin resource FQNs corrected (relative Filament\Forms refs = panel-wide 500) --- frontend/internal/handlers/tags.go | 24 +++++++++++++++++++++++- frontend/templates/tag-edit.html | 22 +++++----------------- 2 files changed, 28 insertions(+), 18 deletions(-) diff --git a/frontend/internal/handlers/tags.go b/frontend/internal/handlers/tags.go index 84a0725..c7e7111 100644 --- a/frontend/internal/handlers/tags.go +++ b/frontend/internal/handlers/tags.go @@ -110,11 +110,33 @@ func (a *App) EditTag(w http.ResponseWriter, r *http.Request) { return } + // Optional file upload: if a photo file is present, store it and use it; + // otherwise fall back to the photo_url text value. + photoURL := strings.TrimSpace(r.FormValue("photo_url")) + if err := r.ParseMultipartForm(10 << 20); err == nil { + if file, header, ferr := r.FormFile("photo"); ferr == nil { + ct := header.Header.Get("Content-Type") + if strings.HasPrefix(ct, "image/") && a.Storage != nil { + ext := strings.ToLower(filepath.Ext(header.Filename)) + if ext == "" { + ext = ".jpg" + } + key := fmt.Sprintf("tags/%d%s", tag.ID, ext) + if perr := a.Storage.Put(r.Context(), key, file, header.Size, ct); perr == nil { + photoURL = "/photos/" + key + } + file.Close() + } else if ferr == nil { + file.Close() + } + } + } + params := db.UpdateTagDetailsParams{ ID: tag.ID, ItemType: textOrNil(strings.TrimSpace(r.FormValue("item_type"))), Description: textOrNil(strings.TrimSpace(r.FormValue("description"))), - PhotoUrl: textOrNil(strings.TrimSpace(r.FormValue("photo_url"))), + PhotoUrl: textOrNil(photoURL), Phone: textOrNil(strings.TrimSpace(r.FormValue("phone"))), Address: textOrNil(strings.TrimSpace(r.FormValue("address"))), Notes: textOrNil(strings.TrimSpace(r.FormValue("notes"))), diff --git a/frontend/templates/tag-edit.html b/frontend/templates/tag-edit.html index 7b3831e..4427bd5 100644 --- a/frontend/templates/tag-edit.html +++ b/frontend/templates/tag-edit.html @@ -8,7 +8,7 @@ {{if .Error}}

{{.Error}}

{{end}} -
+
- + + {{if .Data.PhotoUrl.Valid}}Current photo{{end}} + +

Choose a photo and press Save — or paste an image URL below.

@@ -50,20 +53,5 @@
- -
-

Photo

-
- {{if .Data.PhotoUrl.Valid}}Current photo{{end}} -
-
-
- - - Uploading… -
-

Upload a photo — it shows on your public tag page and in the admin.

-
-
{{end}}