summaryrefslogtreecommitdiff
path: root/internal/handlers/settings.go
diff options
context:
space:
mode:
authorPeter Stone <thepeterstone@gmail.com>2026-07-18 09:38:26 +0000
committerPeter Stone <thepeterstone@gmail.com>2026-07-18 09:38:26 +0000
commit92909ebed5df68908f32c899de1e480f8d7fb01f (patch)
tree15fe3e0d69c2967d0b449101ff2384187b239c4e /internal/handlers/settings.go
parentf08f06bef47aac2c9effb4cec650d99c2deb2dd7 (diff)
Add bucket CRUD and read-only Projects/Labels to Settings page
New "Maintenance Buckets" section: create a bucket, add a pool item by title (creates the task and assigns it in one step), remove an item, delete a bucket (unbuckets its tasks rather than deleting them). New read-only Projects and Labels sections (name + color swatch) -- both are simple enough that read-only is the right call on web, per user direction, rather than duplicating the Android popup's editing UX. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EZ7ikw2ukGJFTHE3bJS7zL
Diffstat (limited to 'internal/handlers/settings.go')
-rw-r--r--internal/handlers/settings.go9
1 files changed, 9 insertions, 0 deletions
diff --git a/internal/handlers/settings.go b/internal/handlers/settings.go
index 28988b1..43fce20 100644
--- a/internal/handlers/settings.go
+++ b/internal/handlers/settings.go
@@ -17,6 +17,9 @@ func (h *Handler) HandleSettingsPage(w http.ResponseWriter, r *http.Request) {
toggles, _ := h.store.GetFeatureToggles()
syncLog, _ := h.store.GetRecentSyncLog(20)
agents, _ := h.store.GetAllAgents()
+ buckets, _ := BuildBucketSummaries(h.store)
+ projects, _ := h.store.GetProjects()
+ labels, _ := h.store.GetLabelColors()
// Group configs by source
bySource := make(map[string][]models.SourceConfig)
@@ -30,6 +33,9 @@ func (h *Handler) HandleSettingsPage(w http.ResponseWriter, r *http.Request) {
Toggles []models.FeatureToggle
SyncLog []store.SyncLogEntry
Agents []models.Agent
+ Buckets []models.BucketSummary
+ Projects []models.Project
+ Labels []models.LabelColor
CSRFToken string
WebAuthnEnabled bool
}{
@@ -38,6 +44,9 @@ func (h *Handler) HandleSettingsPage(w http.ResponseWriter, r *http.Request) {
Toggles: toggles,
SyncLog: syncLog,
Agents: agents,
+ Buckets: buckets,
+ Projects: projects,
+ Labels: labels,
CSRFToken: auth.GetCSRFTokenFromContext(r.Context()),
WebAuthnEnabled: h.WebAuthnEnabled,
}