diff options
| author | Peter Stone <thepeterstone@gmail.com> | 2026-07-18 09:38:26 +0000 |
|---|---|---|
| committer | Peter Stone <thepeterstone@gmail.com> | 2026-07-18 09:38:26 +0000 |
| commit | 92909ebed5df68908f32c899de1e480f8d7fb01f (patch) | |
| tree | 15fe3e0d69c2967d0b449101ff2384187b239c4e /web/templates/settings.html | |
| parent | f08f06bef47aac2c9effb4cec650d99c2deb2dd7 (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 'web/templates/settings.html')
| -rw-r--r-- | web/templates/settings.html | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/web/templates/settings.html b/web/templates/settings.html index a955f64..3bb143c 100644 --- a/web/templates/settings.html +++ b/web/templates/settings.html @@ -264,6 +264,55 @@ {{end}} </div> </section> + + <!-- Maintenance Buckets Section --> + <section class="mb-12"> + <h2 class="text-xl font-medium text-white mb-6 pb-2 border-b border-white/10">Maintenance Buckets</h2> + {{template "buckets-section" .}} + <form class="mt-4 flex flex-wrap gap-3 p-4 bg-slate-900/40 rounded-xl border border-white/5" hx-post="/settings/buckets" hx-target="#buckets-list" hx-swap="outerHTML" hx-on::after-request="if(event.detail.successful) this.reset()"> + <input type="text" name="name" placeholder="Bucket name" required + class="flex-1 bg-slate-950 border border-white/10 rounded-lg px-4 py-2 text-sm focus:ring-1 focus:ring-blue-500 outline-none"> + <input type="number" name="cycle_days" placeholder="Cycle (days)" required min="1" + class="w-32 bg-slate-950 border border-white/10 rounded-lg px-4 py-2 text-sm focus:ring-1 focus:ring-blue-500 outline-none"> + <input type="number" name="pick_n" placeholder="Pick N" required min="1" + class="w-28 bg-slate-950 border border-white/10 rounded-lg px-4 py-2 text-sm focus:ring-1 focus:ring-blue-500 outline-none"> + <button type="submit" class="bg-blue-600 hover:bg-blue-500 text-white px-6 py-2 rounded-lg text-sm font-medium transition-colors">Create Bucket</button> + </form> + </section> + + <!-- Projects Section (read-only) --> + <section class="mb-12"> + <h2 class="text-xl font-medium text-white mb-6 pb-2 border-b border-white/10">Projects</h2> + <div class="grid gap-2 sm:grid-cols-2 lg:grid-cols-3"> + {{if .Projects}} + {{range .Projects}} + <div class="card flex items-center gap-3 py-2"> + <span class="w-3 h-3 rounded-full flex-shrink-0" style="background-color: {{.Color}}"></span> + <span class="text-sm text-slate-200 truncate">{{.Name}}</span> + </div> + {{end}} + {{else}} + <div class="card col-span-full text-center text-slate-500 py-6 text-sm italic">No projects yet.</div> + {{end}} + </div> + </section> + + <!-- Labels Section (read-only) --> + <section class="mb-12"> + <h2 class="text-xl font-medium text-white mb-6 pb-2 border-b border-white/10">Labels</h2> + <div class="grid gap-2 sm:grid-cols-2 lg:grid-cols-3"> + {{if .Labels}} + {{range .Labels}} + <div class="card flex items-center gap-3 py-2"> + <span class="w-3 h-3 rounded-full flex-shrink-0" style="background-color: {{.Color}}"></span> + <span class="text-sm text-slate-200 truncate">{{.Name}}</span> + </div> + {{end}} + {{else}} + <div class="card col-span-full text-center text-slate-500 py-6 text-sm italic">No labels assigned a color yet.</div> + {{end}} + </div> + </section> </div> </body> </html> |
