Intranet · Communication subtypes
CRUD for the categories that classify intranet communications, so stores and management can filter and route messages consistently.
| Area | Intranet |
| Routes | intranet.subtypes · intranet.subtypes.index · intranet.subtypes.new · intranet.subtypes.edit |
| Centre modules | intranet |
| Staff levels | root · admin · manager |
| Models | intranet-subtype |
| UI label | title.header.subtypes / menu.navbar.intranet.subtype.index |
| Coverage | 3 use cases · 1 happy · 2 failure |
How it works
Deletion is handled on the route (deleteModel/showDeleteModal) via the shared show-confirm-deletion service and throws Error("deleteModel(): parameter 'model' is not a valid DS.Model") on a bad argument. The model carries no validations of its own, so correctness depends entirely on the API.
Use cases
Why someone opens this (3)
- Separating maintenance issues from commercial notices from access requests.
- Giving the communications list meaningful filter options.
- Retiring a subtype that is no longer used.
Path map
flowchart LR F(["Communication subtypes"]):::feat F --> H1["Subtype created and used"]:::ok F -.-> X1["Invalid model on delete"]:::bad F -.-> X2["Deleting a subtype in use"]:::bad classDef feat fill:#26688f,stroke:#26688f,color:#ffffff,font-weight:bold classDef ok fill:#e3f1ea,stroke:#0d6b42,color:#0d4a2e classDef bad fill:#f7e6e2,stroke:#9a2d1c,color:#6e1f13
Happy paths
Subtype created and used
- Manager creates a subtype with a name.
- It becomes selectable when composing a communication and as a filter on the list.
Failure paths
Invalid model on delete
Cause —
deleteModelcalled without a valid record.What happens — Throws a developer-facing
Error.
Deleting a subtype in use
Cause — Communications still reference it.
What happens — API rejection; there are no client-side validations on this model at all, so every rule lives server-side.
QA checklist
Tick these off while regression-testing this feature. The boxes are plain Markdown, so progress is visible in git diffs.
- ✅ Subtype created and used
- ⛔ Invalid model on delete
- ⛔ Deleting a subtype in use
Implementation
app/routes/intranet/subtypes/index.jsapp/controllers/intranet/subtypes/edit.jsapp/models/intranet-subtype.jsapp/abilities/intranet-subtype.jsapp/components/form-intranet-subtype.jsapp/components/intranet-subtypes-list.js
Translation keys (4)
Key English title.header.subtypesCommunication types menu.navbar.intranet.subtype.indexCommunication subtypes title.communication.subtypesCommunications subtypes intranet.new-subtypeNew subtype
Related
- Same area — Store sales declaration & month closing · Sales status overview & Yardi export · Sales & audit-log CSV download · Annual sales statement · Intranet communications (threads, confirmations, authorisations) · Files management · Footfall (flows) & Yardi upload · SAFT-E - IntelliSales import · Utility consumptions
Generated from doc/feature-inventory.json · id intranet-subtypes · commit 276788ca6