Entity struct for bulk action configuration.
See MishkaGervaz.Table.Dsl.BulkActions,
MishkaGervaz.Table.Entities.BulkAction.Ui,
MishkaGervaz.Table.Entities.RowAction (per-row counterpart),
MishkaGervaz.Table.Types.Action (type registry), and
MishkaGervaz.Table.Web.Events.BulkActionHandler.
Summary
Functions
Transform the bulk action after DSL compilation.
Types
@type action_type() :: :event | :destroy | :update | :unarchive | :permanent_destroy
@type t() :: %MishkaGervaz.Table.Entities.BulkAction{ __identifier__: term(), __spark_metadata__: map() | nil, action: atom() | {atom(), atom()} | nil, confirm: boolean() | String.t() | nil, event: atom() | nil, handler: handler() | nil, name: atom(), payload: (MapSet.t() -> map()) | nil, restricted: boolean(), type: action_type() | nil, ui: MishkaGervaz.Table.Entities.BulkAction.Ui.t() | nil, visible: :active | :archived | (map() -> boolean()) }
Functions
Transform the bulk action after DSL compilation.
Two promotion rules apply, in order:
- If
type:is set andhandler:is still the default:parent, mark the handler as type-based:handler: {:type, type}. - If
handler:is one of the built-in type atoms (:event,:destroy,:update,:unarchive,:permanent_destroy), it is treated as a type token, not a literal Ash action name. This keepstype: :destroyandhandler: :destroybehaving identically — both route through the master/tenant resolver.