Bỏ qua, đến nội dung

@digiforce-nc/plugin-action-bulk-update

Plugin cung cấp cập nhật hàng loạt (bulk update) - gán giá trị mới cho nhiều bản ghi cùng lúc theo bộ lọc, với xác nhận trước khi thực thi.

Plugin này làm gì?

Hãy phân biệt với bulk edit: nếu bulk edit mở form để sửa từng field, thì bulk update gán một bộ giá trị cố định cho tất cả bản ghi đã chọn. Ví dụ: chọn 100 đơn hàng → gán status = "completed" cho tất cả. Plugin đăng ký action customize:bulkUpdate, hiển thị dialog xác nhận rồi gọi API.

Ba nhiệm vụ chính

#Nhiệm vụChi tiết
1Cấu hình giá trị gánAdmin/designer thiết lập sẵn field + giá trị cần cập nhật trong action config
2Xác nhận & thực thiHiển thị confirm modal trước khi gọi resource.update() với forceUpdate: true
3Dynamic valuesHỗ trợ resolveRunJSObjectValues để tính toán giá trị động bằng JavaScript

Kiến trúc

Tổng quan

Plugin hoạt động hoàn toàn ở client - server chỉ có stub. Luồng xử lý đi qua 3 bước: resolve giá trị → xác nhận → gọi API.

TầngVai tròThành phần
Action WidgetNút trên toolbar, trigger confirm dialogBulkUpdateActionWidget
Assign FormForm cấu hình field + giá trị gánAssignFormWidget
RunJS ResolverResolve dynamic values từ JS expressionresolveRunJSObjectValues
Core UpdateAPI update với filter + forceUpdateresource.update()

So sánh Bulk Edit vs Bulk Update

Tiêu chíBulk EditBulk Update
Mục đíchSửa nhiều field tùy chọnGán bộ giá trị cố định
UIForm đầy đủ fieldConfirm dialog
Cấu hìnhUser chọn tại runtimeDesigner cấu hình trước
Dynamic valuesKhôngCó (RunJS)

Luồng hoạt động

Dynamic values với RunJS

Plugin hỗ trợ tính toán giá trị động thông qua resolveRunJSObjectValues. Khi giá trị gán chứa JS expression, hệ thống sẽ evaluate expression trước khi gửi API.

Biến có sẵnMô tả
currentRecordBản ghi hiện tại (trong ngữ cảnh row action)
currentUserThông tin user đang đăng nhập
currentTimeThời gian hiện tại

ACL - Phân quyền

QuyềnMô tả
updateAction yêu cầu quyền update trên collection
updateManyNút hiển thị khi user có quyền cập nhật nhiều bản ghi

Thành phần client

Thành phầnMô tả
BulkUpdateActionWidgetWidget nút action + confirm dialog
CustomizeActionInitializerĐăng ký action vào schema initializer
AssignFormWidgetForm cấu hình field và giá trị cập nhật trong designer
BulkUpdateFieldsConfigUI cấu hình danh sách field + giá trị trong designer mode
BulkUpdatePluginProviderProvider đăng ký toàn bộ component

Dependencies

PackageVai trò
@digiforce-nc/clientClient framework (peer)
@digiforce-nc/serverServer framework - stub (peer)

Mục lục chi tiết