KB-66FA
Sửa lỗi khó gõ + rà nguyên tắc bút-sửa toàn hệ thống (ghi chú vòng 9)
3 min read Revision 1
designuxmoitmouteditpencilbugfix
Sửa lỗi "khó gõ" + Nguyên tắc bút-sửa toàn hệ thống (vòng 9)
Date: 2026-06-20 | Status: FIXED, verified browser.
Huyên báo
- Ô gõ mô tả điều kiện phức tạp/trigger ở MOIT rất khó gõ.
- Mọi nơi đã nhập thông tin cần bút ✎ sửa lại dễ dàng bất cứ lúc nào — rà toàn hệ thống; hiệu chỉnh là việc thường xuyên nên phải dễ nhất.
Nguyên nhân "khó gõ" (đã tìm ra)
Mỗi keystroke oninput gọi App.render() → render dựng lại toàn bộ ô nhập (innerHTML=''). Textarea đang gõ bị thay bằng node mới → mất focus sau mỗi ký tự. Lỗi kiến trúc render, có ở MOIT (ô mô tả) và cả MOUT (ô giá trị lọc).
Cách sửa (chuẩn — áp cho mọi builder)
Tách 2 pha:
- controls / dựng ô nhập (inpList, condList, complexBoxes, trigBoxes, colList, filtList): CHỈ chạy khi đổi cấu trúc (thêm/bớt/đổi chỗ/đổi trường).
- preview / view (form, bảng, gate, JSON): chạy mỗi keystroke — KHÔNG dựng lại ô nhập.
- Keystroke (textarea, ô giá trị, nhãn, tiêu đề) → cập nhật model +
preview()/view()only. - MOIT:
App.preview(). MOUT: táchApp.render()=controls+view;App.view()=chỉ vẽ bảng+json; ô giá trị lọc & tiêu đề dùngApp.view().
Verified browser:
- MOIT: gõ 12 ký tự vào ô mô tả DOT → focus giữ nguyên cùng node, value="ABCDEFGHIJKL", JSON live. ✓
- MOUT: gõ "Aeon Mall" vào ô giá trị lọc → focus giữ, lọc live (8/8 dòng). ✓
Nguyên tắc bút-sửa — rà soát toàn hệ thống
| Nơi | Trạng thái |
|---|---|
| Danh sách đã đúc (MOW/MOT/MOUT/Master) | ✎ đầu mỗi dòng → về xưởng sửa ✓; drawer "✎ Sửa khuôn này" ✓ |
| MOUT builder — tiêu đề | ✎ ✓ |
| MOUT builder — ô giá trị lọc | gõ mượt ✓ (đã sửa) |
| MOIT builder — tiêu đề | ✎ ✓ (thêm) |
| MOIT builder — nhãn trường nhập | ✎ + sửa inline (gõ thẳng) ✓ (thêm) |
| MOIT builder — ô mô tả/điều kiện | ✎ focus + gõ mượt ✓ (sửa) |
| Mọi ô đã nhập trong builder | đều là input sống, sửa thẳng bất cứ lúc nào ✓ |
Còn lại (cho vòng sau)
- MOUT: nhãn cột (cột thêm từ catalog) chưa sửa inline — thêm ✎ như MOIT.
- MOW canvas / MOT studio (trang cũ, chưa rebuild): rà cùng nguyên tắc khi đụng tới.
- Quy ước chung: builder mới luôn theo mẫu controls/preview tách đôi để không tái lỗi.
Verified: moit-builder-v1 + mout-builder-v3 gõ mượt, focus giữ.