Module: Mokio::Backend::DynamicFieldsHelper
- Defined in:
- app/helpers/mokio/backend/dynamic_fields_helper.rb
Instance Method Summary collapse
- #dynamic_fields_link_to_add_row(f, association, **args) ⇒ Object
-
#dynamic_fields_render_all(form_obj, association, **args, &block) ⇒ Object
form_obj: main form builder object association: has_many association name (sym) args: partial: partial name with fields ( default association_name “) fields_container_class: css class for container when partials views should be loaded container_id: main container id for dynamic fields table_view: true/false - table html tags delete_button_class: css class add_button_class: add new row css class add_new_button_value: text in button add delete_row_button_value: Text in button delete delete_row_button_message_value: Confirmation message.
- #dynamic_fields_render_delete(form_obj, **args) ⇒ Object
- #dynamic_fields_render_part(obj, **args) ⇒ Object
Instance Method Details
#dynamic_fields_link_to_add_row(f, association, **args) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'app/helpers/mokio/backend/dynamic_fields_helper.rb', line 5 def dynamic_fields_link_to_add_row(f, association, **args) new_object = f.object.send(association).klass.new id = new_object.object_id partial = args[:partial] || association.to_s.singularize = args[:add_new_button_value] || I18n.t('backend.dynamic_fields.add_new_button') css_class = args[:add_button_class] || "btn btn-primary" fields = f.simple_fields_for(association, new_object, child_index: id) do |builder| if block_given? yield builder else render(partial, form_obj: builder) end end link_to(, '#',class: "add_fields " + css_class, data: {id: id, form: association,fields: fields.gsub("\n", "")}) end |
#dynamic_fields_render_all(form_obj, association, **args, &block) ⇒ Object
form_obj: main form builder object association: has_many association name (sym) args: partial: partial name with fields ( default association_name “) fields_container_class: css class for container when partials views should be loaded container_id: main container id for dynamic fields table_view: true/false - table html tags delete_button_class: css class add_button_class: add new row css class add_new_button_value: text in button add delete_row_button_value: Text in button delete delete_row_button_message_value: Confirmation message
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'app/helpers/mokio/backend/dynamic_fields_helper.rb', line 40 def dynamic_fields_render_all(form_obj,association,**args,&block) partial = args[:partial] || association.to_s.singularize fields_container_class = args[:fields_container_class] || "dynamic_fields_container_fields" container_id = args[:container_id] || "#{association.to_s.singularize}_container" content_rows = form_obj.simple_fields_for association do |builder_object| if block_given? yield builder_object else dynamic_fields_render_part builder_object,partial: "#{partial}" end end content = content_tag(:div,class: fields_container_class) do content_rows end if(args[:table_view]) content = content_tag(:table,class: "table") do content_tag(:tbody,class: fields_container_class) do content_rows end end end add_row = content_tag('div',class: 'form-actions') do dynamic_fields_link_to_add_row(form_obj, association, class: 'btn btn-primary',partial: "#{partial}",&block) end content << add_row main_content = content_tag(:div,id: container_id) do content end main_content << javascript_tag("backend_dynamic_fields('##{container_id}')") main_content end |
#dynamic_fields_render_delete(form_obj, **args) ⇒ Object
80 81 82 83 84 85 86 87 |
# File 'app/helpers/mokio/backend/dynamic_fields_helper.rb', line 80 def dynamic_fields_render_delete(form_obj,**args) css_class = args[:delete_button_class] || "btn btn-primary" = args[:delete_row_button_value] || I18n.t('backend.dynamic_fields.delete_row_button') = args[:delete_row_button_message_value] || I18n.t('backend.dynamic_fields.delete_row_button_message') content = form_obj.hidden_field :_destroy content << link_to(, '#', data: { message: } ,class: "dynamic_fields_remove_row #{css_class}") end |
#dynamic_fields_render_part(obj, **args) ⇒ Object
22 23 24 25 |
# File 'app/helpers/mokio/backend/dynamic_fields_helper.rb', line 22 def dynamic_fields_render_part(obj,**args) partial = args[:partial] || association.to_s.singularize render "#{partial}", form_obj: obj end |