Compare commits

...

View file

@ -242,7 +242,7 @@ state + applied dirs; `POST /purge-tombstone/{name}`).
### SCH3DUL3S tab
Anything that fires at a future time. Operator-set schedules
go through the creation form at the top; agent self-paced
are created inline in the table (last row); agent self-paced
reminders surface at the bottom as a sibling list (#460
they share enough conceptual ground to live together).
@ -278,18 +278,15 @@ active = `targets_remove`, checked-not-originally-active =
`✕` button cancels the whole schedule
(`POST /api/schedules/{id}/cancel`).
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
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
`GET /api/schedules`. No backend changes for the table layout
— it renders entirely from existing `schedulesState` +
`containersState`.