Class: SimpleFormExtension::Inputs::SelectizeInput
- Inherits:
-
SimpleForm::Inputs::Base
- Object
- SimpleForm::Inputs::Base
- SimpleFormExtension::Inputs::SelectizeInput
- Includes:
- Translations
- Defined in:
- lib/simple_form_extension/inputs/selectize_input.rb
Instance Method Summary collapse
- #collection ⇒ Object
- #creatable? ⇒ Boolean
-
#input(wrapper_options = {}) ⇒ Object
This field only allows local select options (serialized into JSON) Searching for remote ones will be implemented later.
- #max_items ⇒ Object
- #multi? ⇒ Boolean
- #serialized_value ⇒ Object
- #value ⇒ Object
Methods included from Translations
Instance Method Details
#collection ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/simple_form_extension/inputs/selectize_input.rb', line 44 def collection if (collection = [:collection]) if enumerable?(collection) collection.map(&method(:serialize_option)) else (object.send(collection) || []).map(&method(:serialize_option)) end else [] end end |
#creatable? ⇒ Boolean
31 32 33 |
# File 'lib/simple_form_extension/inputs/selectize_input.rb', line 31 def creatable? !![:creatable] end |
#input(wrapper_options = {}) ⇒ Object
This field only allows local select options (serialized into JSON) Searching for remote ones will be implemented later.
Data attributes that may be useful :
:'search-url' => search_url,
:'search-param' => search_param,
:'preload' => preload,
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/simple_form_extension/inputs/selectize_input.rb', line 15 def input( = {}) [:data] ||= {} [:data].merge!( :'selectize' => true, :'value' => serialized_value, :'creatable' => creatable?, :'multi' => multi?, :'add-translation' => _translate('selectize.add'), :'collection' => collection, :'max-items' => max_items ) @builder.hidden_field attribute_name, end |
#max_items ⇒ Object
40 41 42 |
# File 'lib/simple_form_extension/inputs/selectize_input.rb', line 40 def max_items [:max_items] end |
#multi? ⇒ Boolean
35 36 37 38 |
# File 'lib/simple_form_extension/inputs/selectize_input.rb', line 35 def multi? (.key?(:multi) && !![:multi]) || enumerable?(value) end |
#serialized_value ⇒ Object
56 57 58 59 60 61 62 63 64 |
# File 'lib/simple_form_extension/inputs/selectize_input.rb', line 56 def serialized_value if multi? value.map do |item| { text: item, value: item } end else value && { text: value, value: value } end end |
#value ⇒ Object
66 67 68 |
# File 'lib/simple_form_extension/inputs/selectize_input.rb', line 66 def value @value ||= (:value) { object.send(attribute_name) } end |