Manage Attributes And Folders
Ranks, qualifications, awards, units, and positions share one C2 attribute screen. Each menu item has its own community feature (community_ranks, community_qualifications, community_awards, community_units, or community_positions) and its own permission family. Folders collects those five attribute types into one organisation view.
Attribute CRUD permissions
Replace <type> with ranks, qualifications, awards, units, or positions.
| Control | Permission | Result |
|---|---|---|
| Open list or detail | <type>:read | Shows the attribute list, search, folder filter, detail, and assigned profiles. |
| Create | <type>:create | Opens the attribute form and creates a record. |
| Edit / Modify | <type>:update | Changes the record’s form values. |
| Delete then confirmation | <type>:delete | Permanently deletes the record after a confirmation dialog. |
| Reorder, Save, Cancel | <type>:update | Reorders items within the selected folder. Cancel discards unsaved dragging. |
| Add, remove, or move a folder assignment | <type>:modify-folders | Places the attribute in a folder or removes it from one. |
| Bulk profile assignment (not units) | profiles:modify-<type> | Adds or removes that attribute from selected profiles. |
Every attribute form loads the current folders. Its fields vary by type, but C2 supplies name, description, folder, position, abbreviation/callsign where applicable, and an image field where the type supports one. Save errors stay in the dialog; a 409 response is displayed against the returned field(s).
Create, edit, find, and reorder attributes
- Open the relevant Attributes menu item.
- Use Create to add a record, complete its fields, then submit.
- Use the search box and Filters to find a record by name, description, callsign, abbreviation, or folder.
- Open a record for its details, assigned profiles, and its Edit or Delete controls.
- To reorder, select Reorder for a folder, drag items into order, then select Save. Select Cancel to restore your previous filters and discard the unsaved order.
Reordering does not move an item between folders; it writes the position within its current folder. A create or edit can be rejected by a feature limit—use the error message and review the community plan rather than repeatedly submitting.
Delete an attribute
The Delete button opens a confirmation dialog and then removes the selected rank, qualification, award, unit, or position. Check its assigned profiles, unit slots, ORBAT use, and automation configuration first. The UI does not offer a restore action.
For units, deletion is especially high-risk: it is not the same as removing a unit from a folder or ORBAT. Review Hierarchy And ORBAT before deleting a live unit.
Assign attributes to profiles
On a non-unit attribute’s detail page, use Bulk Assign to select profiles and apply the attribute. It requires the matching profiles:modify-ranks, profiles:modify-qualifications, profiles:modify-awards, or profiles:modify-positions permission.
For a person-by-person update, use the profile cards instead. Unit assignment has separate slot behaviour; use the profile page for the primary unit and Hierarchy And ORBAT for roster slots.
Verification required for the bulk-control label: C2 shows it for non-unit attributes based on
profiles:modify-<type>, and the API enforces those profile assignment endpoints. The exact button wording is sourced from the shared component’s translations, so validate it in the deployed locale before capturing screenshots.
Folders
Folders are shared across all five attribute types. The Folders route is visible when C2 finds at least one of these permissions: ranks:modify-folders, qualifications:modify-folders, awards:modify-folders, units:modify-folders, or positions:modify-folders. C2 also lists a legacy folders-read fallback, which is not in the API catalogue—do not add it to a role.
Create, rename, or delete a folder
| Control | C2 condition | Effect |
|---|---|---|
| Create | Any *:modify-folders permission | Creates a folder with required name and position. |
| Modify | Any *:modify-folders permission | Edits the folder name or position. |
| Delete | Any *:modify-folders permission | Opens a destructive confirmation for the folder. |
| View more | Folder is visible | Opens its detail page. |
Folder controls are broad in the C2 screen, but the API folder controller derives its base permission from the folder model rather than one of the five type keys. Treat the UI condition as verified visibility, and role-test create/edit/delete against the current API before relying on it as a backend guarantee.
Add or remove items from a folder
- Open Folders, then choose View more for the target folder.
- Use Create to make a new item directly in that folder; the form preselects the folder.
- In Attribute counts, choose a type, tick existing unfiled items, then select Save to add them.
- Use an item’s remove-from-folder control to make it uncategorised.
Adding/removing items requires that type’s *:modify-folders permission. The folder detail page disables a type that you cannot manage, and its create menu disables a type without <type>:create.
Verification notes
- All five generic attribute routes are implemented by C2’s dynamic
/:genericand/:generic/:idpages; C2 rejects a value that is not one of the five known attribute types. - The Spring generic controller applies model-derived CRUD permissions and explicitly applies
modify-folderstoPUT /{type}/{id}/folder. - Folder deletion side effects are not stated in the screen. Treat it as destructive and test what happens to contained items in a seeded non-production community before publishing a staff procedure.