View Source Backpex.ResourceAction behaviour (Backpex v0.6.0)

Behaviour implemented by all resource action modules.

use Backpex.ResourceAction

When you use Backpex.ResourceAction, the Backpex.ResourceAction module will set @behavior Backpex.ResourceAction. In addition it will implement the Backpex.ResourceAction.init_change function in order to generate a schemaless changeset by default.

Summary

Callbacks

The changeset to be used in the resource action. It may be used to validate form inputs.

A list of fields to be displayed in the resource action. See Backpex.Field. In addition you have to provide a type for each field in order to support changeset generation.

The handle function for the corresponding action. It receives the socket and casted and validated data (received from Ecto.Changeset.apply_action/2) and will be called when the form is valid and submitted.

Initial change. The result will be passed to changeset/3 in order to generate a changeset.

The label of the resource action. It will be the label for the resource action button.

The title of the resource action. It will be part of the page header and slide over title.

Functions

Gets the name of a resource action.

Callbacks

Link to this callback

changeset(change, attrs, metadata)

View Source
@callback changeset(
  change ::
    Ecto.Schema.t()
    | Ecto.Changeset.t()
    | {Ecto.Changeset.data(), Ecto.Changeset.types()},
  attrs :: map(),
  metadata :: keyword()
) :: Ecto.Changeset.t()

The changeset to be used in the resource action. It may be used to validate form inputs.

Additional metadata is passed as a keyword list via the third parameter.

The list of metadata:

  • :assigns - the assigns
  • :target - the name of the form target that triggered the changeset call. Default to nil if the call was not triggered by a form field.
@callback fields() :: list()

A list of fields to be displayed in the resource action. See Backpex.Field. In addition you have to provide a type for each field in order to support changeset generation.

@callback handle(socket :: Phoenix.LiveView.Socket.t(), data :: map()) ::
  {:ok, binary()} | {:error, binary()}

The handle function for the corresponding action. It receives the socket and casted and validated data (received from Ecto.Changeset.apply_action/2) and will be called when the form is valid and submitted.

It must return either {:ok, binary()} or {:error, binary()}

@callback init_change(assigns :: map()) ::
  Ecto.Schema.t()
  | Ecto.Changeset.t()
  | {Ecto.Changeset.data(), Ecto.Changeset.types()}

Initial change. The result will be passed to changeset/3 in order to generate a changeset.

This function is optional and can be used to use changesets with schemas in resource actions. If this function is not provided a changeset will be generated automatically based on the provided types in fields/0.

@callback label() :: binary()

The label of the resource action. It will be the label for the resource action button.

@callback title() :: binary()

The title of the resource action. It will be part of the page header and slide over title.

Functions

Defines Backpex.ResourceAction behaviour.

Gets the name of a resource action.