tao_form 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. checksums.yaml +4 -4
  2. data/lib/assets/javascripts/tao/form/shared/fields/datetime_picker.coffee +1 -0
  3. data/lib/assets/stylesheets/tao/form/fields/select/multiple_result.scss +4 -0
  4. data/lib/assets/stylesheets/tao/form/layout.scss +1 -2
  5. data/lib/assets/stylesheets/tao/form/shared/fields/select/_multiple_result.scss +4 -0
  6. data/lib/tao_form/components/check_box_component.rb +10 -6
  7. data/lib/tao_form/components/datetime_picker_component.rb +37 -16
  8. data/lib/tao_form/components/field_component.rb +7 -1
  9. data/lib/tao_form/components/moment_picker/base.rb +16 -16
  10. data/lib/tao_form/components/moment_picker/result_component.rb +6 -4
  11. data/lib/tao_form/components/moment_picker/segments/minute_segment_component.rb +1 -1
  12. data/lib/tao_form/components/radio_button_component.rb +9 -5
  13. data/lib/tao_form/components/select/list_component.rb +6 -10
  14. data/lib/tao_form/components/select/multiple_result_component.rb +29 -3
  15. data/lib/tao_form/components/select/result_component.rb +22 -10
  16. data/lib/tao_form/components/select_component.rb +42 -33
  17. data/lib/tao_form/components/time_picker_component.rb +1 -1
  18. data/lib/tao_form/inputs/boolean_input.rb +13 -12
  19. data/lib/tao_form/inputs/collection_select_input.rb +23 -6
  20. data/lib/tao_form/inputs/date_time_input.rb +11 -4
  21. data/lib/tao_form/inputs/grouped_collection_select_input.rb +23 -6
  22. data/lib/tao_form/version.rb +1 -1
  23. data/lib/views/components/tao_form/components/_moment_picker.html+mobile.erb +1 -1
  24. data/lib/views/components/tao_form/components/_select.html+mobile.erb +2 -2
  25. data/lib/views/components/tao_form/components/moment_picker/_result.html.erb +2 -2
  26. data/lib/views/components/tao_form/components/select/_multiple_result.html.erb +1 -1
  27. data/lib/views/components/tao_form/components/select/_result.html+mobile.erb +1 -1
  28. data/lib/views/components/tao_form/components/select/_result.html.erb +1 -1
  29. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d96005eb91438b5a448dc3f866d0a295f3ebf431
4
- data.tar.gz: 6ca595c40e534aab13fa386bbacbde325ce7c5c7
3
+ metadata.gz: 619ace8cb3ec0b3a47a26c5db99922704ba92a9f
4
+ data.tar.gz: 4e7e50d1316526a50555152e64e0c12223283af3
5
5
  SHA512:
6
- metadata.gz: 205f4bbfa701369898fec6afbf39de7df13c8e96636708d459fa4777fbc8a086ed2ec51fc38194bbc19e0a1de1378b0d8ee5a2f2ab1679a8d335a90e8d3fd944
7
- data.tar.gz: 48e6b9d3e5288fc6df5e7f3489071715daddf42a7f9d70e1875cae85d14d6853b84f416c612289201a80d0c6b450e3ad92bb8ccb21de791ab4ba06a0a262f26d
6
+ metadata.gz: f2db8ed70e5763f6bc141ca73e780ff257f99888bf79de1df59ca23656544afa571c6d8e95a40f4e651f6036ab6f9a2029ad8936376d2859b0c9ebc85453094d
7
+ data.tar.gz: f3380c92cacad1677c1fde7145dba3a89b51358061f794e1ff6a5ab10ca5565d49bf845b50463191f1e569a3721b0bd0d8c382aac444e97716d23979dc05077e
@@ -22,6 +22,7 @@ class Tao.Form.DatetimePicker extends TaoComponent
22
22
  _bind: ->
23
23
  @on 'tao:change', '.moment-picker', (e, m) =>
24
24
  @_syncMoment()
25
+ @trigger 'tao:change', [@moment]
25
26
 
26
27
  datePickerDeferred = $.Deferred()
