Giao diện
Cấu hình nâng cao
Tham số isTemplate
Khi gọi resource.get(), plugin truyền isTemplate: true để server trả về dữ liệu "sạch":
- Loại bỏ
id,createdAt,updatedAt,createdByvà các field hệ thống khác. - Giữ nguyên dữ liệu business (tên, số lượng, trạng thái, v.v.).
- Relation field trả về FK value để có thể re-link khi tạo bản ghi mới.
Field mapping
Designer cấu hình field mapping trong DuplicateFieldsConfig:
| Tùy chọn | Mô tả |
|---|---|
| Include fields | Danh sách field được sao chép (mặc định: tất cả non-system) |
| Exclude fields | Danh sách field bị loại bỏ |
| Relation handling | Copy FK / skip / deep copy (tùy loại relation) |
Xử lý relation field
| Loại relation | Hành vi mặc định |
|---|---|
belongsTo | Sao chép FK value (re-link đến cùng bản ghi cha) |
hasOne | Không sao chép (tránh duplicate constraint) |
hasMany | Không sao chép (cần logic riêng) |
belongsToMany | Sao chép danh sách ID junction (re-link) |
MultiRecordResource
Khi cần nhân bản nhiều bản ghi cùng lúc (kết hợp với selection), plugin sử dụng MultiRecordResource để batch process. Flow:
- Lấy danh sách ID đã chọn.
- Gọi
resource.get()cho từng bản ghi vớiisTemplate: true. - Gọi
resource.create()cho từng bộ dữ liệu.
ACL — Quyền yêu cầu
| Quyền | Mô tả |
|---|---|
create | Action yêu cầu quyền create trên collection (vì tạo bản ghi mới) |
Không yêu cầu quyền update hay read bổ sung — plugin sử dụng core API get + create đã được ACL kiểm tra.
Tùy chỉnh form Copy into form
Khi dùng chế độ Copy into form, form tạo mới được mở với dữ liệu pre-filled. Designer có thể:
- Cấu hình form layout riêng cho action duplicate.
- Thêm validation rules trên form.
- Ẩn field không cần hiển thị.