feat(meeting-room): Frappe Desk UI đặt phòng — field order + Calendar view + client script (TETRA-2200) #169

Merged
khanhn merged 1 commit from feat/TETRA-2200-frappe-desk-booking-ui into main 2026-06-21 12:57:54 +07:00
Collaborator

TETRA-2200 — Frappe Desk UI đặt phòng họp (cho khách Frappe-only)

Cải thiện UX đặt phòng ngay trên Frappe Desk (logic validate() chống trùng giữ nguyên). Chỉ chỉnh UI.

Thay đổi

  • field_order: gom Meeting Room + Start/End lên đầu (organizer xuống dưới); title_field=title → list/calendar hiện tiêu đề thay MRB-xxxxx.
  • *_calendar.js: bật Calendar view (ngày/tuần/tháng).
  • *.js client script: set_query chỉ phòng active; chọn phòng → hiện info phòng (sức chứa/vị trí/tiện ích/cần duyệt) qua set_intro; cảnh báo trùng giờ client-side (validate() vẫn là chốt cuối).

Code review (1 reviewer độc lập, verify vs Frappe source)

  • Fixed: show_room_info thêm .catch (tránh unhandled rejection nếu phòng bị xóa/no-perm).
  • Resolved: bỏ style_map/get_css_class tô màu theo status — build FullCalendar này không apply (event chỉ có class fc-*); giữ calendar mặc định cho chắc.
  • Verified sạch: overlap filter (start<end AND end>start) khớp server check_room_overlap; set_query/get_list/set_intro/show_alert syntax đúng; field_order đủ 14 field; title_field hợp lệ.

Test Frappe Desk (Playwright)

field order (room trước time), Calendar view (4 events, titles+giờ), dropdown "Filtered by: Is Active", room info intro, cảnh báo "Room busy" khi đè giờ — đều PASS.

Refs: TETRA-2200

## TETRA-2200 — Frappe Desk UI đặt phòng họp (cho khách Frappe-only) Cải thiện UX đặt phòng ngay trên **Frappe Desk** (logic `validate()` chống trùng giữ nguyên). Chỉ chỉnh UI. ### Thay đổi - **field_order**: gom Meeting Room + Start/End lên đầu (organizer xuống dưới); `title_field=title` → list/calendar hiện tiêu đề thay `MRB-xxxxx`. - **`*_calendar.js`**: bật **Calendar view** (ngày/tuần/tháng). - **`*.js` client script**: `set_query` chỉ phòng active; chọn phòng → hiện info phòng (sức chứa/vị trí/tiện ích/cần duyệt) qua `set_intro`; cảnh báo trùng giờ client-side (`validate()` vẫn là chốt cuối). ### Code review (1 reviewer độc lập, verify vs Frappe source) - **Fixed**: `show_room_info` thêm `.catch` (tránh unhandled rejection nếu phòng bị xóa/no-perm). - **Resolved**: bỏ `style_map`/`get_css_class` tô màu theo status — build FullCalendar này không apply (event chỉ có class `fc-*`); giữ calendar mặc định cho chắc. - Verified sạch: overlap filter (`start<end AND end>start`) khớp server `check_room_overlap`; set_query/get_list/set_intro/show_alert syntax đúng; field_order đủ 14 field; title_field hợp lệ. ### Test Frappe Desk (Playwright) field order (room trước time), Calendar view (4 events, titles+giờ), dropdown "Filtered by: Is Active", room info intro, cảnh báo "Room busy" khi đè giờ — đều PASS. Refs: TETRA-2200
feat(meeting-room): Frappe Desk UI đặt phòng — field order + Calendar view + client script (TETRA-2200)
All checks were successful
Test (offline) / test (push) Successful in 35s
Test (offline) / test (pull_request) Successful in 40s
c52f47bdaf
Cải thiện UX đặt phòng trên Frappe Desk cho khách Frappe-only (logic validate() giữ nguyên):

- field_order: gom Meeting Room + Start/End lên đầu (organizer xuống dưới); title_field=title (list/calendar hiện tiêu đề thay MRB-xxx).

- meeting_room_booking_calendar.js: bật Calendar view (ngày/tuần/tháng).

- meeting_room_booking.js: set_query chỉ phòng active; chọn phòng → hiện info phòng (sức chứa/vị trí/tiện ích/cần duyệt); cảnh báo trùng giờ client-side (validate() vẫn là chốt cuối).

Refs: TETRA-2200

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
khanhn merged commit ab4a0e6e56 into main 2026-06-21 12:57:54 +07:00
khanhn deleted branch feat/TETRA-2200-frappe-desk-booking-ui 2026-06-21 12:57:54 +07:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
tant/vhrms!169
No description provided.