diff --git a/docs/web-ui.md b/docs/web-ui.md index ada63831..e1c827f2 100644 --- a/docs/web-ui.md +++ b/docs/web-ui.md @@ -242,7 +242,7 @@ state + applied dirs; `POST /purge-tombstone/{name}`). ### SCH3DUL3S tab Anything that fires at a future time. Operator-set schedules -are created inline in the table (last row); agent self-paced +go through the creation form at the top; agent self-paced reminders surface at the bottom as a sibling list (#460 — they share enough conceptual ground to live together). @@ -278,15 +278,18 @@ active = `targets_remove`, checked-not-originally-active = `✕` button cancels the whole schedule (`POST /api/schedules/{id}/cancel`). -The table's last row is a permanent inline creation row (#564): -inputs live directly in table cells (targets as checkboxes, -body textarea that expands on focus, datetime-local pre-filled -to 5 minutes from now, mini d/h/m/s number inputs (blank or -all-zero = one-shot), description). Click `+` to POST to -`/api/schedules` as JSON (or `⌫` to clear the half-filled row); -carry-state preserves partially-typed inputs across re-renders. The tab pill shows the count of active -schedules (at least one live target not yet cancelled). -Refreshed on tab activation and after each submit/cancel. Backed by +An inline creation form above the table lets the operator +queue a new schedule directly: targets (multi-select +checkboxes drawn from live container names + `operator` + +`manager`), prompt body (textarea), first-fire datetime-local +(pre-filled to 5 minutes from now), an interval composer +(#466 — preset chips for common durations + separate +d/h/m/s number fields with a live "↻ every …" preview; +all-zero = one-shot), and an optional human-readable +description. On submit the form POSTs to `/api/schedules` as +JSON; the tab pill shows the count of active schedules (at +least one live target not yet cancelled). Refreshed on tab +activation and after each submit/cancel. Backed by `GET /api/schedules`. No backend changes for the table layout — it renders entirely from existing `schedulesState` + `containersState`.