Bỏ qua, đến nội dung

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:

  1. Vào Settings → Roles & Permissions → chọn role → bật allowNewMenu.
  2. Hoặc gán thủ công qua roles.desktopRoutes:set.
  3. 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.

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?

ActionHành vi
restartDừ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.
refreshReload 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 sortfloat, 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:

  1. Kiểm tra targetScope.parentId có đúng không.
  2. Kiểm tra method (insertBefore / insertAfter / prepend / append).
  3. Trường hợp hiếm: nhiều record có cùng sort value — 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.