Lotus.Storage.DashboardFilter (Lotus v0.16.4)

Copy Markdown View Source

Represents a filter control for a Lotus dashboard.

Dashboard filters are input controls displayed at the top of a dashboard that allow users to filter data across multiple cards. Each filter can be mapped to one or more query variables in the dashboard's cards.

Filter Types

  • :text - Free-form text input
  • :number - Numeric input
  • :date - Single date selection
  • :date_range - Date range selection (start/end)
  • :select - Dropdown selection

Widgets

  • :input - Standard text/number input field
  • :select - Dropdown select
  • :date_picker - Date picker calendar
  • :date_range_picker - Date range picker with start/end

The config field stores widget-specific configuration like select options, date formats, or validation rules.

Summary

Types

t()

@type t() :: %Lotus.Storage.DashboardFilter{
  __meta__: term(),
  card_mappings:
    [Lotus.Storage.DashboardCardFilterMapping.t()]
    | Ecto.Association.NotLoaded.t(),
  config: map(),
  dashboard: Lotus.Storage.Dashboard.t() | Ecto.Association.NotLoaded.t(),
  dashboard_id: term(),
  default_value: String.t() | nil,
  filter_type: :text | :number | :date | :date_range | :select,
  id: term(),
  inserted_at: DateTime.t(),
  label: String.t(),
  name: String.t(),
  position: non_neg_integer(),
  updated_at: DateTime.t(),
  widget: :input | :select | :date_picker | :date_range_picker
}

Functions

changeset(filter, attrs)

new(attrs)

update(filter, attrs)