/schedules lists the controller's scheduled prompts as cards: name as the title, the agents it fires for, the message, its cadence and next fire. Edit turns a card into its own form; pause, resume and remove act in place, and + schedule opens an empty form. The form sends only what changed, so a rename never moves the fire times, and warns when the start or the repeat does. Filters reuse the shared card filter bar. Adds a TextAreaField to the ui kit, and an upcoming mode on RelativeTime so a next-fire time reads "in 5m". Needs the controller's /api/schedules routes.
36 lines
863 B
CSS
36 lines
863 B
CSS
/* <ScheduleCard> content layout — the bordered container is `Card`'s. */
|
|
.ui-schedule-card {
|
|
gap: 0.5em;
|
|
}
|
|
.ui-schedule-card-head {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
gap: 0.5em;
|
|
}
|
|
.ui-schedule-card-name {
|
|
margin: 0;
|
|
font-size: 1.1em;
|
|
/* Takes the leftover width so the badges stay on the title's line when it
|
|
is short and wrap under it when it is long. */
|
|
margin-right: auto;
|
|
overflow-wrap: anywhere;
|
|
}
|
|
.ui-schedule-card-agents,
|
|
.ui-schedule-card-next {
|
|
color: var(--muted);
|
|
overflow-wrap: anywhere;
|
|
}
|
|
/* The prompt text keeps its own line breaks; long unbroken tokens wrap
|
|
rather than widening the card. */
|
|
.ui-schedule-card-body {
|
|
margin: 0;
|
|
white-space: pre-wrap;
|
|
overflow-wrap: anywhere;
|
|
}
|
|
.ui-schedule-card-actions {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 0.5em;
|
|
justify-content: flex-end;
|
|
}
|