Class: RubyUIAdmin::Fields::StatusField

Inherits:
BaseField
  • Object
show all
Defined in:
lib/ruby_ui_admin/fields/status_field.rb

Overview

Renders the value as a status badge with a leading dot. Configure with options: { success: %w[done], warning: %w[pending], danger: %w[failed] }.

Constant Summary collapse

VARIANT_FOR_STATE =
{success: :success, warning: :warning, danger: :destructive, info: :primary}.freeze

Instance Attribute Summary

Attributes inherited from BaseField

#block, #id, #options, #resource

Instance Method Summary collapse

Methods inherited from BaseField

#database_id, #default_hidden_views, #default_value, #description, field_type, #fill, #fill_value, #filterable?, #formatted_value, #has_default?, #help, #initialize, #link_to_record?, #name, #permit_param, #permit_params, #permitted_param, #placeholder, #readonly?, register_as, #required?, #sort_lambda, #sortable?, #type, #value, #visible?, #visible_in_view?

Constructor Details

This class inherits a constructor from RubyUIAdmin::Fields::BaseField

Instance Method Details

#variant_for(record) ⇒ Object



12
13
14
15
16
17
18
# File 'lib/ruby_ui_admin/fields/status_field.rb', line 12

def variant_for(record)
  current = value(record).to_s
  states = options[:options] || {}

  state = states.find { |_key, values| Array(values).map(&:to_s).include?(current) }&.first
  VARIANT_FOR_STATE.fetch(state&.to_sym, :gray)
end