Edit an operation
The edit form lives at /operations/{id}/edit. It is structurally the same form as the
create page, pre-filled from the existing missions/{id}
document and saved via updateMission() (a merge patch, not a replace).
Access is gated by the operationOwnerGuard. You need the operations.edit permission
and ownership of the document — org admins, the creator, or explicitly granted
editors.
Opening the editor
- From the operations list, open the row kebab menu → Edit.
- From the operation detail header, click the EDIT button
(requires
operations.edit). - Direct URL:
/operations/{id}/edit.
What the editor loads
On open, the form subscribes to missions/{id} and patches:
- All identity, classification, schedule, and C2 fields.
- Objectives, ROE, and Comms Plan into their dynamic form arrays.
- CAS config into the embedded panel.
- Selected teams and individual operatives, reconstructed from
assetIds[]minus any UID that belongs to a currently selected team. - Map region into the Google Map via
fitBounds.
What you can edit
Practically every field that exists on MissionData is editable from this form:
- Name, codename, description.
- Mission type, classification, priority, status.
- Start and end dates.
- Half-duplex PTT toggle.
- Commander UID, primary POI, HQ/OPORD notes, tags.
- Objectives, ROE, and Comms Plan (add, reorder via remove-and-re-add, delete).
- CAS configuration (all six numeric thresholds plus the master enable).
- Personnel — add or remove teams and individual operatives. On save,
assetIds[]is recomputed as the deduplicated union of direct operatives plus team members. - AO map bounds — pan or zoom the map;
mission.regionis overwritten with the current viewport.
What is not editable here
- Privacy blur — set at create time; there is no blur panel in the edit form.
- Mission media — the create form’s uploader is not rendered here. Existing media
is preserved untouched (
media: m?.media ?? []). Add or remove media from the detail page’s Mission Media panel. - Organisation ownership —
orgId/orgIdsare left as-is; there is no org picker in the edit form.
Saving
Save validates, calls updateMission(id, patch), and routes to
/operations/{id}. Nothing is written until you press it — closing the tab discards
local changes.
Promoting through states
Moving from planning → ready → active → completed is done by changing the
Status dropdown and saving. There is no separate “Start operation” button here —
that lives on the operation detail page. In practice, commanders
tend to promote to ready/active from the detail page and use this form for
settings.
Deleting
Deletion is not exposed in the edit form. Use the row kebab menu on the
operations list → Delete. It is a hard deleteDoc today (no
soft-delete or restore).