Class: Avo::Fields::BadgeField
- Defined in:
- lib/avo/fields/badge_field.rb
Defined Under Namespace
Classes: IndexComponent, ShowComponent
Instance Attribute Summary collapse
-
#options ⇒ Object
readonly
Returns the value of attribute options.
Attributes inherited from BaseField
#action, #autocomplete, #block, #computable, #computed, #computed_value, #copyable, #default, #for_attribute, #for_presentation_only, #format_display_using, #format_edit_using, #format_form_using, #format_index_using, #format_new_using, #format_show_using, #format_using, #help, #id, #label_help, #null_values, #nullable, #panel_name, #readonly, #record, #required, #size, #sortable, #stacked, #summarizable, #user, #width
Attributes included from Concerns::IsDisabled
Attributes included from Concerns::HasHTMLAttributes
Attributes included from Concerns::VisibleInDifferentViews
#show_on_edit, #show_on_index, #show_on_new, #show_on_preview, #show_on_show
Attributes included from Concerns::IsVisible
Attributes included from Concerns::IsResourceItem
Instance Method Summary collapse
-
#color ⇒ Object
Maps field value to a color based on @options configuration Example: “Done” -> “success” if options = { success: [:done, :complete] }.
- #icon ⇒ Object
-
#initialize(id, **args, &block) ⇒ BadgeField
constructor
A new instance of BadgeField.
- #options_for_filter ⇒ Object
- #style ⇒ Object
Methods inherited from BaseField
#apply_update_using, #assign_value, #attribute_id, #custom?, #custom_name?, #database_id, #default_name, #execute_context, #fill_field, #form_field_label, #has_attribute?, #has_own_panel?, #hidden_in_reflection?, #meta, #name, #name_override, #parent, #placeholder, #plural_name, #record_errors, #resolve_attribute, #table_header_class, #table_header_label, #to_permitted_param, #translated_name, #translated_plural_name, #translation_key, #type, #updatable, #value, #visible_in_reflection?, #width_class, #width_option
Methods included from Concerns::DomId
Methods included from Concerns::UseViewComponents
#component_for_view, #view_component_name, #view_component_namespace
Methods included from Concerns::IsRequired
Methods included from Concerns::IsDisabled
Methods included from Concerns::IsReadonly
Methods included from Concerns::HasHTMLAttributes
Methods included from Concerns::HasDefault
Methods included from Concerns::HasHelpers
Methods included from Concerns::VisibleInDifferentViews
#except_on, #hide_on, #initialize_views, #only_on, #post_initialize, #show_on, #show_on_create, #show_on_update, #visible_in_view?
Methods included from Concerns::IsVisible
Methods included from Concerns::HasItemType
#is_card?, #is_collaboration?, #is_field?, #is_header?, #is_heading?, #is_panel?, #is_row?, #is_sidebar?, #is_tab?, #is_tab_group?, #is_tool?
Methods included from Concerns::IsResourceItem
Methods included from Concerns::Hydration
Constructor Details
#initialize(id, **args, &block) ⇒ BadgeField
Returns a new instance of BadgeField.
6 7 8 9 10 11 12 13 14 |
# File 'lib/avo/fields/badge_field.rb', line 6 def initialize(id, **args, &block) super hide_on [:edit, :new] @options = args[:options] || {} @style = args[:style] @icon = args[:icon] end |
Instance Attribute Details
#options ⇒ Object (readonly)
Returns the value of attribute options.
4 5 6 |
# File 'lib/avo/fields/badge_field.rb', line 4 def @options end |
Instance Method Details
#color ⇒ Object
Maps field value to a color based on @options configuration Example: “Done” -> “success” if options = { success: [:done, :complete] }
22 23 24 25 26 27 28 29 |
# File 'lib/avo/fields/badge_field.rb', line 22 def color return "neutral" if value.blank? values = @options.find do |_, configured_values| Array.wrap(configured_values).map { |v| v.to_s }.include?(value.to_s) end values&.first&.to_s || "neutral" end |
#icon ⇒ Object
35 36 37 |
# File 'lib/avo/fields/badge_field.rb', line 35 def icon execute_context(@icon) end |
#options_for_filter ⇒ Object
16 17 18 |
# File 'lib/avo/fields/badge_field.rb', line 16 def @options.values.flatten.uniq end |
#style ⇒ Object
31 32 33 |
# File 'lib/avo/fields/badge_field.rb', line 31 def style execute_context(@style) || "subtle" end |