commit 4f695c1aa3003f3c16bfba6a6b33c300f5150e1b
parent d0eb9efb62481b139b047dab20ca54a6c95aed1f
Author: David Eisinger <[email protected]>
Date: Fri, 10 Oct 2025 10:42:14 -0400
Add ref to edit form
Diffstat:
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>