Class: Avo::Fields::CheckboxListField

Inherits:
BaseField
  • Object
show all
Defined in:
lib/avo/fields/checkbox_list_field.rb

Defined Under Namespace

Classes: EditComponent, ItemComponent

Instance Attribute Summary

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 Avo::Fields::Concerns::IsDisabled

#disabled

Attributes included from Avo::Fields::Concerns::HasHTMLAttributes

#html

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

#visible

Attributes included from Concerns::IsResourceItem

#resource, #view

Instance Method Summary collapse

Methods inherited from BaseField

#apply_update_using, #assign_value, #attribute_id, #custom?, #custom_name?, #database_id, #default_name, #execute_context, #form_field_label, #has_attribute?, #has_own_panel?, #hidden_in_reflection?, #meta, #name, #name_override, #options_for_filter, #parent, #placeholder, #plural_name, #record_errors, #resolve_attribute, #table_header_class, #table_header_label, #translated_name, #translated_plural_name, #translation_key, #type, #updatable, #value, #visible_in_reflection?, #width_class, #width_option

Methods included from Avo::Fields::Concerns::DomId

#model_name, #to_key

Methods included from Avo::Fields::Concerns::UseViewComponents

#component_for_view, #view_component_name, #view_component_namespace

Methods included from Avo::Fields::Concerns::IsRequired

#is_required?

Methods included from Avo::Fields::Concerns::IsDisabled

#is_disabled?

Methods included from Avo::Fields::Concerns::IsReadonly

#is_readonly?

Methods included from Avo::Fields::Concerns::HasHTMLAttributes

#get_html

Methods included from Avo::Fields::Concerns::HasDefault

#computed_default_value

Methods included from Concerns::HasHelpers

#helpers

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

#visible?

Methods included from Concerns::HasItemType

#is_card?, #is_collaboration?, #is_field?, #is_header?, #is_heading?, #is_panel?, #is_sidebar?, #is_tab?, #is_tab_group?, #is_tool?

Methods included from Concerns::IsResourceItem

#visible?

Constructor Details

#initialize(id, **args, &block) ⇒ CheckboxListField

Returns a new instance of CheckboxListField.

Raises:

  • (ArgumentError)


6
7
8
9
10
11
12
13
# File 'lib/avo/fields/checkbox_list_field.rb', line 6

def initialize(id, **args, &block)
  raise ArgumentError, "Missing required `options:` keyword for checkbox_list field" if !args.key?(:options) || args[:options].nil?

  super

  @options = args[:options]
  @inline_search = args[:inline_search]
end

Instance Method Details

#fill_field(record, key, value, params) ⇒ Object



73
74
75
# File 'lib/avo/fields/checkbox_list_field.rb', line 73

def fill_field(record, key, value, params)
  super(record, key, Array(value).reject(&:blank?), params)
end

#hydrateObject



15
16
17
18
19
# File 'lib/avo/fields/checkbox_list_field.rb', line 15

def hydrate(...)
  remove_instance_variable(:@memoized_options) if defined?(@memoized_options)

  super
end

#inline_search?Boolean

Returns:

  • (Boolean)


61
62
63
# File 'lib/avo/fields/checkbox_list_field.rb', line 61

def inline_search?
  execute_context(@inline_search) == true
end

#normalize_id(value) ⇒ Object



65
66
67
# File 'lib/avo/fields/checkbox_list_field.rb', line 65

def normalize_id(value)
  value&.to_s
end

#option_description(option) ⇒ Object



49
50
51
# File 'lib/avo/fields/checkbox_list_field.rb', line 49

def option_description(option)
  option[:description] || option["description"]
end

#option_hint?(option) ⇒ Boolean

Returns:

  • (Boolean)


53
54
55
# File 'lib/avo/fields/checkbox_list_field.rb', line 53

def option_hint?(option)
  option[:hint] || option["hint"]
end

#option_id(option) ⇒ Object



27
28
29
# File 'lib/avo/fields/checkbox_list_field.rb', line 27

def option_id(option)
  option[:id] || option["id"]
end

#option_image_alt(option) ⇒ Object



45
46
47
# File 'lib/avo/fields/checkbox_list_field.rb', line 45

def option_image_alt(option)
  option[:image_alt] || option["image_alt"] || option[:avatar_alt] || option["avatar_alt"]
end

#option_image_format(option) ⇒ Object



41
42
43
# File 'lib/avo/fields/checkbox_list_field.rb', line 41

def option_image_format(option)
  option[:image_format] || option["image_format"]
end

#option_image_url(option) ⇒ Object Also known as: option_avatar_url



35
36
37
# File 'lib/avo/fields/checkbox_list_field.rb', line 35

def option_image_url(option)
  option[:avatar_url] || option["avatar_url"] || option[:image_url] || option["image_url"]
end

#option_title(option) ⇒ Object



31
32
33
# File 'lib/avo/fields/checkbox_list_field.rb', line 31

def option_title(option)
  option[:title] || option["title"]
end

#optionsObject



21
22
23
24
25
# File 'lib/avo/fields/checkbox_list_field.rb', line 21

def options
  return @memoized_options if defined?(@memoized_options)

  @memoized_options = execute_context(@options)
end

#selectable_optionsObject



57
58
59
# File 'lib/avo/fields/checkbox_list_field.rb', line 57

def selectable_options
  options.reject { |option| option_hint?(option) }
end

#to_permitted_paramObject



69
70
71
# File 'lib/avo/fields/checkbox_list_field.rb', line 69

def to_permitted_param
  ["#{id}": []]
end