Files
summercms/.planning/phases/12.2-admin-form-fields-date-file-upload-relation-editing-with-def/12.2-UI-REVIEW.md
Jakub Zych 5c38d96f8b docs(12.2): record review fixes and persist human UAT
Close the seven code-review findings in disposition and leave the phase pending on browser checks plus the v0.1.1 tag.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-02 23:13:49 +02:00

57 lines
2.4 KiB
Markdown

# Phase 12.2 — UI Review
**Audited:** 2026-10-02
**Baseline:** `12.2-UI-SPEC.md` (approved)
**Screenshots:** Not captured — no live admin session was driven in this pass
**Interaction captures:** off
---
## Scope Decision
UI audit of the three new controls (`DatepickerField`, `FileuploadField`, relation child/pivot modals) against the existing Direction C system. No new tokens. This pass used the committed SPA tests and a code read of the review-fix commit `516f9c9`; it did not open a browser.
---
## Pillar Scores
| Pillar | Score | Finding |
|--------|-------|---------|
| 1. Copywriting | 4 | All new strings go through `t` / phrasebook keys. No new literal UI copy in the review-fix commit. |
| 2. Visuals | 3 | Components reuse Button, FormGrid, ConfirmDialog, Reka DatePicker/Dialog/Progress. Visual fit of the calendar popover and file tiles is a human check. |
| 3. Color | 4 | Danger/soft/skel/muted tokens only; no new palette. |
| 4. Typography | 4 | DM Sans / tabular-nums for dates, times, sizes as specified. |
| 5. Spacing | 4 | Existing control heights and 4px scale; no new spacing tokens. |
| 6. Experience Design | 4 | Save blocked while uploads are in flight (CR-01). Abort deletes a stored file (CR-02). Reorder keeps the latest snapshot (WR-03). Dirty includes active uploads. |
**Overall: 4** — automated backstops pass; browser visual UAT still required.
---
## UI-SPEC backstops
| Backstop | Automated evidence | Status |
|----------|--------------------|--------|
| Esc returns focus; disabled day cannot be selected | `admin/tests/form/DatepickerField.test.ts` | pass |
| Datetime local wall clock / UTC emit; ignoreTimezone | `admin/tests/app/dateFormat.test.ts` | pass |
| Protected thumbs use X-Session-Key, object URL, revoke | `admin/tests/form/FileuploadField.test.ts` | pass |
| Keyboard reorder, focus, announce, one request | `admin/tests/form/FileuploadField.test.ts` | pass |
---
## Priority Fixes
None blocking. Human items live in `12.2-UAT.md`.
## Files Audited
- `admin/src/views/FormView.vue`
- `admin/src/components/form/fields/FileuploadField.vue`
- `admin/src/components/form/fields/DatepickerField.vue` (via tests)
- `admin/src/components/form/formContext.ts`
- `admin/src/components/relation/RelationChildModal.vue`
- `admin/src/app/dateFormat.ts`
- `admin/tests/form/FileuploadField.test.ts`
- `admin/tests/app/dateFormat.test.ts`
- `admin/tests/smoke/deferred.smoke.test.ts`