Phase 10: field editor (FR-14)
เพิ่ม editor ต่อ template field — ผู้ดูแลเลือกรูปแบบช่องกรอกในฟอร์มสร้างเอกสารได้: text → textbox/textarea, number/date → control ตาม type (presentation metadata ล้วน — validation ยังยึด Type, ค่า field เป็น string ทั้ง flow, ไม่แตะ generate/sync/add-in) - Backend: TemplateField.Editor (nullable, null = default ของ type) + migration AddTemplateFieldEditor + validate ตาม type ใน PUT templates (ค่าไม่รู้จัก/ไม่เข้ากับ type → 400, normalize-on-write, API คืน resolved เสมอ) - Web: util fieldEditor.ts + editor select หน้าแก้ template (desktop+mobile, ซ่อนเมื่อ type มีทางเดียว) + ฟอร์มสร้างเอกสาร render ตาม editor + แก้ prefill re-generate ของ field date จาก ISO timestamp เต็ม (input[type=date] รับเฉพาะ yyyy-MM-dd เดิมแสดงว่าง) - Docs: spec v6 (FR-14/AC-17) + plan Phase 10 + sub-plan field-editor.md + acceptance-review AC-17 + README/CLAUDE.md - Tests: backend 60/60 (FieldEditorTests ใหม่ 8 กรณี) · web 46/46 + build ผ่าน Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
7b20f12ede
commit
9bb4a48c00
23 changed files with 865 additions and 45 deletions
|
|
@ -7,7 +7,7 @@
|
|||
```bash
|
||||
npm install
|
||||
npm run dev # http://localhost:5173 (ห้ามใช้ 3000 — ชนกับ add-in dev server)
|
||||
npm test # Vitest — 36 ตัว
|
||||
npm test # Vitest — 46 ตัว
|
||||
npm run build # production build (.output/)
|
||||
```
|
||||
|
||||
|
|
@ -22,8 +22,8 @@ app/
|
|||
composables/ # useAuth (PKCE), useApi (Bearer + refresh), useTheme (light/dark)
|
||||
pages/ # ทุกหน้า: หน้าหลัก / templates (list/new/edit/documents) / documents (create/detail) / auth/callback
|
||||
types/api.ts # DTO mirror ของ backend
|
||||
utils/ # oidc, fieldValidation, snapshot — pure functions ไว้ unit test
|
||||
test/ # Vitest (happy-dom) — fieldValidation / useTheme / snapshot
|
||||
utils/ # oidc, fieldValidation, fieldEditor, snapshot — pure functions ไว้ unit test
|
||||
test/ # Vitest (happy-dom) — fieldValidation / fieldEditor / useTheme / snapshot
|
||||
tailwind.config.ts # สี/fontSize/radius/shadow expose จาก CSS variables (rgb(var(--c-x) / <alpha-value>))
|
||||
```
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue