Dialogs and Workflows Reference
Reference for every scheduler dialog β Quick View, Bulk Update, Task, Day Run, Batch Inspections, Recurring Import, Deploy, Warnings, and Engineer Rules.
Before you start
- You are familiar with scheduler operations from the how-to guides.
Expected outcome
You can identify every dialog in the scheduler, understand what it does, and know its fields, validation rules, and keyboard shortcuts.
Quick View dialog
Trigger: Click any job card or planner list row.
Component: SchedulingJobQuickViewDialog.jsx
Sections
| Section | Content |
|---|---|
| Hero | Title, site, system, entity type icon, current warnings |
| Latest change | Who changed what, when (from scheduler history) |
| Validation warnings | Blocking and non-blocking warnings with explanations |
| Site scheduling rules | Access windows, contact requirements, parking notes |
| Edit fields | Assignee, scheduling intent, duration, status, priority |
| Action buttons | Open full detail, explain warnings, bulk edit selected |
Editable fields
| Field | Input | Constraints |
|---|---|---|
| Assignee | Engineer dropdown | Only canBeScheduled engineers; inspections cannot clear assignment |
| Scheduling intent | Toggle: exact date vs target month | Mutually exclusive |
| Scheduled date | Datetime picker | ISO format |
| Target month | Month picker | YYYY-MM format |
| Duration | Number input | 15-1440 minutes |
| Status | Dropdown | Tasks only: pending, in_progress, completed, cancelled |
| Priority | Dropdown | Work orders and tasks: low, normal, high, urgent |
Save behaviour
- Sends a single-job update to the server
- Validates against scheduling constraints and blocking warnings
- Refreshes the overview on success
- Closes the dialog on success
Bulk Update dialog
Trigger: Select jobs β click Bulk Edit in the selection bar.
Component: SchedulingBulkUpdateDialog.jsx
Capacity: 1-100 jobs.
Toggle switches
Each field group has an independent toggle. Only toggled-on fields are sent to the server.
| Toggle | Field | Input | Constraints |
|---|---|---|---|
| Assignee | Engineer | Dropdown | canBeScheduled engineers only |
| Date | Scheduling intent | Toggle + datetime/month picker | Mutually exclusive date vs month |
| Duration | Estimated duration | Number input | 15-1440 minutes |
| Window | Schedule window | Start/end datetime pickers | Disabled when target month selected |
| Flex | Flex tolerance | Number input | 0-120 days; disabled when target month selected |
| Priority | Priority level | Dropdown | low, normal, high, urgent |
| Status | Status | Dropdown | Tasks only |
| Crew size | Crew required | Number input | 1-50 |
| Equipment | Access equipment | 7 checkboxes | mewp, scaffold, tower_scaffold, ladder, cherry_picker, rope_access, harness |
| Out of hours | OOH flag | Toggle | Boolean |
Prepopulation
- Single job selected: Form fields prepopulate from that job's current values. Toggles remain off.
- Multiple jobs selected: Form fields use defaults (crew: 1, equipment: [], OOH: false). Toggles remain off.
Validation
- At least one toggle must be enabled
- At least one job must be selected
- If the update would introduce new blocking warnings, the server rejects it
- Inspection status cannot be changed via bulk update
- Work order status cannot be changed via bulk update
Accessibility
All three operational toggle rows use aria-labelledby linking the toggle label to its checkbox input.
The crew-size input uses htmlFor/id association.
Task dialog
Trigger: Click New Task (create) or edit an existing task.
Component: SchedulingTaskDialog.jsx
Fields
| Field | Required | Input | Constraints |
|---|---|---|---|
| Title | β | Text input | 2-200 characters |
| Type | β | Dropdown | survey, dilapidation, remedial, maintenance, other |
| Description | β | Textarea | Up to 5,000 characters |
| Site | β | Searchable dropdown | Populates system options when selected |
| System | β | Dropdown (populated after site) | Requires site selection first |
| Assignee | β | Engineer dropdown | canBeScheduled engineers only |
| Status | β | Dropdown | pending, in_progress, completed, cancelled |
| Scheduling intent | β | Toggle | Exact date or target month (mutually exclusive) |
| Scheduled date | β | Datetime picker | ISO format |
| Target month | β | Month picker | YYYY-MM format |
| Duration | β | Number input | 15-1440 minutes |
| Window | β | Start/end datetime | Disabled when target month selected |
| Flex | β | Number input | 0-120 days |
Day Run Builder dialog
Trigger: Click Build Day Run in the action bar.
Component: SchedulingDayRunDialog.jsx
Inputs
| Field | Input |
|---|---|
| Engineer | Dropdown of canBeScheduled engineers |
| Date | Date picker |
Algorithm
The day-run builder scores candidate jobs:
| Factor | Points | Description |
|---|---|---|
| Unscheduled | +14 | No date or target month |
| Unassigned | +12 | No engineer assigned |
| Urgent priority | +18 | Priority is urgent |
| High priority | +12 | Priority is high |
| Window urgency | +12-16 | Near end of scheduling window |
| Same postcode area | +10 | Shares area with previous stop |
| Distance proximity | +3-10 | Inversely proportional to haversine distance |
Travel: haversine at 32 km/h + 10 min overhead per stop.
Output
An ordered route of stops with estimated travel times. The user can reorder stops before applying.
Apply
Assigns the engineer and sets the scheduled date for each stop in the route.
Batch Inspection dialog
Trigger: Click Batch Inspections in the action bar.
Component: SchedulingBatchInspectionDialog.jsx
Fields
| Field | Required | Input |
|---|---|---|
| Site | β | Searchable dropdown |
| Systems | β | Multi-select (populated after site) |
| Inspection type | β | Annual or 6-monthly |
| Engineer | β | Engineer dropdown |
| Scheduling fields | β | Date, duration, window, flex |
Capacity: Up to 50 inspections per batch.
Preview: Shows inspection count before creation.
Recurring Import dialog
Trigger: Click Import in the action bar.
Component: SchedulingRecurringImportDialog.jsx
Steps
- Upload a CSV file with required columns
- Review the preview (creates, updates, skips)
- Choose conflict policy:
| Policy | Behaviour |
|---|---|
| Skip | Leave existing jobs untouched |
| Update | Overwrite existing job scheduling |
| Rebalance | Distribute work evenly across the period |
- Apply the import
Deploy Preview and Apply
Trigger: Select jobs β click Deploy in the selection bar.
Preview
Shows each selected job with its deployment readiness:
- β Ready to deploy (passes all checks)
- β Blocked (with reason β e.g. "no engineer assigned")
Apply
- Sets
deploymentStatetodeployed - Records
deployedAtanddeploymentBatchId - Clears
engineerAcknowledgedAt(resets acknowledgement so the engineer must re-acknowledge) - Queues email notifications to assigned engineers
- Logs the action for audit and undo
After deployment, badges show Deployed β (awaiting acknowledgement). When the engineer opens their day run, badges update to Deployed β.
Warnings dialog
Trigger: Click warning icon or "Explain warnings" in Quick View.
Component: SchedulingDialogs.jsx
Shows the full list of validation warnings for a job or selection with severity, description, and resolution guidance.
Engineer Rules dialog
Trigger: Click Engineer Rules in the action bar.
Component: SchedulingDialogs.jsx
Manages field-work eligibility, competency requirements, and scheduling capacity for engineers in the workspace.