Class: Formbuilder::FormRenderer
- Inherits:
-
Object
- Object
- Formbuilder::FormRenderer
- Includes:
- ActionView::Context, ActionView::Helpers::FormTagHelper, ActionView::Helpers::UrlHelper
- Defined in:
- lib/formbuilder/form_renderer.rb
Constant Summary collapse
- DEFAULT_OPTIONS =
{ action: '', method: 'POST' }
Instance Method Summary collapse
- #hidden_fields ⇒ Object
-
#initialize(form, entry, options = {}) ⇒ FormRenderer
constructor
A new instance of FormRenderer.
- #protect_against_forgery? ⇒ Boolean
- #render_actions ⇒ Object
- #render_description ⇒ Object
- #render_error ⇒ Object
- #render_field ⇒ Object
- #render_fields ⇒ Object
- #render_label ⇒ Object
- #render_label_required ⇒ Object
- #render_length_validations ⇒ Object
- #render_min_max_validations ⇒ Object
- #to_html ⇒ Object
Constructor Details
#initialize(form, entry, options = {}) ⇒ FormRenderer
Returns a new instance of FormRenderer.
15 16 17 18 |
# File 'lib/formbuilder/form_renderer.rb', line 15 def initialize(form, entry, = {}) @form, @entry = form, entry @options = self.class::DEFAULT_OPTIONS.merge() end |
Instance Method Details
#hidden_fields ⇒ Object
28 29 30 31 32 |
# File 'lib/formbuilder/form_renderer.rb', line 28 def hidden_fields """ <input type='hidden' name='draft_only' /> """.html_safe end |
#protect_against_forgery? ⇒ Boolean
8 |
# File 'lib/formbuilder/form_renderer.rb', line 8 def protect_against_forgery?; false; end |
#render_actions ⇒ Object
93 94 95 96 97 98 99 100 |
# File 'lib/formbuilder/form_renderer.rb', line 93 def render_actions """ <div class='form-actions'> <button class='button'>Submit</button> <a class='button save-draft-button' data-loading-text='All changes saved'>Save draft</a> </div> """.html_safe end |
#render_description ⇒ Object
78 79 80 81 82 |
# File 'lib/formbuilder/form_renderer.rb', line 78 def render_description return unless @field.input_field return if @field[:field_options]["description"].blank? "<span class='help-block'>#{simple_format(@field[:field_options]["description"])}</span>" end |
#render_error ⇒ Object
72 73 74 75 76 |
# File 'lib/formbuilder/form_renderer.rb', line 72 def render_error return unless @field.input_field return unless @entry.error_for(@field) "<span class='help-block validation-message-wrapper'>#{@entry.error_for(@field)}</span>" end |
#render_field ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/formbuilder/form_renderer.rb', line 41 def render_field value = @entry.try(:response_value, @field) """ <div class='response-field-wrapper response-field-#{@field.field_type} #{@entry.try(:error_for, @field) && 'error'}'> #{render_label} #{@field.render_input(value, entry: @entry)} <div class='cf'></div> #{render_error} #{render_description} #{render_length_validations} #{render_min_max_validations} </div> """ end |
#render_fields ⇒ Object
34 35 36 37 38 39 |
# File 'lib/formbuilder/form_renderer.rb', line 34 def render_fields @form.response_fields.map do |field| @field = field render_field end.join('').html_safe end |
#render_label ⇒ Object
57 58 59 60 61 62 63 64 65 66 |
# File 'lib/formbuilder/form_renderer.rb', line 57 def render_label return unless @field.input_field """ <label> #{@field[:label]} #{render_label_required if @field.required?} </label> """ end |
#render_label_required ⇒ Object
68 69 70 |
# File 'lib/formbuilder/form_renderer.rb', line 68 def render_label_required "<abbr title='required'>*</abbr>" end |
#render_length_validations ⇒ Object
84 85 86 87 |
# File 'lib/formbuilder/form_renderer.rb', line 84 def render_length_validations return unless @field.input_field return unless !@field.has_length_validations? end |
#render_min_max_validations ⇒ Object
89 90 91 |
# File 'lib/formbuilder/form_renderer.rb', line 89 def render_min_max_validations return unless @field.input_field end |
#to_html ⇒ Object
20 21 22 23 24 25 26 |
# File 'lib/formbuilder/form_renderer.rb', line 20 def to_html form_tag @options[:action], method: @options[:method], class: 'formbuilder-form', multipart: true do hidden_fields + render_fields + render_actions end end |