tao_form 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/assets/javascripts/tao/form/shared/fields/datetime_picker.coffee +1 -0
- data/lib/assets/stylesheets/tao/form/fields/select/multiple_result.scss +4 -0
- data/lib/assets/stylesheets/tao/form/layout.scss +1 -2
- data/lib/assets/stylesheets/tao/form/shared/fields/select/_multiple_result.scss +4 -0
- data/lib/tao_form/components/check_box_component.rb +10 -6
- data/lib/tao_form/components/datetime_picker_component.rb +37 -16
- data/lib/tao_form/components/field_component.rb +7 -1
- data/lib/tao_form/components/moment_picker/base.rb +16 -16
- data/lib/tao_form/components/moment_picker/result_component.rb +6 -4
- data/lib/tao_form/components/moment_picker/segments/minute_segment_component.rb +1 -1
- data/lib/tao_form/components/radio_button_component.rb +9 -5
- data/lib/tao_form/components/select/list_component.rb +6 -10
- data/lib/tao_form/components/select/multiple_result_component.rb +29 -3
- data/lib/tao_form/components/select/result_component.rb +22 -10
- data/lib/tao_form/components/select_component.rb +42 -33
- data/lib/tao_form/components/time_picker_component.rb +1 -1
- data/lib/tao_form/inputs/boolean_input.rb +13 -12
- data/lib/tao_form/inputs/collection_select_input.rb +23 -6
- data/lib/tao_form/inputs/date_time_input.rb +11 -4
- data/lib/tao_form/inputs/grouped_collection_select_input.rb +23 -6
- data/lib/tao_form/version.rb +1 -1
- data/lib/views/components/tao_form/components/_moment_picker.html+mobile.erb +1 -1
- data/lib/views/components/tao_form/components/_select.html+mobile.erb +2 -2
- data/lib/views/components/tao_form/components/moment_picker/_result.html.erb +2 -2
- data/lib/views/components/tao_form/components/select/_multiple_result.html.erb +1 -1
- data/lib/views/components/tao_form/components/select/_result.html+mobile.erb +1 -1
- data/lib/views/components/tao_form/components/select/_result.html.erb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 619ace8cb3ec0b3a47a26c5db99922704ba92a9f
|
4
|
+
data.tar.gz: 4e7e50d1316526a50555152e64e0c12223283af3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f2db8ed70e5763f6bc141ca73e780ff257f99888bf79de1df59ca23656544afa571c6d8e95a40f4e651f6036ab6f9a2029ad8936376d2859b0c9ebc85453094d
|
7
|
+
data.tar.gz: f3380c92cacad1677c1fde7145dba3a89b51358061f794e1ff6a5ab10ca5565d49bf845b50463191f1e569a3721b0bd0d8c382aac444e97716d23979dc05077e
|
@@ -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 = {}
|
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
|
-
@
|
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
|
-
|
22
|
+
elsif builder && attribute_name
|
22
23
|
super {
|
23
|
-
builder.check_box attribute_name, {
|
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 :
|
5
|
+
attr_reader :disabled, :value, :date_picker_options, :time_picker_options
|
6
6
|
|
7
|
-
def initialize view, builder, attribute_name, options = {}
|
7
|
+
def initialize view, builder, attribute_name, options = {}
|
8
8
|
super view, builder, attribute_name, options
|
9
|
-
@
|
10
|
-
@
|
11
|
-
|
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
|
-
|
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
|
-
|
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 :
|
10
|
+
attr_reader :block_for_render, :result_options
|
11
11
|
|
12
|
-
def initialize view, builder, attribute_name
|
12
|
+
def initialize view, builder = nil, attribute_name = nil, options = {}
|
13
13
|
super view, builder, attribute_name, options
|
14
|
-
|
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,
|
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 ||=
|
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
|
59
|
-
{
|
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
|
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
|
-
|
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
|
-
|
19
|
+
elsif builder && attribute_name
|
18
20
|
super {
|
19
21
|
builder.send :"#{input_type}_field", attribute_name,
|
20
22
|
{disabled: options[:disabled], value: value}
|
@@ -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 = {}
|
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
|
-
@
|
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, {
|
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 <
|
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
|
-
|
18
|
+
elsif builder && attribute_name
|
10
19
|
super {
|
11
|
-
builder.select attribute_name, choices,
|
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, :
|
6
|
+
attr_reader :choices, :field_options, :placeholder
|
7
7
|
|
8
|
-
def initialize view, builder, attribute_name, choices = nil, options = {}
|
8
|
+
def initialize view, builder, attribute_name, choices = nil, options = {}
|
9
9
|
super view, builder, attribute_name, options
|
10
10
|
@choices = choices
|
11
|
-
@
|
11
|
+
@placeholder = options.delete(:placeholder)
|
12
12
|
|
13
|
-
|
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
|
-
|
24
|
-
super {
|
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, :
|
9
|
+
attr_reader :choices, :multiple, :result_options, :list_options, :block_for_render
|
10
10
|
|
11
|
-
def initialize view, builder, attribute_name
|
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
|
-
@
|
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
|
-
|
19
|
-
|
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
|
-
|
35
|
-
|
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
|
32
|
+
view.tao_select_list list_options
|
48
33
|
end
|
49
34
|
|
50
35
|
def clearable
|
51
|
-
@clearable ||= options[:include_blank].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
|
56
|
-
|
57
|
-
elsif
|
58
|
-
|
59
|
-
elsif
|
60
|
-
|
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
|
73
|
-
{
|
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
|
@@ -3,19 +3,12 @@ module TaoForm
|
|
3
3
|
class BooleanInput < ::SimpleForm::Inputs::BooleanInput
|
4
4
|
|
5
5
|
def input(wrapper_options = nil)
|
6
|
-
|
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
|
-
|
9
|
-
|
10
|
-
|
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
|
-
|
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,
|
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
|
-
|
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
|
-
|
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,
|
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
|
data/lib/tao_form/version.rb
CHANGED
@@ -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',
|
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
|
6
|
+
<%= tao_icon :arrow_right %>
|
7
7
|
</div>
|
8
8
|
</div>
|
9
9
|
|
10
|
-
<%= tao_slide_box direction: 'rtl', size: '-40',
|
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.
|
4
|
+
<%= tao_icon component.icon %>
|
5
5
|
</div>
|
6
6
|
<div class="result-text">
|
7
7
|
</div>
|
8
8
|
<div class="placeholder">
|
9
|
-
<%= component.
|
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 %>
|
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.
|
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-
|
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
|