marky

Lightweight bookmarking + plaintext archive
Log | Files | Refs | README | LICENSE

commit 4f695c1aa3003f3c16bfba6a6b33c300f5150e1b
parent d0eb9efb62481b139b047dab20ca54a6c95aed1f
Author: David Eisinger <[email protected]>
Date:   Fri, 10 Oct 2025 10:42:14 -0400

Add ref to edit form

Diffstat:
Minternal/api.go | 7++++++-
Minternal/web/app.js | 2++
Minternal/web/index.html | 1+
Minternal/web/user.html | 1+
4 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/internal/api.go b/internal/api.go @@ -837,7 +837,12 @@ func NewHandlerWithConfig(db *DB, cfg HandlerConfig) (http.Handler, error) { } } - updated, err := db.UpdateBookmark(r.Context(), id64, req.URL, req.Title, desc, pub) + // Include referrer when provided; otherwise preserve existing value + newRef := existing.Referrer.String + if req.Referrer != nil { + newRef = *req.Referrer + } + updated, err := db.UpdateBookmarkWithReferrer(r.Context(), id64, req.URL, req.Title, desc, pub, newRef) if err != nil { log.Printf("update bookmark error: %v", err) http.Error(w, "internal server error", http.StatusInternalServerError) diff --git a/internal/web/app.js b/internal/web/app.js @@ -125,6 +125,7 @@ createApp({ b.editUrl = b.url; b.editTitle = b.title; b.editDescription = b.description || ""; + b.editReferrer = b.referrer || ""; b.editPublic = !!b.public; b.saving = false; }, @@ -138,6 +139,7 @@ createApp({ url: b.editUrl, title: b.editTitle, description: b.editDescription, + referrer: b.editReferrer, public: !!b.editPublic, }; const res = await fetch(`/bookmarks/${b.id}`, { diff --git a/internal/web/index.html b/internal/web/index.html @@ -95,6 +95,7 @@ <label>URL <input v-model.trim="b.editUrl" type="url" required /></label> <label>Title <input v-model.trim="b.editTitle" type="text" required /></label> <label>Description <textarea v-model.trim="b.editDescription" rows="2"></textarea></label> + <label>Referrer <input v-model.trim="b.editReferrer" type="url" placeholder="https://site-that-linked-here.example" /></label> <label class="inline"><input type="checkbox" v-model="b.editPublic" /> Public</label> <div class="actions"> <button @click="saveEdit(b)" :disabled="b.saving">{{ b.saving ? 'Saving…' : 'Save' }}</button> diff --git a/internal/web/user.html b/internal/web/user.html @@ -52,6 +52,7 @@ <label>URL <input v-model.trim="b.editUrl" type="url" required /></label> <label>Title <input v-model.trim="b.editTitle" type="text" required /></label> <label>Description <textarea v-model.trim="b.editDescription" rows="2"></textarea></label> + <label>Referrer <input v-model.trim="b.editReferrer" type="url" placeholder="https://site-that-linked-here.example" /></label> <label class="inline"><input type="checkbox" v-model="b.editPublic" /> Public</label> <div class="actions"> <button @click="saveEdit(b)" :disabled="b.saving">{{ b.saving ? 'Saving…' : 'Save' }}</button>