/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.
46 lines
1.1 KiB
CSS
46 lines
1.1 KiB
CSS
/* The form fills its card; fields stack with the page's usual gap. The
|
|
cadence controls sit in one wrapping row so "repeats / every / unit /
|
|
starts at" read as one sentence on a wide card and stack on a narrow one. */
|
|
.ui-schedule-form {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 0.9em;
|
|
}
|
|
.ui-schedule-form-agents {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 0.3em;
|
|
}
|
|
/* The picker's own list is a scrolling column sized for a filter popover; in
|
|
a form the agents read better as a wrapping row, all visible at once. */
|
|
.ui-schedule-form-agents .ui-multiselect-filter-options {
|
|
flex-direction: row;
|
|
flex-wrap: wrap;
|
|
gap: 0.3em 1.2em;
|
|
max-height: none;
|
|
overflow-y: visible;
|
|
}
|
|
.ui-schedule-form-cadence {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 0.75em;
|
|
}
|
|
.ui-schedule-form-cadence > .ui-form-field {
|
|
width: auto;
|
|
flex: 1 1 9em;
|
|
}
|
|
.ui-schedule-form-hint {
|
|
margin: 0;
|
|
font-size: 0.85em;
|
|
color: var(--muted);
|
|
}
|
|
.ui-schedule-form-warn {
|
|
margin: 0;
|
|
font-size: 0.85em;
|
|
color: var(--yellow);
|
|
}
|
|
.ui-schedule-form-actions {
|
|
display: flex;
|
|
gap: 0.5em;
|
|
justify-content: flex-end;
|
|
}
|