docs(form-builder): document S3a PR 2 complex field types and update FORM-05 stub note
- Add VitePress pages for AVAILABILITY_PICKER and SECTION_PRIORITY
and a TAG_PICKER configuration note. Wire them into the organisator
sidebar under a new Formulieren section alongside the existing
"Wat is een formulier" page.
- BACKLOG.md: nuance FORM-05 — the stub-shaped behaviour for public
event_registration submissions is already shipping via the existing
TriggerPersonIdentityMatchOnFormSubmit listener (writes 'pending').
The real work (PersonIdentityService::detectMatchesByValues + an
extra branch in resolveStatus) is what remains. Added a done entry
for S3a PR 2 to the Opgeloste items list.
- API.md: add VALIDATION_FAILED to the public-form error code table
and document the SECTION_PRIORITY shape error messages (Dutch copy
served under errors."values.{slug}").
- COPY_CATALOGUE.md: new S3a PR 2 section capturing the seeder
help_text, the IdentityMatchBanner copy (clearly marking the
backend message as authoritative), all empty/error state copy for
the three new components, and the SECTION_PRIORITY shape error
strings.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -809,10 +809,29 @@ Codes:
|
||||
| `SCHEMA_NOT_FOUND` | 404 | public token does not resolve |
|
||||
| `SUBMISSION_ALREADY_SUBMITTED`| 409 | submit on finalised submission |
|
||||
| `RATE_LIMITED` | 429 | includes `Retry-After` header |
|
||||
| `VALIDATION_FAILED` | 422 | per-field validation — see `errors` map below |
|
||||
|
||||
Authoritative source: `api/app/Exceptions/FormBuilder/PublicFormApiException.php`
|
||||
and its concrete subclasses.
|
||||
|
||||
`VALIDATION_FAILED` returns the `errors` field keyed by `values.{slug}`
|
||||
with an array of Dutch messages. Field-shape triggers include:
|
||||
|
||||
- **SECTION_PRIORITY** — values must be `{ section_id, priority }[]`
|
||||
with unique section_ids and priorities in `1..5`, max 5 entries, and
|
||||
section_ids scoped to the schema's owner event tree. Specific
|
||||
messages land under `errors."values.{slug}"`:
|
||||
- `"Dezelfde sectie mag slechts één keer worden opgegeven."`
|
||||
- `"Elke prioriteit mag slechts één keer worden toegekend."`
|
||||
- `"priority moet tussen 1 en 5 liggen (positie {n})."`
|
||||
- `"Je kunt maximaal 5 voorkeuren opgeven."`
|
||||
- `"Eén of meer secties horen niet bij dit evenement."`
|
||||
- `"Ongeldig formaat voor sectievoorkeuren."` / `"Ongeldig voorkeur-element op positie {n}."`
|
||||
/ `"section_id ontbreekt op positie {n}."` / `"priority ontbreekt of is ongeldig op positie {n}."`
|
||||
|
||||
Authoritative source for shape rules:
|
||||
`api/app/Services/FormBuilder/FormValueService::validateSectionPriorityShape`.
|
||||
|
||||
### `GET /public/forms/{public_token}`
|
||||
|
||||
Returns `PublicFormSchemaResource`. Shape:
|
||||
|
||||
Reference in New Issue
Block a user