You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(grid,types): an object-declared bulk action runs over the selected records (#3002) (#3031)
`bulkActions: ['push_down']` dispatched the action NAME in the runner's `type`
slot, so it never ran — and the object had nothing to declare a bulk action
with, since `bulkActionDefs` was passed through from view JSON verbatim rather
than derived from `objectDef.actions`.
No spec change needed: `ActionSchema.bulkEnabled` ("whether this action can be
applied to multiple selected records") is already the declaration; it just had
no consumer. `ObjectGrid` — the single convergence point of the three list
callers — now folds three sources into the selection bar via the new pure
`resolveBulkActions`: inline-authored defs, object actions flagged
`bulkEnabled`, and legacy names resolved against `objectDef.actions`.
A derived def carries the source action under `actionDef`; `useBulkExecutor`
dispatches it through the action runner once per record with the row attached
as `_rowRecord`, reusing BulkActionDialog's params → confirm → progress →
result model so params/confirmation are collected once. Failures are attributed
per record instead of counted as successes.
Also: the bar rendered legacy string buttons only when no defs existed, so a
view mixing both silently lost half its buttons.
Co-authored-by: Jack Zhuang <277994282+os-zhuang@users.noreply.github.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
0 commit comments