Overrides DSL
v0.0.1
The state section and the data_loader and events entities of a resource's table and form blocks name the modules that replace parts of the runtime. Each key takes a module that uses the matching Gervaz module, so super reaches the default of the callback you override. Only the module option of state, and a form's events module, replace a whole subsystem. Gervaz does not read the module option of a table's events or of either data_loader.
Table state
Replaces how table state is built. It sits at mishka_gervaz.table.state.
| Option | Type | Default | Description |
|---|---|---|---|
module | atom | none | Replaces the whole state module. Every other key of the block is then ignored. The module must use MishkaGervaz.Table.Web.State. Call default_init/3 to reach the default init/3, because super would call your module again. |
column | atom | none | Column builder module. Must use MishkaGervaz.Table.Web.State.ColumnBuilder. Builds columns from DSL and resource configuration. |
filter | atom | none | Filter builder module. Must use MishkaGervaz.Table.Web.State.FilterBuilder. Builds filters from DSL and resource configuration. |
action | atom | none | Action builder module. Must use MishkaGervaz.Table.Web.State.ActionBuilder. Builds row actions and bulk actions from configuration. |
presentation | atom | none | Presentation module. Must use MishkaGervaz.Table.Web.State.Presentation. Resolves UI adapter, templates, and presentation options. |
url_sync | atom | none | URL sync module. Must use MishkaGervaz.Table.Web.State.UrlSync. Handles URL state synchronization. |
access | atom | none | Access module. Must use MishkaGervaz.Table.Web.State.Access. Handles access control for records and actions. |
Table data_loader
Replaces how table data is loaded. The module argument works as the module option. It sits at mishka_gervaz.table.data_loader.
Call: data_loader module
Arguments:
| Argument | Type | Default | Description |
|---|---|---|---|
module | atom | none | Accepted by the DSL. Gervaz does not read it. Name the sub-builders instead. |
Options:
| Option | Type | Default | Description |
|---|---|---|---|
query | atom | none | Query builder module. Must use MishkaGervaz.Table.Web.DataLoader.QueryBuilder. Builds queries with filters and sorting. |
filter_parser | atom | none | Filter parser module. Must use MishkaGervaz.Table.Web.DataLoader.FilterParser. Parses raw filter values from form submissions. |
pagination | atom | none | Pagination handler module. Must use MishkaGervaz.Table.Web.DataLoader.PaginationHandler. Handles page loading and pagination calculations. |
tenant | atom | none | Tenant resolver module. Must use MishkaGervaz.Table.Web.DataLoader.TenantResolver. Resolves tenant and read actions based on state. |
hooks | atom | none | Hook runner module. Must use MishkaGervaz.Table.Web.DataLoader.HookRunner. Executes hooks during data loading. |
relation | atom | none | Relation loader module. Must use MishkaGervaz.Table.Web.DataLoader.RelationLoader. Loads options for relation filters (search, load_more, resolve_selected). |
Table events
Replaces how table events are handled. The module argument works as the module option. It sits at mishka_gervaz.table.events.
Call: events module
Arguments:
| Argument | Type | Default | Description |
|---|---|---|---|
module | atom | none | Accepted by the DSL. Gervaz does not read it. Name the sub-builders instead. |
Options:
| Option | Type | Default | Description |
|---|---|---|---|
sanitization | atom | none | Sanitization handler module. Must use MishkaGervaz.Table.Web.Events.SanitizationHandler. Handles input sanitization to prevent XSS. |
record | atom | none | Record handler module. Must use MishkaGervaz.Table.Web.Events.RecordHandler. Handles record CRUD operations. |
selection | atom | none | Selection handler module. Must use MishkaGervaz.Table.Web.Events.SelectionHandler. Manages row selection state. |
bulk_action | atom | none | Bulk action handler module. Must use MishkaGervaz.Table.Web.Events.BulkActionHandler. Executes bulk actions on selected records. |
hooks | atom | none | Hook runner module. Must use MishkaGervaz.Table.Web.Events.HookRunner. Executes hooks during event handling. |
relation_filter | atom | none | Relation filter handler module. Must use MishkaGervaz.Table.Web.Events.RelationFilterHandler. Handles relation filter events (search, load_more, focus, close_dropdown, toggle). |
Form state
Replaces how form state is built. It sits at mishka_gervaz.form.state.
| Option | Type | Default | Description |
|---|---|---|---|
module | atom | none | Replaces the whole state module. Every other key of the block is then ignored. The module must use MishkaGervaz.Form.Web.State. Call default_init/3 to reach the default init/3, because super would call your module again. |
field | atom | none | Field builder module. Must use MishkaGervaz.Form.Web.State.FieldBuilder. Builds field configs from DSL and resource configuration. |
group | atom | none | Group builder module. Must use MishkaGervaz.Form.Web.State.GroupBuilder. Builds group layout from DSL configuration. |
step | atom | none | Step builder module. Must use MishkaGervaz.Form.Web.State.StepBuilder. Builds wizard/tab steps from DSL configuration. |
presentation | atom | none | Presentation module. Must use MishkaGervaz.Form.Web.State.Presentation. Resolves UI adapter, templates, and presentation options. |
access | atom | none | Access module. Must use MishkaGervaz.Form.Web.State.Access. Handles access control for form actions. |
Form data_loader
Replaces how form data is loaded. The module argument works as the module option. It sits at mishka_gervaz.form.data_loader.
Call: data_loader module
Arguments:
| Argument | Type | Default | Description |
|---|---|---|---|
module | atom | none | Accepted by the DSL. Gervaz does not read it. Name the sub-builders instead. |
Options:
| Option | Type | Default | Description |
|---|---|---|---|
record | atom | none | Record loader module. Must use MishkaGervaz.Form.Web.DataLoader.RecordLoader. Loads records for edit mode and creates AshPhoenix.Form structs. |
tenant | atom | none | Tenant resolver module. Must use MishkaGervaz.Form.Web.DataLoader.TenantResolver. Resolves tenant and actions based on state. |
relation | atom | none | Relation loader module. Must use MishkaGervaz.Form.Web.DataLoader.RelationLoader. Loads options for relation/select fields. |
hooks | atom | none | Hook runner module. Must use MishkaGervaz.Form.Web.DataLoader.HookRunner. Executes hooks during data loading. The value is compiled into the config, but no built-in template or handler reads it. |
Form events
Replaces how form events are handled. The module argument works as the module option. It sits at mishka_gervaz.form.events.
Call: events module
Arguments:
| Argument | Type | Default | Description |
|---|---|---|---|
module | atom | none | Replaces the whole events module. The module must use MishkaGervaz.Form.Web.Events. |
Options:
| Option | Type | Default | Description |
|---|---|---|---|
sanitization | atom | none | Sanitization handler module. Must use MishkaGervaz.Form.Web.Events.SanitizationHandler. Handles input sanitization to prevent XSS. |
validation | atom | none | Validation handler module. Must use MishkaGervaz.Form.Web.Events.ValidationHandler. Handles phx-change form validation. |
submit | atom | none | Submit handler module. Must use MishkaGervaz.Form.Web.Events.SubmitHandler. Handles phx-submit form creation and updates. |
step | atom | none | Step handler module. Must use MishkaGervaz.Form.Web.Events.StepHandler. Handles wizard step navigation (next, prev, goto). |
upload | atom | none | Upload handler module. Must use MishkaGervaz.Form.Web.Events.UploadHandler. Handles file upload events. |
relation | atom | none | Relation handler module. Must use MishkaGervaz.Form.Web.Events.RelationHandler. Handles relation field search/select/clear events. |
hooks | atom | none | Hook runner module. Must use MishkaGervaz.Form.Web.Events.HookRunner. Executes hooks during event handling. |