Bỏ qua, đến nội dung

@digiforce-nc/plugin-client

Plugin Web UI — quản lý menu desktop/mobile, cung cấp API thông tin ứng dụng, tích hợp ACL cho hệ thống menu, và đồng bộ tên menu với localization.

Plugin này làm gì?

Hãy hình dung ứng dụng Digiforce như một tòa nhà: plugin-clientsơ đồ tầng — nó quyết định người dùng thấy những phòng nào (menu), cửa nào mở (route), và bảng thông tin ở sảnh (app info). Plugin còn phối hợp với ACL để đảm bảo mỗi role chỉ thấy menu được phép.

Ba nhiệm vụ chính

#Nhiệm vụChi tiết
1Menu managementCRUD desktop/mobile routes, di chuyển, sắp xếp, cascade xóa uiSchemas + uiWidgets
2App APIEndpoints lấy thông tin hệ thống, đổi ngôn ngữ, xóa cache, restart, refresh
3ACL bindingTự động gán menu mới cho role có allowNewMenu: true, endpoint roles.desktopRoutes:set

API endpoints

App resource

EndpointMô tả
app:getInfoThông tin ứng dụng (version, locale, plugins đã cài)
app:getLangLấy ngôn ngữ hiện tại và toàn bộ bản dịch
app:clearCacheXóa toàn bộ cache server
app:restartRestart ứng dụng (admin only)
app:refreshRefresh app state mà không restart

Desktop routes

EndpointMô tả
desktopRoutes:listDanh sách tất cả desktop routes
desktopRoutes:listAccessibleChỉ các route user được phép truy cập (đã lọc ACL)
desktopRoutes:getAccessibleChi tiết 1 route accessible theo key
desktopRoutes:create / createV2Tạo menu mới (v2 hỗ trợ nested creation)
desktopRoutes:updateCập nhật thông tin menu
desktopRoutes:destroy / destroyV2Xóa menu (v2 cascade xóa uiSchemas + uiWidgets)
desktopRoutes:moveDi chuyển vị trí menu trong cây
roles.desktopRoutes:setGán danh sách menu cho role cụ thể

Cascade delete

Khi xóa menu qua destroyV2, plugin tự động dọn dẹp toàn bộ tài nguyên UI liên quan:

ACL binding — allowNewMenu

Khi admin tạo menu mới, plugin kiểm tra tất cả role có cờ allowNewMenu: true và tự động gán:

Database — 3 bảng chính

BảngChứa gìVí dụ
desktopRoutesMenu desktop (path, title, icon, parentId, sort){ title: 'Đơn hàng', path: '/orders' }
mobileRoutesMenu mobile (tương tự desktop){ title: 'Dashboard', path: '/m/dashboard' }
rolesDesktopRoutesLiên kết role ↔ menu (M2M){ roleName: 'admin', desktopRouteId: 5 }

Thành phần client

Thành phầnMô tả
DesktopRoutesManagerTrang quản lý menu desktop (Settings → Desktop Menu) — drag-drop sắp xếp
MobileRoutesManagerTrang quản lý menu mobile (Settings → Mobile Menu)
RouteSchemaComponentRender nội dung trang từ uiSchema gắn với route

Dependencies

PackageVai trò
@digiforce-nc/clientClient framework (peer)
@digiforce-nc/serverServer framework (peer)
@digiforce-nc/databaseDatabase ORM (peer)
@digiforce-nc/plugin-localizationĐồng bộ tên menu với bản dịch

Mục lục chi tiết

  • Kiến trúc — DesktopRoutes tree, app resource, menu-role binding
  • API reference — App resource endpoints, desktopRoutes CRUD, roles.desktopRoutes:set
  • Database schema — ER diagram, desktopRoutes, mobileRoutes, rolesDesktopRoutes
  • FAQ — Câu hỏi thường gặp