27
28
  timePickerDeferred = $.Deferred()
@@ -42,6 +42,10 @@ tao-multiple-select-result {
42
42
  margin: 0 0.25rem 0 0;
43
43
  }
44
44
 
45
+ .text {
46
+ line-height: 1.5rem;
47
+ }
48
+
45
49
  &:focus {
46
50
  box-shadow: 0px 0px 2px 0px rgba($border-color, 0.5);
47
51
  }
@@ -2,10 +2,9 @@
2
2
 
3
3
  tao-form {
4
4
  display: block;
5
+ margin: 2em 0 0 0;
5
6
 
6
7
  form {
7
- margin: 2em 0 0 0;
8
-
9
8
  fieldset {
10
9
  border: none;
11
10
  padding: 0;
@@ -30,6 +30,10 @@ tao-multiple-select-result {
30
30
  margin: 0 0 0 0.5rem;
31
31
  fill: $lighter-grey-color;
32
32
  }
33
+
34
+ .name {
35
+ line-height: 1.5rem;
36
+ }
33
37
  }
34
38
 
35
39
  &.disabled {
@@ -2,13 +2,14 @@ module TaoForm
2
2
  module Components
3
3
  class CheckBoxComponent < FieldComponent
4
4
 
5
- attr_reader :checked_value, :unchecked_value, :checked
5
+ attr_reader :checked_value, :unchecked_value, :checked, :disabled
6
6
 
7
- def initialize view, builder = nil, attribute_name = nil, options = {}, checked_value = '1', unchecked_value = '0'
7
+ def initialize view, builder = nil, attribute_name = nil, options = {}
8
8
  super view, builder, attribute_name, options
9
+ @checked_value = @options.delete(:checked_value)
10
+ @unchecked_value = @options.delete(:unchecked_value)
9
11
  @checked = @options.delete(:checked)
10
- @checked_value = checked_value
11
- @unchecked_value = unchecked_value
12
+ @disabled = @options.delete(:disabled)
12
13
  end
13
14
 
14
15
  def self.component_name
@@ -18,9 +19,12 @@ module TaoForm
18
19
  def render &block
19
20
  if block_given?
20
21
  super
21
- else
22
+ elsif builder && attribute_name
22
23
  super {
23
- builder.check_box attribute_name, {checked: checked}, checked_value, unchecked_value
24
+ builder.check_box attribute_name, {
25
+ checked: checked,
26
+ disabled: disabled
27
+ }, checked_value, unchecked_value
24
28
  }
25
29
  end
26
30
  end
@@ -2,13 +2,15 @@ module TaoForm
2
2
  module Components
3
3
  class DatetimePickerComponent < FieldComponent
4
4
 
5
- attr_reader :html_options, :disabled, :value
5
+ attr_reader :disabled, :value, :date_picker_options, :time_picker_options
6
6
 
7
- def initialize view, builder, attribute_name, options = {}, html_options = {}
7
+ def initialize view, builder, attribute_name, options = {}
8
8
  super view, builder, attribute_name, options
9
- @html_options = transform_html_options html_options
10
- @value = @html_options.delete(:value)
11
- @disabled = @html_options[:disabled].presence || false
9
+ @value = @options.delete(:value)
10
+ @disabled = @options[:disabled].presence || false
11
+
12
+ init_date_picker_options
13
+ init_time_picker_options
12
14
  end
13
15
 
14
16
  def render &block
@@ -22,22 +24,13 @@ module TaoForm
22
24
  end
23
25
 
24
26
  def render_date_picker
25
- date_options = {
26
- placeholder: options[:date_placeholder]
27
- }
28
- date_html_options = {disabled: disabled}
29
- view.tao_date_picker nil, nil, date_options, date_html_options do
27
+ view.tao_date_picker date_picker_options do
30
28
  view.date_field_tag nil, nil, class: 'date-field', disabled: disabled
31
29
  end
32
30
  end
33
31
 
34
32
  def render_time_picker
35
- time_options = {
36
- placeholder: options[:time_placeholder],
37
- minute_step: options[:minute_step]
38
- }
39
- time_html_options = {disabled: disabled}
40
- view.tao_time_picker nil, nil, time_options, time_html_options do
33
+ view.tao_time_picker time_picker_options do
41
34
  view.time_field_tag nil, nil, class: 'time-field', disabled: disabled
42
35
  end
43
36
  end
@@ -46,6 +39,34 @@ module TaoForm
46
39
  :datetime_picker
47
40
  end
48
41
 
42
+ private
43
+
44
+ def init_date_picker_options
45
+ @date_picker_options = {
46
+ placeholder: options.delete(:date_placeholder),
47
+ disabled: disabled
48
+ }
49
+
50
+ if options.key?(:date_icon)
51
+ @date_picker_options[:date_icon] = options.delete(:date_icon)
52
+ end
53
+ end
54
+
55
+ def init_time_picker_options
56
+ @time_picker_options = {
57
+ placeholder: options.delete(:time_placeholder),
58
+ disabled: disabled
59
+ }
60
+
61
+ if options.key?(:time_icon)
62
+ @time_picker_options[:time_icon] = options.delete(:time_icon)
63
+ end
64
+
65
+ if options.key?(:minute_step)
66
+ @time_picker_options[:minute_step] = options.delete(:minute_step)
67
+ end
68
+ end
69
+
49
70
  end
50
71
  end
51
72
  end
@@ -4,7 +4,13 @@ module TaoForm
4
4
 
5
5
  attr_reader :builder, :attribute_name
6
6
 
7
- def initialize view, builder, attribute_name, options = {}
7
+ def initialize view, builder = nil, attribute_name = nil, options = {}
8
+ if builder.is_a? Hash
9
+ options = builder
10
+ builder = nil
11
+ attribute_name = nil
12
+ end
13
+
8
14
  super view, options
9
15
  @builder = builder
10
16
  @attribute_name = attribute_name
@@ -7,15 +7,14 @@ module TaoForm
7
7
  module MomentPicker
8
8
  class Base < TaoForm::Components::FieldComponent
9
9
 
10
- attr_reader :placeholder, :disabled, :html_options, :block_for_render, :value
10
+ attr_reader :block_for_render, :result_options
11
11
 
12
- def initialize view, builder, attribute_name, options = {}, html_options = {}
12
+ def initialize view, builder = nil, attribute_name = nil, options = {}
13
13
  super view, builder, attribute_name, options
14
- @html_options = transform_html_options default_html_options, html_options
15
- @value = @html_options.delete(:value)
16
- @disabled = @html_options[:disabled].presence || false
14
+ init_result_options
17
15
  end
18
16
 
17
+
19
18
  def input_type
20
19
  # to be implemented
21
20
  end
@@ -35,8 +34,7 @@ module TaoForm
35
34
 
36
35
  def render_result
37
36
  view.tao_moment_picker_result(
38
- builder, attribute_name, input_type: input_type, icon: options[:icon],
39
- placeholder: placeholder, disabled: disabled, value: value, &block_for_render
37
+ builder, attribute_name, result_options, &block_for_render
40
38
  )
41
39
  end
42
40
 
@@ -46,21 +44,23 @@ module TaoForm
46
44
  end
47
45
 
48
46
  def placeholder
49
- @placeholder ||= if options[:placeholder].present?
50
- options[:placeholder]
51
- else
52
- t :placeholder
53
- end
47
+ @placeholder ||= options.delete(:placeholder) || t(:placeholder)
54
48
  end
55
49
 
56
50
  private
57
51
 
58
- def default_options
59
- {icon: :calendar}
52
+ def init_result_options
53
+ @result_options = {
54
+ input_type: input_type,
55
+ placeholder: placeholder,
56
+ icon: options.delete(:icon),
57
+ disabled: options[:disabled],
58
+ value: options.delete(:value)
59
+ }
60
60
  end
61
61
 
62
- def default_html_options
63
- {class: 'moment-picker'}
62
+ def default_options
63
+ {icon: :calendar, class: 'moment-picker'}
64
64
  end
65
65
 
66
66
  end
@@ -3,18 +3,20 @@ module TaoForm
3
3
  module MomentPicker
4
4
  class ResultComponent < TaoForm::Components::FieldComponent
5
5
 
6
- attr_reader :input_type, :value
6
+ attr_reader :input_type, :value, :icon, :placeholder
7
7
 
8
- def initialize view, builder, attribute_name, options = {}
8
+ def initialize view, builder = nil, attribute_name = nil, options = {}
9
+ super view, builder, attribute_name, options
9
10
  @input_type = options.delete(:input_type)
10
11
  @value = options.delete(:value)
11
- super view, builder, attribute_name, options
12
+ @icon = options.delete(:icon)
13
+ @placeholder = options.delete(:placeholder)
12
14
  end
13
15
 
14
16
  def render &block
15
17
  if block_given?
16
18
  super
17
- else
19
+ elsif builder && attribute_name
18
20
  super {
19
21
  builder.send :"#{input_type}_field", attribute_name,
20
22
  {disabled: options[:disabled], value: value}
@@ -8,7 +8,7 @@ module TaoForm
8
8
 
9
9
  def initialize view, options = {}
10
10
  super view, options
11
- @step = options[:step].presence || 5
11
+ @step = options.delete(:step)
12
12
  end
13
13
 
14
14
  def self.component_name
@@ -2,13 +2,14 @@ module TaoForm
2
2
  module Components
3
3
  class RadioButtonComponent < FieldComponent
4
4
 
5
- attr_reader :checked_value, :unchecked_value, :checked
5
+ attr_reader :checked_value, :unchecked_value, :checked, :disabled
6
6
 
7
- def initialize view, builder = nil, attribute_name = nil, options = {}, checked_value = '1', unchecked_value = '0'
7
+ def initialize view, builder = nil, attribute_name = nil, options = {}
8
8
  super view, builder, attribute_name, options
9
+ @checked_value = @options.delete(:checked_value)
10
+ @unchecked_value = @options.delete(:unchecked_value)
9
11
  @checked = @options.delete(:checked)
10
- @checked_value = checked_value
11
- @unchecked_value = unchecked_value
12
+ @disabled = @options.delete(:disabled)
12
13
  end
13
14
 
14
15
  def self.component_name
@@ -20,7 +21,10 @@ module TaoForm
20
21
  super
21
22
  else
22
23
  super {
23
- builder.radio_button attribute_name, {checked: checked}, checked_value, unchecked_value
24
+ builder.radio_button attribute_name, {
25
+ checked: checked,
26
+ disabled: disabled
27
+ }, checked_value, unchecked_value
24
28
  }
25
29
  end
26
30
  end
@@ -3,20 +3,16 @@ module TaoForm
3
3
  module Select
4
4
  class ListComponent < TaoOnRails::Components::Base
5
5
 
6
- def initialize view, options = {}
7
- super view, options
8
-
9
- if html_options[:class].present?
10
- html_options[:class] += " select-list"
11
- else
12
- html_options[:class] = "select-list"
13
- end
14
- end
15
-
16
6
  def self.component_name
17
7
  :select_list
18
8
  end
19
9
 
10
+ private
11
+
12
+ def default_options
13
+ {class: 'select-list'}
14
+ end
15
+
20
16
  end
21
17
  end
22
18
  end
@@ -1,14 +1,26 @@
1
1
  module TaoForm
2
2
  module Components
3
3
  module Select
4
- class MultipleResultComponent < ResultComponent
4
+ class MultipleResultComponent < TaoForm::Components::FieldComponent
5
+
6
+ attr_reader :choices, :field_options
7
+
8
+ def initialize view, builder, attribute_name, choices = nil, options = {}
9
+ super view, builder, attribute_name, options
10
+ @choices = choices
11
+
12
+ init_field_options
13
+ end
5
14
 
6
15
  def render &block
7
16
  if block_given?
8
17
  super
9
- else
18
+ elsif builder && attribute_name
10
19
  super {
11
- builder.select attribute_name, choices, options, {multiple: true}
20
+ builder.select attribute_name, choices, field_options, {
21
+ disabled: options[:disabled],
22
+ multiple: true
23
+ }
12
24
  }
13
25
  end
14
26
  end
@@ -17,6 +29,20 @@ module TaoForm
17
29
  :multiple_select_result
18
30
  end
19
31
 
32
+ private
33
+
34
+ def init_field_options
35
+ @field_options = {
36
+ disabled: options.delete(:option_disabled),
37
+ include_blank: options.delete(:include_blank),
38
+ prompt: options.delete(:prompt)
39
+ }
40
+ end
41
+
42
+ def default_options
43
+ {class: 'select-result'}
44
+ end
45
+
20
46
  end
21
47
  end
22
48
  end
@@ -3,25 +3,23 @@ module TaoForm
3
3
  module Select
4
4
  class ResultComponent < TaoForm::Components::FieldComponent
5
5
 
6
- attr_reader :choices, :html_options
6
+ attr_reader :choices, :field_options, :placeholder
7
7
 
8
- def initialize view, builder, attribute_name, choices = nil, options = {}, html_options
8
+ def initialize view, builder, attribute_name, choices = nil, options = {}
9
9
  super view, builder, attribute_name, options
10
10
  @choices = choices
11
- @html_options = transform_html_options html_options
11
+ @placeholder = options.delete(:placeholder)
12
12
 
13
- if @html_options[:class].present?
14
- @html_options[:class] += " select-result"
15
- else
16
- @html_options[:class] = "select-result"
17
- end
13
+ init_field_options
18
14
  end
19
15
 
20
16
  def render &block
21
17
  if block_given?
22
18
  super
23
- else
24
- super {builder.select attribute_name, choices, options}
19
+ elsif builder && attribute_name
20
+ super {
21
+ builder.select attribute_name, choices, field_options, {disabled: options[:disabled]}
22
+ }
25
23
  end
26
24
  end
27
25
 
@@ -29,6 +27,20 @@ module TaoForm
29
27
  :select_result
30
28
  end
31
29
 
30
+ private
31
+
32
+ def init_field_options
33
+ @field_options = {
34
+ disabled: options.delete(:option_disabled),
35
+ include_blank: options.delete(:include_blank),
36
+ prompt: options.delete(:prompt)
37
+ }
38
+ end
39
+
40
+ def default_options
41
+ {class: 'select-result'}
42
+ end
43
+
32
44
  end
33
45
  end
34
46
  end
@@ -6,23 +6,16 @@ module TaoForm
6
6
  module Components
7
7
  class SelectComponent < FieldComponent
8
8
 
9
- attr_reader :choices, :html_options, :disabled, :multiple, :max_list_size, :block_for_render
9
+ attr_reader :choices, :multiple, :result_options, :list_options, :block_for_render
10
10
 
11
- def initialize view, builder, attribute_name, choices = nil, options = {}, html_options = {}
11
+ def initialize view, builder = nil, attribute_name = nil, choices = nil, options = {}
12
12
  super view, builder, attribute_name, options
13
13
  @choices = choices
14
- @max_list_size = html_options.delete(:max_list_size)
15
- @disabled = html_options[:disabled].presence || false
16
- @multiple = @options.delete(:multiple) || html_options.delete(:multiple) || false
14
+ @multiple = @options[:multiple].presence || false
17
15
 
18
- html_options[:multiple] = @multiple
19
- html_options[:remote] = @options.delete(:remote)
20
-
21
- if html_options[:remote].present? && html_options[:remote].is_a?(Hash)
22
- html_options[:remote] = html_options[:remote].to_json
23
- end
24
-
25
- @html_options = transform_html_options html_options
16
+ init_result_options
17
+ init_list_options
18
+ init_remote_options
26
19
  end
27
20
 
28
21
  def render &block
@@ -31,33 +24,25 @@ module TaoForm
31
24
  end
32
25
 
33
26
  def render_result
34
- if multiple
35
- view.tao_multiple_select_result(
36
- builder, attribute_name, choices, options, disabled: disabled, &block_for_render
37
- )
38
- else
39
- view.tao_select_result(
40
- builder, attribute_name, choices, options,
41
- placeholder: placeholder, clearable: clearable, disabled: disabled, &block_for_render
42
- )
43
- end
27
+ result_method = multiple ? :tao_multiple_select_result : :tao_select_result
28
+ view.send(result_method, builder, attribute_name, choices, result_options, &block_for_render)
44
29
  end
45
30
 
46
31
  def render_list
47
- view.tao_select_list max_list_size: max_list_size
32
+ view.tao_select_list list_options
48
33
  end
49
34
 
50
35
  def clearable
51
- @clearable ||= options[:include_blank].present? || options[:prompt].present?
36
+ @clearable ||= options.delete(:clearable) || result_options[:include_blank].present? || result_options[:prompt].present?
52
37
  end
53
38
 
54
39
  def placeholder
55
- @placeholder ||= if options[:placeholder].present?
56
- options[:placeholder]
57
- elsif options[:include_blank].present? && options[:include_blank].is_a?(String)
58
- options[:include_blank]
59
- elsif options[:prompt].present? && options[:prompt].is_a?(String)
60
- options[:prompt]
40
+ @placeholder ||= if (text = options.delete(:placeholder))
41
+ text
42
+ elsif result_options[:include_blank].present? && result_options[:include_blank].is_a?(String)
43
+ result_options[:include_blank]
44
+ elsif result_options[:prompt].present? && result_options[:prompt].is_a?(String)
45
+ result_options[:prompt]
61
46
  else
62
47
  t :placeholder
63
48
  end
@@ -69,8 +54,32 @@ module TaoForm
69
54
 
70
55
  private
71
56
 
72
- def default_options
73
- {icon: :arrow_down}
57
+ def init_result_options
58
+ @result_options = {
59
+ disabled: options.delete(:disabled),
60
+ option_disabled: options.delete(:option_disabled),
61
+ include_blank: options.delete(:include_blank),
62
+ prompt: options.delete(:prompt)
63
+ }
64
+
65
+ unless multiple
66
+ @result_options.merge!({
67
+ placeholder: placeholder,
68
+ clearable: clearable
69
+ })
70
+ end
71
+ end
72
+
73
+ def init_list_options
74
+ @list_options = {
75
+ max_list_size: options.delete(:max_list_size)
76
+ }
77
+ end
78
+
79
+ def init_remote_options
80
+ if options[:remote].present? && options[:remote].is_a?(Hash)
81
+ options[:remote] = options[:remote].to_json
82
+ end
74
83
  end
75
84
 
76
85
  end
@@ -21,7 +21,7 @@ module TaoForm
21
21
  private
22
22
 
23
23
  def default_options
24
- super.merge({icon: :clock})
24
+ super.merge({icon: :clock, minute_step: 5})
25
25
  end
26
26
 
27
27
  end
@@ -3,19 +3,12 @@ module TaoForm
3
3
  class BooleanInput < ::SimpleForm::Inputs::BooleanInput
4
4
 
5
5
  def input(wrapper_options = nil)
6
- merged_input_options = merge_wrapper_options(input_html_options, wrapper_options)
6
+ merged_html_options = merge_wrapper_options(input_html_options, wrapper_options)
7
+ merged_component_options = component_options.merge(merged_html_options)
7
8
 
8
- if switch?
9
- input_content = template.tao_switch(
10
- @builder, attribute_name, merged_input_options,
11
- checked_value, unchecked_value
12
- )
13
- else
14
- input_content = template.tao_check_box(
15
- @builder, attribute_name, merged_input_options,
16
- checked_value, unchecked_value
17
- )
18
- end
9
+ input_content = template.send(switch? ? :tao_switch : :tao_check_box,
10
+ @builder, attribute_name, merged_component_options
11
+ )
19
12
 
20
13
  template.content_tag(:div, input_content, class: 'boolean-field')
21
14
  end
@@ -25,6 +18,14 @@ module TaoForm
25
18
  def switch?
26
19
  input_options[:switch]
27
20
  end
21
+
22
+ def component_options
23
+ @component_options ||= {
24
+ disabled: input_options[:disabled],
25
+ checked_value: checked_value,
26
+ unchecked_value: unchecked_value
27
+ }
28
+ end
28
29
  end
29
30
  end
30
31
  end
@@ -4,18 +4,35 @@ module TaoForm
4
4
 
5
5
  def input(wrapper_options = nil)
6
6
  label_method, value_method = detect_collection_methods
7
+ merged_html_options = merge_wrapper_options(input_html_options, wrapper_options)
8
+ merged_component_options = component_options.merge(merged_html_options)
7
9
 
8
- merged_input_options = merge_wrapper_options(input_html_options, wrapper_options)
9
- multiple = input_options[:multiple] || merged_input_options[:multiple] || false
10
- input_options[:icon] = :arrow_right
11
-
12
- template.send :tao_select, @builder, attribute_name, nil, input_options, merged_input_options do
10
+ template.send :tao_select, merged_component_options do
13
11
  @builder.collection_select(
14
- attribute_name, collection, value_method, label_method, input_options, {multiple: multiple}
12
+ attribute_name, collection, value_method, label_method, field_options, {
13
+ multiple: merged_component_options[:multiple],
14
+ disabled: merged_component_options[:disabled]
15
+ }
15
16
  )
16
17
  end
17
18
  end
18
19
 
20
+ private
21
+
22
+ def component_options
23
+ @component_options ||= input_options.slice(:multiple, :remote, :max_list_size,
24
+ :searchable_size, :clearable, :placeholder, :disabled, :option_disabled,
25
+ :include_blank, :prompt)
26
+ end
27
+
28
+ def field_options
29
+ @field_options ||= begin
30
+ opts = input_options.slice(:selected, :option_disabled, :include_blank, :prompt)
31
+ opts[:disabled] = opts.delete(:option_disabled)
32
+ opts
33
+ end
34
+ end
35
+
19
36
  end
20
37
  end
21
38
  end
@@ -3,11 +3,10 @@ module TaoForm
3
3
  class DateTimeInput < ::SimpleForm::Inputs::DateTimeInput
4
4
 
5
5
  def input(wrapper_options = nil)
6
- merged_input_options = merge_wrapper_options(input_html_options, wrapper_options)
7
-
6
+ merged_html_options = merge_wrapper_options(input_html_options, wrapper_options)
7
+ merged_component_options = component_options.merge(merged_html_options)
8
8
  template.send(
9
- :"tao_#{input_type}_picker", @builder, attribute_name,
10
- input_options, merged_input_options
9
+ :"tao_#{input_type}_picker", @builder, attribute_name, merged_component_options
11
10
  )
12
11
  end
13
12
 
@@ -17,6 +16,14 @@ module TaoForm
17
16
  true
18
17
  end
19
18
 
19
+ def component_options
20
+ @component_options ||= input_options.slice(
21
+ :value_format, :display_format, :date_display_format, :time_display_format,
22
+ :date_placeholder, :time_placeholder, :placeholder, :icon, :disabled,
23
+ :value, :minute_step, :date_icon, :time_icon
24
+ )
25
+ end
26
+
20
27
  end
21
28
  end
22
29
  end
@@ -4,19 +4,36 @@ module TaoForm
4
4
 
5
5
  def input(wrapper_options = nil)
6
6
  label_method, value_method = detect_collection_methods
7
+ merged_html_options = merge_wrapper_options(input_html_options, wrapper_options)
8
+ merged_component_options = component_options.merge(merged_html_options)
7
9
 
8
- merged_input_options = merge_wrapper_options(input_html_options, wrapper_options)
9
- multiple = input_options[:multiple] || merged_input_options[:multiple] || false
10
- input_options[:icon] = :arrow_right
11
-
12
- template.send :tao_select, @builder, attribute_name, nil, input_options, merged_input_options do
10
+ template.send :tao_select, merged_component_options do
13
11
  @builder.grouped_collection_select(
14
12
  attribute_name, grouped_collection, group_method, group_label_method,
15
- value_method, label_method, input_options, {multiple: multiple}
13
+ value_method, label_method, field_options, {
14
+ multiple: merged_component_options[:multiple],
15
+ disabled: merged_component_options[:disabled]
16
+ }
16
17
  )
17
18
  end
18
19
  end
19
20
 
21
+ private
22
+
23
+ def component_options
24
+ @component_options ||= input_options.slice(:multiple, :remote, :max_list_size,
25
+ :searchable_size, :clearable, :placeholder, :disabled, :option_disabled,
26
+ :include_blank, :prompt, :icon)
27
+ end
28
+
29
+ def field_options
30
+ @field_options ||= begin
31
+ opts = input_options.slice(:selected, :option_disabled, :include_blank, :prompt)
32
+ opts[:disabled] = opts.delete(:option_disabled)
33
+ opts
34
+ end
35
+ end
36
+
20
37
  end
21
38
  end
22
39
  end
@@ -1,3 +1,3 @@
1
1
  module TaoForm
2
- VERSION = '0.1.3'
2
+ VERSION = '0.1.4'
3
3
  end
@@ -1,7 +1,7 @@
1
1
  <%= content_tag component.tag_name, component.html_options do %>
2
2
  <%= component.render_result %>
3
3
 
4
- <%= tao_slide_box direction: 'rtl', size: '-40', with_close_button: false, class: 'slide-box' do %>
4
+ <%= tao_slide_box direction: 'rtl', size: '-40', without_padding: true, modal: true, class: 'slide-box' do %>
5
5
  <div class="header">
6
6
  <div class="left">
7
7
  <%= link_to 'javascript:;', class: 'link-close', title: I18n.t('tao_form.components.moment_picker.close') do %>
@@ -3,11 +3,11 @@
3
3
  <div class="selected-text"></div>
4
4
  <div class="placeholder"><%= component.placeholder %></div>
5
5
  <div class="icon-wrapper">
6
- <%= tao_icon component.options[:icon] %>
6
+ <%= tao_icon :arrow_right %>
7
7
  </div>
8
8
  </div>
9
9
 
10
- <%= tao_slide_box direction: 'rtl', size: '-40', with_close_button: false, class: 'slide-box' do %>
10
+ <%= tao_slide_box direction: 'rtl', size: '-40', without_padding: true, modal: true, class: 'slide-box' do %>
11
11
  <div class="header">
12
12
  <div class="left">
13
13
  <%= link_to 'javascript:;', class: 'link-close', title: component.t(:close) do %>
@@ -1,12 +1,12 @@
1
1
  <%= content_tag component.tag_name, component.html_options do %>
2
2
  <%= yield %>
3
3
  <div class="icon-wrapper">
4
- <%= tao_icon component.options[:icon] %>
4
+ <%= tao_icon component.icon %>
5
5
  </div>
6
6
  <div class="result-text">
7
7
  </div>
8
8
  <div class="placeholder">
9
- <%= component.html_options[:placeholder].presence %>
9
+ <%= component.placeholder %>
10
10
  </div>
11
11
  <%= link_to 'javascript:;', tabindex: '-1', class: 'link-clear', title: component.t(:clear_option) do %>
12
12
  <%= tao_icon :close %>
@@ -2,6 +2,6 @@
2
2
  <%= yield %>
3
3
  <%= link_to 'javascript:;', class: 'link-add' do %>
4
4
  <span class="icon-add">&#65291;</span>
5
- <%= component.t(:add) %>
5
+ <span class="text"><%= component.t(:add) %></span>
6
6
  <% end %>
7
7
  <% end %>
@@ -2,7 +2,7 @@
2
2
  <%= yield %>
3
3
  <%= link_to 'javascript:;', class: 'link-clear' do %>
4
4
  <span>
5
- <%= component.t :clear_selected %>:
5
+ <%= component.t :clear_selected %>:
6
6
  <span class="selected-text"></span>
7
7
  </span>
8
8
  <%= tao_icon :close %>
@@ -3,7 +3,7 @@
3
3
  <div class="selected-text">
4
4
  </div>
5
5
  <div class="placeholder">
6
- <%= component.html_options[:placeholder].presence %>
6
+ <%= component.placeholder %>
7
7
  </div>
8
8
  <div class="icon-wrapper">
9
9
  <%= tao_icon :arrow_down %>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tao_form
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - your name
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-15 00:00:00.000000000 Z
11
+ date: 2017-06-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: tao_on_rails