MishkaGervaz.Table.Web.State.Helpers (MishkaGervaz v0.0.1-alpha.2)

Copy Markdown View Source

Helper functions for MishkaGervaz.Table.Web.State.

Extracted from the __using__ macro so user overrides can reuse the same primitives the default state implementation uses.

Example

defmodule MyApp.Table.State do
  use MishkaGervaz.Table.Web.State
  alias MishkaGervaz.Table.Web.State.Helpers, as: StateHelpers

  def hydrate_relation_filter_labels(state) do
    StateHelpers.hydrate_filter(filter, acc, state)
  end
end

See MishkaGervaz.Table.Web.State, MishkaGervaz.Table.Web.State.ColumnBuilder, MishkaGervaz.Table.Web.State.FilterBuilder, MishkaGervaz.Table.Web.State.ActionBuilder, MishkaGervaz.Table.Web.State.Presentation, MishkaGervaz.Table.Web.State.UrlSync, MishkaGervaz.Table.Web.State.Access.

Summary

Functions

build_sort_field_map(columns)

@spec build_sort_field_map([map()]) :: %{required(atom()) => [atom()]}

extract_selected_ids(filter_values, filter_name)

@spec extract_selected_ids(map(), atom()) :: [String.t()]

generate_stream_name(resource)

@spec generate_stream_name(module()) :: atom()

get_archive_visible(config)

@spec get_archive_visible(map()) :: boolean()

get_default_sort(config, columns)

@spec get_default_sort(map(), [map()]) :: [{atom(), :asc | :desc}]

get_features(config, template)

@spec get_features(map(), module()) :: [atom()]

get_filter_groups(arg1)

@spec get_filter_groups(map()) :: [map()]

get_filter_mode(arg1)

@spec get_filter_mode(map()) :: atom()

get_layout_footer(arg1)

@spec get_layout_footer(map()) :: map() | nil

get_layout_header(arg1)

@spec get_layout_header(map()) :: map() | nil

get_layout_notices(arg1)

@spec get_layout_notices(map()) :: [map()]

get_max_page_size(arg1)

@spec get_max_page_size(map()) :: pos_integer() | nil

get_page_size(arg1)

@spec get_page_size(map()) :: pos_integer() | nil

get_page_size_options(arg1)

@spec get_page_size_options(map()) :: [pos_integer()] | nil

get_pagination_ui(arg1)

@spec get_pagination_ui(map()) :: struct()

get_sortable_columns(columns)

@spec get_sortable_columns([map()]) :: [atom()]

get_supports_archive(config, master_user?)

@spec get_supports_archive(map(), boolean()) :: boolean()

hydrate_filter(filter, acc, state)

@spec hydrate_filter(map(), map(), MishkaGervaz.Table.Web.State.t()) :: map()

resolve_access(resource, default_access)

@spec resolve_access(module() | nil, module()) :: module()

resolve_and_store_labels(acc, filter, selected_ids, state)

@spec resolve_and_store_labels(
  map(),
  map(),
  [String.t()],
  MishkaGervaz.Table.Web.State.t()
) :: map()

resolve_relation_loader(resource)

@spec resolve_relation_loader(module()) :: module()

resolve_url_sync(resource, default_url_sync)

@spec resolve_url_sync(module() | nil, module()) :: module()