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.
- 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
|