LightningWeb.WorkflowLive.Helpers (Lightning v2.14.5-pre1)

View Source

Helper functions for the Workflow LiveViews.

Summary

Functions

Builds a URL with query parameters based on parameter definitions.

Creates chat-related parameters

Creates code view parameters

Creates orthogonal parameters (excludes mode and selection)

Creates a parameter definition with common defaults.

Creates parameters excluding mode and selection

Creates a parameter that pulls from query_params

Creates standard URL parameters (all common params)

Creates URL parameters ignoring v (all common params except version tag)

Creates parameters with custom overrides

Determines if a workflow is enabled based on its triggers. Accepts either a Workflow struct or an Ecto.Changeset.

Creates workflow input run parameters

Generates a tooltip describing the workflow's state. Accepts either a Workflow struct or an Ecto.Changeset.

Functions

broadcast_updated_params(socket, params)

build_url(assigns, params)

Builds a URL with query parameters based on parameter definitions.

Parameters

  • assigns - The assigns from the LiveView
  • params - List of parameter definitions. Each definition is a keyword list with:
    • :name - The parameter name in the URL (required)
    • :value - The value or a function that receives (assigns, params) (required)
    • :when - Condition as boolean or function that receives (assigns, params) (default: true)
    • :transform - Optional transformation function applied to the value

chat_params()

Creates chat-related parameters

code_view_params()

Creates code view parameters

orthogonal_params()

Creates orthogonal parameters (excludes mode and selection)

param(name, value, opts \\ [])

Creates a parameter definition with common defaults.

params_without_mode_selection()

Creates parameters excluding mode and selection

query_param(name)

Creates a parameter that pulls from query_params

run_workflow(workflow_or_changeset, params, opts)

@spec run_workflow(
  Ecto.Changeset.t(Lightning.Workflows.Workflow.t())
  | Lightning.Workflows.Workflow.t(),
  map(),
  selected_job: map(),
  created_by: map(),
  project: map()
) ::
  {:ok,
   %{
     workorder: Lightning.WorkOrder.t(),
     workflow: Lightning.Workflows.Workflow.t(),
     message: Lightning.Extensions.UsageLimiting.message()
   }}
  | {:error, Ecto.Changeset.t(Lightning.Workflows.Workflow.t())}
  | {:error, Ecto.Changeset.t(Lightning.WorkOrders.Manual.t())}
  | {:error, Lightning.Extensions.UsageLimiting.message()}
  | {:error, :workflow_deleted}

save_workflow(changeset, actor)

@spec save_workflow(
  Ecto.Changeset.t(),
  struct()
) ::
  {:ok, Lightning.Workflows.Workflow.t()}
  | {:error,
     Ecto.Changeset.t()
     | Lightning.Extensions.UsageLimiting.message()
     | :workflow_deleted}

standard_params()

Creates standard URL parameters (all common params)

subscribe_to_params_update(socket_id)

to_latest_params()

Creates URL parameters ignoring v (all common params except version tag)

with_params(overrides \\ [])

Creates parameters with custom overrides

workflow_enabled?(workflow)

Determines if a workflow is enabled based on its triggers. Accepts either a Workflow struct or an Ecto.Changeset.

workflow_input_params(selection_id)

Creates workflow input run parameters

workflow_state_tooltip(changeset)

Generates a tooltip describing the workflow's state. Accepts either a Workflow struct or an Ecto.Changeset.