Class: Tenon::FormBuilder
- Inherits:
-
ActionView::Helpers::FormBuilder
- Object
- ActionView::Helpers::FormBuilder
- Tenon::FormBuilder
- Includes:
- ActionView::Helpers::TagHelper
- Defined in:
- app/form_builders/tenon/form_builder.rb
Instance Attribute Summary collapse
-
#output_buffer ⇒ Object
Returns the value of attribute output_buffer.
Instance Method Summary collapse
- #datetime_widget(method_name, options = {}) ⇒ Object
- #nested_fields(object, params = {}) ⇒ Object
- #super_label ⇒ Object
- #super_text_area ⇒ Object
- #super_text_field ⇒ Object
- #tenon_content(method_name) ⇒ Object
- #text_area(method_name, options = {}) ⇒ Object
- #text_area_content(method_name, options = {}, language = nil, language_title = nil) ⇒ Object
- #text_field(method_name, options = {}) ⇒ Object
- #text_field_content(method_name, options = {}, language = nil, language_title = nil) ⇒ Object
- #title_field(method_name, options = {}) ⇒ Object
- #title_field_content(method_name, options = {}, language = nil, language_title = nil) ⇒ Object
Instance Attribute Details
#output_buffer ⇒ Object
Returns the value of attribute output_buffer.
4 5 6 |
# File 'app/form_builders/tenon/form_builder.rb', line 4 def output_buffer @output_buffer end |
Instance Method Details
#datetime_widget(method_name, options = {}) ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'app/form_builders/tenon/form_builder.rb', line 45 def (method_name, = {}) label = label(method_name, [:label], nil, nil) explanation = explanation([:explanation]) on = content_tag(:tr) do [ content_tag(:td, 'On: '), content_tag(:td, super_text_field("#{method_name}_date", class: 'datepicker', size: 12, value: @object.send(method_name) ? @object.send(method_name).strftime('%Y-%m-%d') : ([:default_date] || Time.now.strftime('%Y-%m-%d')))) ].join('\n').html_safe end at = content_tag(:tr) do [ content_tag(:td, 'At: '), content_tag(:td, super_text_field("#{method_name}_time", value: @object.send(method_name) ? @object.send(method_name).strftime('%l:%M%p').strip : ([:default_time] || Time.now.strftime('%l:%M%p').strip), size: 7)) ].join('\n').html_safe end table = content_tag(:table, on + at, class: 'datetime_select') content = label(method_name, [:label], nil, nil) content += explanation([:explanation]) content += content_tag(:div, table, class: 'inset datetime-widget') end |
#nested_fields(object, params = {}) ⇒ Object
68 69 70 71 72 |
# File 'app/form_builders/tenon/form_builder.rb', line 68 def nested_fields(object, params = {}) fields_for object.to_s.pluralize do |nf| @template.render "#{object}_fields", { f: nf }.merge(params) end end |
#super_label ⇒ Object
5 |
# File 'app/form_builders/tenon/form_builder.rb', line 5 alias_method :super_label, :label |
#super_text_area ⇒ Object
34 |
# File 'app/form_builders/tenon/form_builder.rb', line 34 alias_method :super_text_area, :text_area |
#super_text_field ⇒ Object
23 |
# File 'app/form_builders/tenon/form_builder.rb', line 23 alias_method :super_text_field, :text_field |
#tenon_content(method_name) ⇒ Object
7 8 9 |
# File 'app/form_builders/tenon/form_builder.rb', line 7 def tenon_content(method_name) @template.render 'tenon/tenon_content/builder', f: self, field: method_name end |
#text_area(method_name, options = {}) ⇒ Object
35 36 37 |
# File 'app/form_builders/tenon/form_builder.rb', line 35 def text_area(method_name, = {}) content = build_content(:text_area_content, method_name, ) end |
#text_area_content(method_name, options = {}, language = nil, language_title = nil) ⇒ Object
39 40 41 42 43 |
# File 'app/form_builders/tenon/form_builder.rb', line 39 def text_area_content(method_name, = {}, language = nil, language_title = nil) label = label(method_name, [:label], language, language_title) explanation = explanation([:explanation]) label + explanation + super_text_area(get_method(method_name, language), ) end |
#text_field(method_name, options = {}) ⇒ Object
24 25 26 |
# File 'app/form_builders/tenon/form_builder.rb', line 24 def text_field(method_name, = {}) content = build_content(:text_field_content, method_name, ) end |
#text_field_content(method_name, options = {}, language = nil, language_title = nil) ⇒ Object
28 29 30 31 32 |
# File 'app/form_builders/tenon/form_builder.rb', line 28 def text_field_content(method_name, = {}, language = nil, language_title = nil) label = label(method_name, [:label], language, language_title) explanation = explanation([:explanation]) label + explanation + super_text_field(get_method(method_name, language), ) end |
#title_field(method_name, options = {}) ⇒ Object
11 12 13 14 |
# File 'app/form_builders/tenon/form_builder.rb', line 11 def title_field(method_name, = {}) [:last] = true content = build_content(:title_field_content, method_name, ) end |
#title_field_content(method_name, options = {}, language = nil, language_title = nil) ⇒ Object
16 17 18 19 20 21 |
# File 'app/form_builders/tenon/form_builder.rb', line 16 def title_field_content(method_name, = {}, language = nil, language_title = nil) label = label(method_name, [:label], language, language_title) explanation = explanation([:explanation]) row_label = content_tag(:div, label + explanation, class: 'label') row_label.html_safe + @template.text_field(@object_name, get_method(method_name, language), .merge(class: 'title')) + content_tag(:div, '', class: 'spacer') end |