Class: TaoForm::Components::DatetimePickerComponent

Inherits:
FieldComponent
  • Object
show all
Defined in:
lib/tao_form/components/datetime_picker_component.rb

Instance Attribute Summary collapse

Attributes inherited from FieldComponent

#attribute_name, #builder

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(view, builder, attribute_name, options = {}, html_options = {}) ⇒ DatetimePickerComponent

Returns a new instance of DatetimePickerComponent.



7
8
9
10
11
12
# File 'lib/tao_form/components/datetime_picker_component.rb', line 7

def initialize view, builder, attribute_name, options = {}, html_options = {}
  super view, builder, attribute_name, options
  @html_options = transform_html_options html_options
  @value = @html_options.delete(:value)
  @disabled = @html_options[:disabled].presence || false
end

Instance Attribute Details

#disabledObject (readonly)

Returns the value of attribute disabled.



5
6
7
# File 'lib/tao_form/components/datetime_picker_component.rb', line 5

def disabled
  @disabled
end

#html_optionsObject (readonly)

Returns the value of attribute html_options.



5
6
7
# File 'lib/tao_form/components/datetime_picker_component.rb', line 5

def html_options
  @html_options
end

#valueObject (readonly)

Returns the value of attribute value.



5
6
7
# File 'lib/tao_form/components/datetime_picker_component.rb', line 5

def value
  @value
end

Class Method Details

.component_nameObject



45
46
47
# File 'lib/tao_form/components/datetime_picker_component.rb', line 45

def self.component_name
  :datetime_picker
end

Instance Method Details

#render(&block) ⇒ Object



14
15
16
17
18
19
20
21
22
# File 'lib/tao_form/components/datetime_picker_component.rb', line 14

def render &block
  if block_given?
    super
  else
    super {
      builder.send :datetime_field, attribute_name, {disabled: disabled, value: value}
    }
  end
end

#render_date_pickerObject



24
25
26
27
28
29
30
31
32
# File 'lib/tao_form/components/datetime_picker_component.rb', line 24

def render_date_picker
  date_options = {
    placeholder: options[:date_placeholder]
  }
  date_html_options = {disabled: disabled}
  view.tao_date_picker nil, nil, date_options, date_html_options do
    view.date_field_tag nil, nil, class: 'date-field', disabled: disabled
  end
end

#render_time_pickerObject



34
35
36
37
38
39
40
41
42
43
# File 'lib/tao_form/components/datetime_picker_component.rb', line 34

def render_time_picker
  time_options = {
    placeholder: options[:time_placeholder],
    minute_step: options[:minute_step]
  }
  time_html_options = {disabled: disabled}
  view.tao_time_picker nil, nil, time_options, time_html_options do
    view.time_field_tag nil, nil, class: 'time-field', disabled: disabled
  end
end