Module: CmAdmin::ViewHelpers::FormFieldHelper
- Included in:
- FormHelper
- Defined in:
- lib/cm_admin/view_helpers/form_field_helper.rb
Instance Method Summary collapse
- #input_field_for_column(f, field) ⇒ Object
-
#select_collection_value(object, field) ⇒ Object
Refactor: Collection argument can be removed.
Instance Method Details
#input_field_for_column(f, field) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/cm_admin/view_helpers/form_field_helper.rb', line 4 def input_field_for_column(f, field) return unless field.display_if.call(f.object) value = field.helper_method ? send(field.helper_method, f.object, field.field_name) : f.object.send(field.field_name) is_required = f.object._validators[field.field_name].map(&:kind).include?(:presence) required_class = is_required ? 'required' : '' case field.input_type when :integer return f.text_field field.field_name, class: "normal-input #{required_class}", disabled: field.disabled, value: value, placeholder: "Enter #{field.field_name.to_s.humanize.downcase}", data: { behaviour: 'integer-only' } when :decimal return f.number_field field.field_name, class: "normal-input #{required_class}", disabled: field.disabled, value: value, placeholder: "Enter #{field.field_name.to_s.downcase.gsub('_', ' ')}", data: { behaviour: 'decimal-only' } when :string return f.text_field field.field_name, class: "normal-input #{required_class}", disabled: field.disabled, value: value, placeholder: "Enter #{field.field_name.to_s.downcase.gsub('_', ' ')}" when :single_select return f.select field.field_name, (select_collection_value(f.object, field), f.object.send(field.field_name)), {include_blank: field.placeholder.to_s}, class: "normal-input #{required_class} select-2", disabled: field.disabled when :multi_select return f.select field.field_name, (select_collection_value(f.object, field), f.object.send(field.field_name)), {include_blank: "Select #{field.field_name.to_s.downcase.gsub('_', ' ')}"}, class: "normal-input #{required_class} select-2", disabled: field.disabled, multiple: true when :date return f.text_field field.field_name, class: "normal-input #{required_class}", disabled: field.disabled, value: value&.strftime('%d-%m-%Y'), placeholder: "Enter #{field.field_name.to_s.downcase.gsub('_', ' ')}", data: { behaviour: 'date-only' } when :date_time return f.text_field field.field_name, class: "normal-input #{required_class}", disabled: field.disabled, value: value, placeholder: "Enter #{field.field_name.to_s.downcase.gsub('_', ' ')}", data: { behaviour: 'date-time' } when :text return f.text_area field.field_name, class: "normal-input #{required_class}", placeholder: "Enter #{field.field_name.to_s.downcase.gsub('_', ' ')}" when :rich_text return f.rich_text_area field.field_name, class: "normal-input #{required_class}", placeholder: "Enter #{field.field_name.to_s.downcase.gsub('_', ' ')}" when :single_file_upload return f.file_field field.field_name, class: "normal-input #{required_class}" when :multi_file_upload return f.file_field field.field_name, multiple: true, class: "normal-input #{required_class}" when :hidden return f.hidden_field field.field_name, value: value, name: field.html_attr[:name] || "#{f.object_name}[#{field.field_name}]" end end |
#select_collection_value(object, field) ⇒ Object
Refactor: Collection argument can be removed. helper_method argument will accept a method where value can be passed.
39 40 41 42 43 44 45 46 47 |
# File 'lib/cm_admin/view_helpers/form_field_helper.rb', line 39 def select_collection_value(object, field) if field.helper_method collection = send(field.helper_method, object, field.field_name) elsif field.collection collection = field.collection else collection = [] end end |