Skip to content

feat(forms): signature field type — slice 9c#63

Merged
Musiker15 merged 1 commit into
mainfrom
feat/slice-9c-signature
Jun 21, 2026
Merged

feat(forms): signature field type — slice 9c#63
Musiker15 merged 1 commit into
mainfrom
feat/slice-9c-signature

Conversation

@Musiker15

Copy link
Copy Markdown
Member

Final field-type slice — the signature pad. Completes Slice 9.

Approach

The applicant draws on a canvas; each completed stroke exports a PNG that is uploaded through the existing form upload endpoint (server → MinIO). The answer is a FileAnswer, so it's stored, validated, and displayed exactly like any other file field — no new storage path.

Changes

  • shared — added signature to FILE_FIELD_TYPES: validated as a file reference, creates a FileUpload row on submit, rendered as a download link in answer summaries.
  • webSignatureField canvas widget (pointer drawing, clear button, auto-upload on stroke end), wired into FieldInput. Upload route treats signature like an image (image/*). Builder offers the signature type. Added a clear label to the file-field labels; DE/EN strings.
  • tests — signature validated as a file-reference answer (shared now 20 tests).

Validation

pnpm typecheck, pnpm lint, pnpm test, pnpm build — all green.

With this, Slice 9 (new field types) is complete: rating family (9a), matrix (9b), signature (9c).

Signature pad: the applicant draws on a canvas; each completed stroke exports a
PNG that's uploaded through the existing form upload endpoint, so the answer is a
FileAnswer stored exactly like any file field.

- shared: add `signature` to FILE_FIELD_TYPES (validated as a file reference,
  creates a FileUpload row on submit, shown as a download link in summaries).
- web: `SignatureField` canvas widget (pointer drawing, clear button, auto
  upload on stroke end); wired in `FieldInput`. Upload route treats signature
  like an image (image/* MIME). Builder offers the signature type. `clear` label
  added to file-field labels; DE/EN strings.
- tests: signature validated as a file-reference answer.

Completes Slice 9 (rating family + matrix + signature).
@Musiker15 Musiker15 merged commit d487b8b into main Jun 21, 2026
3 checks passed
@Musiker15 Musiker15 deleted the feat/slice-9c-signature branch June 21, 2026 12:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant