Table-specific introspection for domains using MishkaGervaz.Domain.
Usage
# Get the inherited table defaults
defaults = MishkaGervaz.Domain.Info.Table.defaults(MyDomain)
# Get default pagination
pagination = MishkaGervaz.Domain.Info.Table.pagination(MyDomain)
# Get navigation (domain-wide, not table-specific) — see Domain.Info.menu_groups/1
Summary
Functions
Get the actions config.
Get the actor key.
Get the full domain table configuration.
Get the inherited table defaults for a domain.
Get the master_check function.
Get the default max page size.
mishka_gervaz.form DSL entities
Default create action. Atom (used for both master and tenant) or tuple {master_action, tenant_action}. Inherited by all form resources in the domain.
Default create action. Atom (used for both master and tenant) or tuple {master_action, tenant_action}. Inherited by all form resources in the domain.
mishka_gervaz.form.actions DSL options
Default read/get action. Atom or tuple {master_action, tenant_action}. Inherited by all form resources in the domain.
Default read/get action. Atom or tuple {master_action, tenant_action}. Inherited by all form resources in the domain.
Default update action. Atom or tuple {master_action, tenant_action}. Inherited by all form resources in the domain.
Default update action. Atom or tuple {master_action, tenant_action}. Inherited by all form resources in the domain.
Default assign key for current user.
Default assign key for current user.
Default features to enable for forms.
Default features to enable for forms.
Default number of form columns.
Default number of form columns.
Default wizard navigation mode.
Default wizard navigation mode.
mishka_gervaz.form.layout DSL options
Default wizard step persistence.
Default wizard step persistence.
Default responsive layout behaviour.
Default responsive layout behaviour.
Default function to check if user is master. fn user -> boolean.
Default function to check if user is master. fn user -> boolean.
mishka_gervaz.form DSL options
Default template module for form layout.
Default template module for form layout.
Default error message CSS classes.
Default error message CSS classes.
Default extra theme options.
Default extra theme options.
Default field CSS classes.
Default field CSS classes.
Default form CSS classes.
Default form CSS classes.
Default label CSS classes.
Default label CSS classes.
mishka_gervaz.form.theme DSL options
Default form UI adapter module.
Default form UI adapter module.
Default form UI adapter options.
Default form UI adapter options.
mishka_gervaz.navigation DSL entities
mishka_gervaz.table DSL entities
Default destroy action. Atom or tuple {master_action, tenant_action}. Inherited by all resources in the domain.
Default destroy action. Atom or tuple {master_action, tenant_action}. Inherited by all resources in the domain.
Default get action. Atom or tuple {master_action, tenant_action}. Inherited by all resources in the domain.
Default get action. Atom or tuple {master_action, tenant_action}. Inherited by all resources in the domain.
mishka_gervaz.table.actions DSL options
Default read action. Atom (used for both master and tenant) or tuple {master_action, tenant_action}. Inherited by all resources in the domain.
Default read action. Atom (used for both master and tenant) or tuple {master_action, tenant_action}. Inherited by all resources in the domain.
Default assign key for current user.
Default assign key for current user.
Default permanent destroy action.
Default permanent destroy action.
Default for whether archive support is enabled at the domain level. Resources still need AshArchival.Resource in their extensions for archive to apply.
Default for whether archive support is enabled at the domain level. Resources still need AshArchival.Resource in their extensions for archive to apply.
Default get archived action.
Default get archived action.
mishka_gervaz.table.archive DSL options
Default read archived action. Single atom or tuple {master_action, tenant_action}.
Default read archived action. Single atom or tuple {master_action, tenant_action}.
Default restore action.
Default restore action.
Default for restricting archive UI to master users only.
Default for restricting archive UI to master users only.
Default archive toggle visibility. Boolean or fn state -> boolean end.
Default archive toggle visibility. Boolean or fn state -> boolean end.
Default function to check if user is master. fn user -> boolean.
Default function to check if user is master. fn user -> boolean.
mishka_gervaz.table DSL options
Default realtime enabled. When realtime section is defined, enabled is true by default.
Default realtime enabled. When realtime section is defined, enabled is true by default.
mishka_gervaz.table.realtime DSL options
Default PubSub module.
Default PubSub module.
Enable auto-refresh. When refresh section is defined, enabled is true by default.
Enable auto-refresh. When refresh section is defined, enabled is true by default.
Refresh interval in milliseconds. Default: 30 seconds.
Refresh interval in milliseconds. Default: 30 seconds.
mishka_gervaz.table.refresh DSL options
Pause auto-refresh when browser tab/window loses focus.
Pause auto-refresh when browser tab/window loses focus.
Pause auto-refresh when user is interacting (filtering, selecting, etc.).
Pause auto-refresh when user is interacting (filtering, selecting, etc.).
Show a visual indicator when auto-refresh is active.
Show a visual indicator when auto-refresh is active.
Default border CSS classes.
Default border CSS classes.
Default extra theme options.
Default extra theme options.
Default header CSS classes.
Default header CSS classes.
mishka_gervaz.table.theme DSL options
Default row CSS classes.
Default row CSS classes.
Default UI adapter module.
Default UI adapter module.
Default UI adapter options.
Default UI adapter options.
Enable URL state synchronization. When url_sync section is defined, enabled is true by default.
Enable URL state synchronization. When url_sync section is defined, enabled is true by default.
URL sync mode
URL sync mode
mishka_gervaz.table.url_sync DSL options
Which state to sync to URL params.
Which state to sync to URL params.
Prefix for URL params to avoid conflicts.
Prefix for URL params to avoid conflicts.
Get the default page size.
Get the default page size options.
Get the pagination config.
Get the realtime config.
Get the refresh config.
Get the theme config.
Get the UI adapter.
Get the UI adapter options.
Get the URL sync config.
Functions
Get the actions config.
Get the actor key.
Get the full domain table configuration.
Get the inherited table defaults for a domain.
These settings are inherited by all resources in the domain.
Get the master_check function.
@spec max_page_size(module()) :: pos_integer() | nil
Get the default max page size.
mishka_gervaz.form DSL entities
@spec mishka_gervaz_form_actions_create(dsl_or_extended :: module() | map()) :: {:ok, atom() | {atom(), atom()}} | :error
Default create action. Atom (used for both master and tenant) or tuple {master_action, tenant_action}. Inherited by all form resources in the domain.
@spec mishka_gervaz_form_actions_create!(dsl_or_extended :: module() | map()) :: (atom() | {atom(), atom()}) | no_return()
Default create action. Atom (used for both master and tenant) or tuple {master_action, tenant_action}. Inherited by all form resources in the domain.
@spec mishka_gervaz_form_actions_options(dsl_or_extended :: module() | map()) :: %{ required(atom()) => any() }
mishka_gervaz.form.actions DSL options
Returns a map containing the and any configured or default values.
@spec mishka_gervaz_form_actions_read(dsl_or_extended :: module() | map()) :: {:ok, atom() | {atom(), atom()}} | :error
Default read/get action. Atom or tuple {master_action, tenant_action}. Inherited by all form resources in the domain.
@spec mishka_gervaz_form_actions_read!(dsl_or_extended :: module() | map()) :: (atom() | {atom(), atom()}) | no_return()
Default read/get action. Atom or tuple {master_action, tenant_action}. Inherited by all form resources in the domain.
@spec mishka_gervaz_form_actions_update(dsl_or_extended :: module() | map()) :: {:ok, atom() | {atom(), atom()}} | :error
Default update action. Atom or tuple {master_action, tenant_action}. Inherited by all form resources in the domain.
@spec mishka_gervaz_form_actions_update!(dsl_or_extended :: module() | map()) :: (atom() | {atom(), atom()}) | no_return()
Default update action. Atom or tuple {master_action, tenant_action}. Inherited by all form resources in the domain.
Default assign key for current user.
Default assign key for current user.
@spec mishka_gervaz_form_features(dsl_or_extended :: module() | map()) :: {:ok, :all | [:inline_errors | :autosave | :wizard | :groups | :uploads | :validation]} | :error
Default features to enable for forms.
@spec mishka_gervaz_form_features!(dsl_or_extended :: module() | map()) :: (:all | [:inline_errors | :autosave | :wizard | :groups | :uploads | :validation]) | no_return()
Default features to enable for forms.
@spec mishka_gervaz_form_layout_columns(dsl_or_extended :: module() | map()) :: {:ok, pos_integer()} | :error
Default number of form columns.
@spec mishka_gervaz_form_layout_columns!(dsl_or_extended :: module() | map()) :: pos_integer() | no_return()
Default number of form columns.
@spec mishka_gervaz_form_layout_options(dsl_or_extended :: module() | map()) :: %{ required(atom()) => any() }
mishka_gervaz.form.layout DSL options
Returns a map containing the and any configured or default values.
@spec mishka_gervaz_form_layout_persistence(dsl_or_extended :: module() | map()) :: {:ok, :client_token | :ets | :none} | :error
Default wizard step persistence.
@spec mishka_gervaz_form_layout_persistence!(dsl_or_extended :: module() | map()) :: (:client_token | :ets | :none) | no_return()
Default wizard step persistence.
@spec mishka_gervaz_form_layout_responsive(dsl_or_extended :: module() | map()) :: {:ok, boolean()} | :error
Default responsive layout behaviour.
@spec mishka_gervaz_form_layout_responsive!(dsl_or_extended :: module() | map()) :: boolean() | no_return()
Default responsive layout behaviour.
@spec mishka_gervaz_form_master_check(dsl_or_extended :: module() | map()) :: {:ok, (any() -> any())} | :error
Default function to check if user is master. fn user -> boolean.
@spec mishka_gervaz_form_master_check!(dsl_or_extended :: module() | map()) :: (any() -> any()) | no_return()
Default function to check if user is master. fn user -> boolean.
@spec mishka_gervaz_form_options(dsl_or_extended :: module() | map()) :: %{ required(atom()) => any() }
mishka_gervaz.form DSL options
Returns a map containing the and any configured or default values.
Default template module for form layout.
Default template module for form layout.
@spec mishka_gervaz_form_theme_error_class(dsl_or_extended :: module() | map()) :: {:ok, String.t()} | :error
Default error message CSS classes.
@spec mishka_gervaz_form_theme_error_class!(dsl_or_extended :: module() | map()) :: String.t() | no_return()
Default error message CSS classes.
Default extra theme options.
Default extra theme options.
@spec mishka_gervaz_form_theme_field_class(dsl_or_extended :: module() | map()) :: {:ok, String.t()} | :error
Default field CSS classes.
@spec mishka_gervaz_form_theme_field_class!(dsl_or_extended :: module() | map()) :: String.t() | no_return()
Default field CSS classes.
@spec mishka_gervaz_form_theme_form_class(dsl_or_extended :: module() | map()) :: {:ok, String.t()} | :error
Default form CSS classes.
@spec mishka_gervaz_form_theme_form_class!(dsl_or_extended :: module() | map()) :: String.t() | no_return()
Default form CSS classes.
@spec mishka_gervaz_form_theme_label_class(dsl_or_extended :: module() | map()) :: {:ok, String.t()} | :error
Default label CSS classes.
@spec mishka_gervaz_form_theme_label_class!(dsl_or_extended :: module() | map()) :: String.t() | no_return()
Default label CSS classes.
@spec mishka_gervaz_form_theme_options(dsl_or_extended :: module() | map()) :: %{ required(atom()) => any() }
mishka_gervaz.form.theme DSL options
Returns a map containing the and any configured or default values.
Default form UI adapter module.
Default form UI adapter module.
@spec mishka_gervaz_form_ui_adapter_opts(dsl_or_extended :: module() | map()) :: {:ok, keyword()} | :error
Default form UI adapter options.
@spec mishka_gervaz_form_ui_adapter_opts!(dsl_or_extended :: module() | map()) :: keyword() | no_return()
Default form UI adapter options.
mishka_gervaz.table DSL entities
@spec mishka_gervaz_table_actions_destroy(dsl_or_extended :: module() | map()) :: {:ok, atom() | {atom(), atom()}} | :error
Default destroy action. Atom or tuple {master_action, tenant_action}. Inherited by all resources in the domain.
@spec mishka_gervaz_table_actions_destroy!(dsl_or_extended :: module() | map()) :: (atom() | {atom(), atom()}) | no_return()
Default destroy action. Atom or tuple {master_action, tenant_action}. Inherited by all resources in the domain.
@spec mishka_gervaz_table_actions_get(dsl_or_extended :: module() | map()) :: {:ok, atom() | {atom(), atom()}} | :error
Default get action. Atom or tuple {master_action, tenant_action}. Inherited by all resources in the domain.
@spec mishka_gervaz_table_actions_get!(dsl_or_extended :: module() | map()) :: (atom() | {atom(), atom()}) | no_return()
Default get action. Atom or tuple {master_action, tenant_action}. Inherited by all resources in the domain.
@spec mishka_gervaz_table_actions_options(dsl_or_extended :: module() | map()) :: %{ required(atom()) => any() }
mishka_gervaz.table.actions DSL options
Returns a map containing the and any configured or default values.
@spec mishka_gervaz_table_actions_read(dsl_or_extended :: module() | map()) :: {:ok, atom() | {atom(), atom()}} | :error
Default read action. Atom (used for both master and tenant) or tuple {master_action, tenant_action}. Inherited by all resources in the domain.
@spec mishka_gervaz_table_actions_read!(dsl_or_extended :: module() | map()) :: (atom() | {atom(), atom()}) | no_return()
Default read action. Atom (used for both master and tenant) or tuple {master_action, tenant_action}. Inherited by all resources in the domain.
Default assign key for current user.
Default assign key for current user.
@spec mishka_gervaz_table_archive_destroy_action(dsl_or_extended :: module() | map()) :: {:ok, atom() | {atom(), atom()}} | :error
Default permanent destroy action.
@spec mishka_gervaz_table_archive_destroy_action!(dsl_or_extended :: module() | map()) :: (atom() | {atom(), atom()}) | no_return()
Default permanent destroy action.
@spec mishka_gervaz_table_archive_enabled(dsl_or_extended :: module() | map()) :: {:ok, boolean()} | :error
Default for whether archive support is enabled at the domain level. Resources still need AshArchival.Resource in their extensions for archive to apply.
@spec mishka_gervaz_table_archive_enabled!(dsl_or_extended :: module() | map()) :: boolean() | no_return()
Default for whether archive support is enabled at the domain level. Resources still need AshArchival.Resource in their extensions for archive to apply.
@spec mishka_gervaz_table_archive_get_action(dsl_or_extended :: module() | map()) :: {:ok, atom() | {atom(), atom()}} | :error
Default get archived action.
@spec mishka_gervaz_table_archive_get_action!(dsl_or_extended :: module() | map()) :: (atom() | {atom(), atom()}) | no_return()
Default get archived action.
@spec mishka_gervaz_table_archive_options(dsl_or_extended :: module() | map()) :: %{ required(atom()) => any() }
mishka_gervaz.table.archive DSL options
Returns a map containing the and any configured or default values.
@spec mishka_gervaz_table_archive_read_action(dsl_or_extended :: module() | map()) :: {:ok, atom() | {atom(), atom()}} | :error
Default read archived action. Single atom or tuple {master_action, tenant_action}.
@spec mishka_gervaz_table_archive_read_action!(dsl_or_extended :: module() | map()) :: (atom() | {atom(), atom()}) | no_return()
Default read archived action. Single atom or tuple {master_action, tenant_action}.
@spec mishka_gervaz_table_archive_restore_action(dsl_or_extended :: module() | map()) :: {:ok, atom() | {atom(), atom()}} | :error
Default restore action.
@spec mishka_gervaz_table_archive_restore_action!(dsl_or_extended :: module() | map()) :: (atom() | {atom(), atom()}) | no_return()
Default restore action.
@spec mishka_gervaz_table_archive_restricted(dsl_or_extended :: module() | map()) :: {:ok, boolean()} | :error
Default for restricting archive UI to master users only.
@spec mishka_gervaz_table_archive_restricted!(dsl_or_extended :: module() | map()) :: boolean() | no_return()
Default for restricting archive UI to master users only.
@spec mishka_gervaz_table_archive_visible(dsl_or_extended :: module() | map()) :: {:ok, boolean() | tuple()} | :error
Default archive toggle visibility. Boolean or fn state -> boolean end.
@spec mishka_gervaz_table_archive_visible!(dsl_or_extended :: module() | map()) :: (boolean() | tuple()) | no_return()
Default archive toggle visibility. Boolean or fn state -> boolean end.
@spec mishka_gervaz_table_master_check(dsl_or_extended :: module() | map()) :: {:ok, (any() -> any())} | :error
Default function to check if user is master. fn user -> boolean.
@spec mishka_gervaz_table_master_check!(dsl_or_extended :: module() | map()) :: (any() -> any()) | no_return()
Default function to check if user is master. fn user -> boolean.
@spec mishka_gervaz_table_options(dsl_or_extended :: module() | map()) :: %{ required(atom()) => any() }
mishka_gervaz.table DSL options
Returns a map containing the and any configured or default values.
@spec mishka_gervaz_table_realtime_enabled(dsl_or_extended :: module() | map()) :: {:ok, boolean()} | :error
Default realtime enabled. When realtime section is defined, enabled is true by default.
@spec mishka_gervaz_table_realtime_enabled!(dsl_or_extended :: module() | map()) :: boolean() | no_return()
Default realtime enabled. When realtime section is defined, enabled is true by default.
@spec mishka_gervaz_table_realtime_options(dsl_or_extended :: module() | map()) :: %{ required(atom()) => any() }
mishka_gervaz.table.realtime DSL options
Returns a map containing the and any configured or default values.
@spec mishka_gervaz_table_realtime_pubsub(dsl_or_extended :: module() | map()) :: {:ok, atom()} | :error
Default PubSub module.
@spec mishka_gervaz_table_realtime_pubsub!(dsl_or_extended :: module() | map()) :: atom() | no_return()
Default PubSub module.
@spec mishka_gervaz_table_refresh_enabled(dsl_or_extended :: module() | map()) :: {:ok, boolean()} | :error
Enable auto-refresh. When refresh section is defined, enabled is true by default.
@spec mishka_gervaz_table_refresh_enabled!(dsl_or_extended :: module() | map()) :: boolean() | no_return()
Enable auto-refresh. When refresh section is defined, enabled is true by default.
@spec mishka_gervaz_table_refresh_interval(dsl_or_extended :: module() | map()) :: {:ok, pos_integer()} | :error
Refresh interval in milliseconds. Default: 30 seconds.
@spec mishka_gervaz_table_refresh_interval!(dsl_or_extended :: module() | map()) :: pos_integer() | no_return()
Refresh interval in milliseconds. Default: 30 seconds.
@spec mishka_gervaz_table_refresh_options(dsl_or_extended :: module() | map()) :: %{ required(atom()) => any() }
mishka_gervaz.table.refresh DSL options
Returns a map containing the and any configured or default values.
@spec mishka_gervaz_table_refresh_pause_on_blur(dsl_or_extended :: module() | map()) :: {:ok, boolean()} | :error
Pause auto-refresh when browser tab/window loses focus.
@spec mishka_gervaz_table_refresh_pause_on_blur!(dsl_or_extended :: module() | map()) :: boolean() | no_return()
Pause auto-refresh when browser tab/window loses focus.
@spec mishka_gervaz_table_refresh_pause_on_interaction( dsl_or_extended :: module() | map() ) :: {:ok, boolean()} | :error
Pause auto-refresh when user is interacting (filtering, selecting, etc.).
@spec mishka_gervaz_table_refresh_pause_on_interaction!( dsl_or_extended :: module() | map() ) :: boolean() | no_return()
Pause auto-refresh when user is interacting (filtering, selecting, etc.).
@spec mishka_gervaz_table_refresh_show_indicator(dsl_or_extended :: module() | map()) :: {:ok, boolean()} | :error
Show a visual indicator when auto-refresh is active.
@spec mishka_gervaz_table_refresh_show_indicator!(dsl_or_extended :: module() | map()) :: boolean() | no_return()
Show a visual indicator when auto-refresh is active.
@spec mishka_gervaz_table_theme_border_class(dsl_or_extended :: module() | map()) :: {:ok, String.t()} | :error
Default border CSS classes.
@spec mishka_gervaz_table_theme_border_class!(dsl_or_extended :: module() | map()) :: String.t() | no_return()
Default border CSS classes.
Default extra theme options.
Default extra theme options.
@spec mishka_gervaz_table_theme_header_class(dsl_or_extended :: module() | map()) :: {:ok, String.t()} | :error
Default header CSS classes.
@spec mishka_gervaz_table_theme_header_class!(dsl_or_extended :: module() | map()) :: String.t() | no_return()
Default header CSS classes.
@spec mishka_gervaz_table_theme_options(dsl_or_extended :: module() | map()) :: %{ required(atom()) => any() }
mishka_gervaz.table.theme DSL options
Returns a map containing the and any configured or default values.
@spec mishka_gervaz_table_theme_row_class(dsl_or_extended :: module() | map()) :: {:ok, String.t()} | :error
Default row CSS classes.
@spec mishka_gervaz_table_theme_row_class!(dsl_or_extended :: module() | map()) :: String.t() | no_return()
Default row CSS classes.
Default UI adapter module.
Default UI adapter module.
@spec mishka_gervaz_table_ui_adapter_opts(dsl_or_extended :: module() | map()) :: {:ok, keyword()} | :error
Default UI adapter options.
@spec mishka_gervaz_table_ui_adapter_opts!(dsl_or_extended :: module() | map()) :: keyword() | no_return()
Default UI adapter options.
@spec mishka_gervaz_table_url_sync_enabled(dsl_or_extended :: module() | map()) :: {:ok, boolean()} | :error
Enable URL state synchronization. When url_sync section is defined, enabled is true by default.
@spec mishka_gervaz_table_url_sync_enabled!(dsl_or_extended :: module() | map()) :: boolean() | no_return()
Enable URL state synchronization. When url_sync section is defined, enabled is true by default.
@spec mishka_gervaz_table_url_sync_mode(dsl_or_extended :: module() | map()) :: {:ok, :bidirectional | :read_only} | :error
URL sync mode:
:read_only- Only read from URL on initial load (default):bidirectional- Sync URL when filters/sort/page change
@spec mishka_gervaz_table_url_sync_mode!(dsl_or_extended :: module() | map()) :: (:bidirectional | :read_only) | no_return()
URL sync mode:
:read_only- Only read from URL on initial load (default):bidirectional- Sync URL when filters/sort/page change
@spec mishka_gervaz_table_url_sync_options(dsl_or_extended :: module() | map()) :: %{ required(atom()) => any() }
mishka_gervaz.table.url_sync DSL options
Returns a map containing the and any configured or default values.
@spec mishka_gervaz_table_url_sync_params(dsl_or_extended :: module() | map()) :: {:ok, [:template | :search | :page_size | :page | :sort | :filters]} | :error
Which state to sync to URL params.
@spec mishka_gervaz_table_url_sync_params!(dsl_or_extended :: module() | map()) :: [:template | :search | :page_size | :page | :sort | :filters] | no_return()
Which state to sync to URL params.
@spec mishka_gervaz_table_url_sync_prefix(dsl_or_extended :: module() | map()) :: {:ok, String.t()} | :error
Prefix for URL params to avoid conflicts.
@spec mishka_gervaz_table_url_sync_prefix!(dsl_or_extended :: module() | map()) :: String.t() | no_return()
Prefix for URL params to avoid conflicts.
@spec page_size(module()) :: pos_integer() | nil
Get the default page size.
@spec page_size_options(module()) :: [pos_integer()] | nil
Get the default page size options.
Get the pagination config.
Get the realtime config.
Get the refresh config.
Get the theme config.
Get the UI adapter.
Get the UI adapter options.
Get the URL sync config.