Staff — Góc nhìn end-user
Hai vai: nhân viên (staff) xem lịch của mình; admin xếp ca và duyệt nghỉ.
A. Nhân viên (staff)
1. Staff Home — "My Calendar"
Trang
/staff/home. Tiêu đề "My Calendar" ở trên-trái.
Khu hành động trên-phải, theo thứ tự trái→phải: Timezone Selector (tùy chọn) → Calendar (tùy chọn) → Timetable (tùy chọn) → My Profile (luôn có).
2. Timetable — thời khóa biểu
Trang
/staff/timetable. Dùng một bộ điều khiển ngày/view duy nhất (do header của SyncfusionScheduleComponentsở hữu).
- Prev / Next / Today để đổi khoảng ngày; đổi view (ngày/tuần…).
- Nhãn khoảng ngày luôn khớp với lưới sự kiện đang hiển thị.
Lưu ý UX: trang không render hai bộ điều khiển ngày trùng nhau — chỉ một, để tránh rối.
3. Availability — khai báo lịch rảnh
Trong hồ sơ, tab Availability: các time slot trong mỗi cột thứ được sắp xếp theo giờ bắt đầu tăng dần (dù API trả về thứ tự nào). Sort theo từng thứ, không dời slot sang thứ khác.
4. Xin nghỉ phép (Leave)
Mục Leave trong tab Staff Profile Availability. Nút tạo:
+New Leave.
Drawer tạo/sửa leave:
- Có Tracking Code selector (chỉ hiện code loại Leave, không hiện loại Shift).
- Bố cục gọn, rộng: Start/End Date một hàng, Start/End Time một hàng (viewport đủ rộng).
- Giữ nguyên các hành vi cũ: filter Future Only/All, All Day, edit/delete, vòng trạng thái.
B. Admin
1. Roster Weekly Planner — xếp ca theo tuần
- Mỗi nhân viên là một dòng, sắp theo tên tăng dần.
- Một người chỉ một dòng kể cả khi có bản ghi nhiều BU (dedupe theo
enterpriseUserId, hoặcemployeeIdnếu thiếu). - Chỉ hiện absence đã approved (approved-only).
2. Thấy nghỉ phép trùng ca khi xếp
Popup Create/Edit Shift: dưới Time Range có trường
Leaveread-only.
- Hiện khi nhân viên có leave giao với khoảng ca (xét theo interval thời gian, không phải chỉ trùng ngày).
- Gồm ngày/giờ leave + tracking code. Ẩn khi không có leave giao.
→ Admin tránh xếp ca vào lúc nhân viên đang nghỉ.
3. Duyệt nghỉ (Approve Leave)
Drawer approve ở Staff Roster Leave.
- Cũng chỉ hiện Leave tracking codes; bố cục gọn giống drawer tạo/sửa.
- Giữ nguyên vòng chuyển trạng thái duyệt; gắn tracking code đã chọn theo hành vi approve hiện có.
Tóm lại
| Vai | Làm gì |
|---|---|
| Staff | Xem My Calendar / Timetable, khai báo availability, xin nghỉ (+New Leave). |
| Admin | Xếp roster theo tuần (1 người/1 dòng), thấy leave trùng ca, duyệt nghỉ. |
Tiếp theo: Khái niệm & kiến trúc.