Giao diện
FAQ
Tạo menu mới nhưng user khác không thấy?
Nguyên nhân: Menu chỉ tự động gán cho role có allowNewMenu: true. Nếu role của user không có cờ này, menu sẽ không xuất hiện.
Giải pháp:
- Vào Settings → Roles & Permissions → chọn role → bật
allowNewMenu. - Hoặc gán thủ công qua
roles.desktopRoutes:set. - Sau khi gán, user cần refresh trang (F5) để client cập nhật danh sách menu.
Xóa menu nhưng schema/widget vẫn còn trong DB?
Sử dụng desktopRoutes:destroyV2 thay vì desktopRoutes:destroy. Phiên bản v2 cascade xóa uiSchemas (qua schemaUid) và uiWidgets (qua tabSchemaName). Phiên bản cơ bản chỉ xóa record trong bảng desktopRoutes.
Menu không hiển thị dù đã gán role?
Kiểm tra các cờ trên desktopRoute record:
| Cờ | Ảnh hưởng |
|---|---|
hidden: true | Ẩn hoàn toàn — không render |
hideInMenu: true | Ẩn khỏi sidebar nhưng truy cập qua URL vẫn được |
type: 'divider' | Chỉ hiển thị đường kẻ, không phải menu item |
Nếu tất cả cờ đều false, kiểm tra listAccessible trả về có route đó không.
app:restart khác app:refresh thế nào?
| Action | Hành vi |
|---|---|
restart | Dừng process và khởi động lại toàn bộ (tương tự restart server). Mất kết nối tạm thời. |
refresh | Reload plugin state, clear cache nội bộ, không dừng process. Kết nối vẫn giữ. |
Sử dụng refresh cho hầu hết trường hợp. Chỉ dùng restart khi cần reload module code mới.
Thứ tự menu sai sau khi di chuyển?
Field sort là float, scoped theo parentId. Khi dùng desktopRoutes:move, plugin tính toán sort mới dựa trên vị trí target. Nếu thứ tự vẫn sai:
- Kiểm tra
targetScope.parentIdcó đúng không. - Kiểm tra
method(insertBefore/insertAfter/prepend/append). - Trường hợp hiếm: nhiều record có cùng
sortvalue — thực hiện move lại để recalculate.
Mobile routes có ACL binding không?
Hiện tại rolesDesktopRoutes chỉ hỗ trợ desktop routes. Mobile routes chưa có bảng junction tương ứng — tất cả mobile routes đều hiển thị cho mọi user.