Module: ActionForm::Rendering
- Included in:
- Base, Subform, SubformsCollection
- Defined in:
- lib/action_form/rendering.rb
Overview
Provides methods for rendering form elements and forms
Instance Method Summary collapse
- #render_element(element) ⇒ Object
-
#render_elements(elements = elements_instances) ⇒ Object
rubocop:disable Metrics/MethodLength.
- #render_form(**html_attributes, &block) ⇒ Object
- #render_inline_errors(element) ⇒ Object
- #render_input(element, **html_attributes) ⇒ Object
- #render_label(element) ⇒ Object
- #render_many_subforms(subforms) ⇒ Object
- #render_new_subform_button(**html_attributes, &block) ⇒ Object
- #render_remove_subform_button(**html_attributes, &block) ⇒ Object
- #render_subform(subform) ⇒ Object
- #render_submit(**html_attributes) ⇒ Object
Instance Method Details
#render_element(element) ⇒ Object
21 22 23 24 25 |
# File 'lib/action_form/rendering.rb', line 21 def render_element(element) render_label(element) render_input(element) render_inline_errors(element) if element.[:errors] end |
#render_elements(elements = elements_instances) ⇒ Object
rubocop:disable Metrics/MethodLength
6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/action_form/rendering.rb', line 6 def render_elements(elements = elements_instances) # rubocop:disable Metrics/MethodLength elements.select(&:render?).each do |element| element.helpers = helpers if element.is_a?(SubformsCollection) render_many_subforms(element) elsif element.is_a?(Subform) render_subform(element) elsif element.input_type == :hidden input(**element.input_html_attributes) else render_element(element) end end end |
#render_form(**html_attributes, &block) ⇒ Object
41 42 43 |
# File 'lib/action_form/rendering.rb', line 41 def render_form(**html_attributes, &block) form(**@html_options, **html_attributes, &block) end |
#render_inline_errors(element) ⇒ Object
37 38 39 |
# File 'lib/action_form/rendering.rb', line 37 def render_inline_errors(element) div(class: "error-messages") { element..join(", ") } end |
#render_input(element, **html_attributes) ⇒ Object
33 34 35 |
# File 'lib/action_form/rendering.rb', line 33 def render_input(element, **html_attributes) render Input.new(element, **html_attributes) end |
#render_label(element) ⇒ Object
27 28 29 30 31 |
# File 'lib/action_form/rendering.rb', line 27 def render_label(element) return if hide_label?(element) label(**element.label_html_attributes) { element.label_text } end |
#render_many_subforms(subforms) ⇒ Object
49 50 51 |
# File 'lib/action_form/rendering.rb', line 49 def render_many_subforms(subforms) render(subforms) end |
#render_new_subform_button(**html_attributes, &block) ⇒ Object
61 62 63 |
# File 'lib/action_form/rendering.rb', line 61 def (**html_attributes, &block) a(**html_attributes, onclick: safe("easyFormAddSubform(event)"), &block) end |
#render_remove_subform_button(**html_attributes, &block) ⇒ Object
57 58 59 |
# File 'lib/action_form/rendering.rb', line 57 def (**html_attributes, &block) a(**html_attributes, onclick: safe("easyFormRemoveSubform(event)"), &block) end |
#render_subform(subform) ⇒ Object
45 46 47 |
# File 'lib/action_form/rendering.rb', line 45 def render_subform(subform) render(subform) end |
#render_submit(**html_attributes) ⇒ Object
53 54 55 |
# File 'lib/action_form/rendering.rb', line 53 def render_submit(**html_attributes) input(name: "commit", type: "submit", value: "Submit", **html_attributes) end |