Giao diện
@digiforce-nc/plugin-ui-templates
Plugin UI Widget Templates — cho phép lưu và tái sử dụng các block/widget UI dưới dạng template, hỗ trợ chế độ reference (liên kết) và copy (sao chép độc lập).
Plugin này làm gì?
Khi xây dựng giao diện, nhiều trang sử dụng cùng một block layout (ví dụ: bảng danh sách khách hàng, form nhập liệu đơn hàng). Thay vì tạo lại từ đầu, plugin cho phép lưu block thành template và tái sử dụng ở nhiều nơi. Template có thể dùng theo chế độ reference (thay đổi template tự động cập nhật mọi nơi sử dụng) hoặc copy (tạo bản sao độc lập).
Tính năng chính
| # | Tính năng | Mô tả |
|---|---|---|
| 1 | Lưu template | Lưu bất kỳ block/widget nào thành template có tên và mô tả |
| 2 | Reference mode | Sử dụng template theo kiểu liên kết — sửa 1 nơi, cập nhật tất cả |
| 3 | Copy mode | Tạo bản sao độc lập từ template — chỉnh sửa không ảnh hưởng template gốc |
| 4 | Usage tracking | Tự động theo dõi nơi nào đang sử dụng template (qua uiWidgetTemplateUsages) |
| 5 | Audit trail | Ghi nhận hành động create/update/destroy template |
Database
Collection uiWidgetTemplates
| Field | Kiểu | Mô tả |
|---|---|---|
uid | uid (PK) | ID duy nhất của template |
name | string | Tên hiển thị |
description | text | Mô tả template |
targetUid | string | UID của widget gốc |
useWidget | string | Loại widget |
type | string | Phân loại template |
collectionName | string | Collection liên kết |
dataSourceKey | string | Data source liên kết |
Collection uiWidgetTemplateUsages
Bảng theo dõi nơi nào đang dùng template nào:
| Field | Kiểu | Mô tả |
|---|---|---|
uid | uid (PK) | ID duy nhất |
templateUid | string | UID của template |
uiWidgetUid | string | UID của widget đang dùng template |
ACL — Phân quyền
| Resource | Quyền | Mô tả |
|---|---|---|
uiWidgetTemplates | loggedIn | User đã đăng nhập truy cập được |
uiWidgetTemplateUsages | loggedIn | User đã đăng nhập truy cập được |
uiWidgetTemplates:* | Admin (snippet) | Quản lý đầy đủ template |
Dependencies
| Package | Vai trò |
|---|---|
@digiforce-nc/server | Server framework |
@digiforce-nc/plugin-ui-core | UiWidgetRepository — quản lý widget tree |
@digiforce-nc/utils | uid() — tạo unique ID |
lodash | Utility functions |