tao_form 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE +20 -0
- data/README.md +28 -0
- data/Rakefile +10 -0
- data/lib/assets/icons/arrow-down.svg +12 -0
- data/lib/assets/icons/arrow-left.svg +12 -0
- data/lib/assets/icons/arrow-right.svg +12 -0
- data/lib/assets/icons/calendar.svg +12 -0
- data/lib/assets/icons/checkbox.svg +12 -0
- data/lib/assets/icons/clock.svg +12 -0
- data/lib/assets/icons/search.svg +12 -0
- data/lib/assets/icons/success.svg +12 -0
- data/lib/assets/javascripts/tao/form/element.coffee +16 -0
- data/lib/assets/javascripts/tao/form/fields/checkbox.coffee +14 -0
- data/lib/assets/javascripts/tao/form/fields/index.coffee +9 -0
- data/lib/assets/javascripts/tao/form/fields/moment_picker/element.coffee +38 -0
- data/lib/assets/javascripts/tao/form/fields/moment_picker/index.coffee +7 -0
- data/lib/assets/javascripts/tao/form/fields/moment_picker/result.coffee +25 -0
- data/lib/assets/javascripts/tao/form/fields/moment_picker/segment_list.coffee +14 -0
- data/lib/assets/javascripts/tao/form/fields/radio.coffee +14 -0
- data/lib/assets/javascripts/tao/form/fields/select/element.coffee +79 -0
- data/lib/assets/javascripts/tao/form/fields/select/index.coffee +8 -0
- data/lib/assets/javascripts/tao/form/fields/select/list.coffee +98 -0
- data/lib/assets/javascripts/tao/form/fields/select/multiple_result.coffee +41 -0
- data/lib/assets/javascripts/tao/form/fields/select/result.coffee +39 -0
- data/lib/assets/javascripts/tao/form/fields/switch.coffee +14 -0
- data/lib/assets/javascripts/tao/form/index.coffee +17 -0
- data/lib/assets/javascripts/tao/form/mobile/element.coffee +5 -0
- data/lib/assets/javascripts/tao/form/mobile/fields/checkbox.coffee +5 -0
- data/lib/assets/javascripts/tao/form/mobile/fields/index.coffee +9 -0
- data/lib/assets/javascripts/tao/form/mobile/fields/moment_picker/element.coffee +36 -0
- data/lib/assets/javascripts/tao/form/mobile/fields/moment_picker/index.coffee +7 -0
- data/lib/assets/javascripts/tao/form/mobile/fields/moment_picker/result.coffee +5 -0
- data/lib/assets/javascripts/tao/form/mobile/fields/moment_picker/segment_list.coffee +24 -0
- data/lib/assets/javascripts/tao/form/mobile/fields/radio.coffee +5 -0
- data/lib/assets/javascripts/tao/form/mobile/fields/select/element.coffee +61 -0
- data/lib/assets/javascripts/tao/form/mobile/fields/select/index.coffee +8 -0
- data/lib/assets/javascripts/tao/form/mobile/fields/select/list.coffee +13 -0
- data/lib/assets/javascripts/tao/form/mobile/fields/select/multiple_result.coffee +5 -0
- data/lib/assets/javascripts/tao/form/mobile/fields/select/result.coffee +5 -0
- data/lib/assets/javascripts/tao/form/mobile/fields/switch.coffee +5 -0
- data/lib/assets/javascripts/tao/form/mobile/index.coffee +10 -0
- data/lib/assets/javascripts/tao/form/shared/element/base.coffee +48 -0
- data/lib/assets/javascripts/tao/form/shared/fields/checkbox.coffee +21 -0
- data/lib/assets/javascripts/tao/form/shared/fields/date_picker.coffee +10 -0
- data/lib/assets/javascripts/tao/form/shared/fields/datetime_picker.coffee +62 -0
- data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/element/base.coffee +52 -0
- data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/result/base.coffee +39 -0
- data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/segment_list/base.coffee +85 -0
- data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/segments/base.coffee +25 -0
- data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/segments/date_segment.coffee +95 -0
- data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/segments/hour_segment.coffee +28 -0
- data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/segments/index.coffee +1 -0
- data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/segments/minute_segment.coffee +28 -0
- data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/segments/month_segment.coffee +46 -0
- data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/segments/year_segment.coffee +57 -0
- data/lib/assets/javascripts/tao/form/shared/fields/month_picker.coffee +10 -0
- data/lib/assets/javascripts/tao/form/shared/fields/radio.coffee +19 -0
- data/lib/assets/javascripts/tao/form/shared/fields/select/element/base.coffee +122 -0
- data/lib/assets/javascripts/tao/form/shared/fields/select/list/base.coffee +79 -0
- data/lib/assets/javascripts/tao/form/shared/fields/select/models/data_provider.coffee +75 -0
- data/lib/assets/javascripts/tao/form/shared/fields/select/models/index.coffee +2 -0
- data/lib/assets/javascripts/tao/form/shared/fields/select/models/option.coffee +37 -0
- data/lib/assets/javascripts/tao/form/shared/fields/select/multiple_result/base.coffee +81 -0
- data/lib/assets/javascripts/tao/form/shared/fields/select/result/base.coffee +57 -0
- data/lib/assets/javascripts/tao/form/shared/fields/switch.coffee +19 -0
- data/lib/assets/javascripts/tao/form/shared/fields/time_picker.coffee +10 -0
- data/lib/assets/javascripts/tao/form/shared/mixins/checkable.coffee +11 -0
- data/lib/assets/javascripts/tao/ui/icons/form.coffee +11 -0
- data/lib/assets/stylesheets/tao/form/_globals.scss +3 -0
- data/lib/assets/stylesheets/tao/form/_mixins.scss +28 -0
- data/lib/assets/stylesheets/tao/form/_variables.scss +3 -0
- data/lib/assets/stylesheets/tao/form/fields/checkbox.scss +36 -0
- data/lib/assets/stylesheets/tao/form/fields/datetime_picker.scss +22 -0
- data/lib/assets/stylesheets/tao/form/fields/index.scss +6 -0
- data/lib/assets/stylesheets/tao/form/fields/moment_picker/index.scss +10 -0
- data/lib/assets/stylesheets/tao/form/fields/moment_picker/result.scss +61 -0
- data/lib/assets/stylesheets/tao/form/fields/moment_picker/segment_list.scss +53 -0
- data/lib/assets/stylesheets/tao/form/fields/moment_picker/segments/date_segment.scss +17 -0
- data/lib/assets/stylesheets/tao/form/fields/moment_picker/segments/hour_segment.scss +15 -0
- data/lib/assets/stylesheets/tao/form/fields/moment_picker/segments/minute_segment.scss +17 -0
- data/lib/assets/stylesheets/tao/form/fields/moment_picker/segments/month_segment.scss +15 -0
- data/lib/assets/stylesheets/tao/form/fields/moment_picker/segments/year_segment.scss +15 -0
- data/lib/assets/stylesheets/tao/form/fields/radio.scss +33 -0
- data/lib/assets/stylesheets/tao/form/fields/select/index.scss +10 -0
- data/lib/assets/stylesheets/tao/form/fields/select/list.scss +61 -0
- data/lib/assets/stylesheets/tao/form/fields/select/multiple_result.scss +72 -0
- data/lib/assets/stylesheets/tao/form/fields/select/result.scss +101 -0
- data/lib/assets/stylesheets/tao/form/fields/switch.scss +12 -0
- data/lib/assets/stylesheets/tao/form/index.scss +5 -0
- data/lib/assets/stylesheets/tao/form/inputs/boolean.scss +8 -0
- data/lib/assets/stylesheets/tao/form/inputs/group.scss +2 -0
- data/lib/assets/stylesheets/tao/form/inputs/index.scss +1 -0
- data/lib/assets/stylesheets/tao/form/inputs/text.scss +2 -0
- data/lib/assets/stylesheets/tao/form/layout.scss +148 -0
- data/lib/assets/stylesheets/tao/form/mobile/_globals.scss +3 -0
- data/lib/assets/stylesheets/tao/form/mobile/_mixins.scss +22 -0
- data/lib/assets/stylesheets/tao/form/mobile/_variables.scss +3 -0
- data/lib/assets/stylesheets/tao/form/mobile/fields/checkbox.scss +2 -0
- data/lib/assets/stylesheets/tao/form/mobile/fields/datetime_picker.scss +18 -0
- data/lib/assets/stylesheets/tao/form/mobile/fields/index.scss +1 -0
- data/lib/assets/stylesheets/tao/form/mobile/fields/moment_picker/index.scss +9 -0
- data/lib/assets/stylesheets/tao/form/mobile/fields/moment_picker/result.scss +19 -0
- data/lib/assets/stylesheets/tao/form/mobile/fields/moment_picker/segment_list.scss +52 -0
- data/lib/assets/stylesheets/tao/form/mobile/fields/moment_picker/segments/date_segment.scss +14 -0
- data/lib/assets/stylesheets/tao/form/mobile/fields/moment_picker/segments/hour_segment.scss +14 -0
- data/lib/assets/stylesheets/tao/form/mobile/fields/moment_picker/segments/minute_segment.scss +14 -0
- data/lib/assets/stylesheets/tao/form/mobile/fields/moment_picker/segments/month_segment.scss +14 -0
- data/lib/assets/stylesheets/tao/form/mobile/fields/moment_picker/segments/year_segment.scss +14 -0
- data/lib/assets/stylesheets/tao/form/mobile/fields/radio.scss +2 -0
- data/lib/assets/stylesheets/tao/form/mobile/fields/select/index.scss +66 -0
- data/lib/assets/stylesheets/tao/form/mobile/fields/select/list.scss +10 -0
- data/lib/assets/stylesheets/tao/form/mobile/fields/select/multiple_result.scss +12 -0
- data/lib/assets/stylesheets/tao/form/mobile/fields/select/result.scss +28 -0
- data/lib/assets/stylesheets/tao/form/mobile/fields/switch.scss +2 -0
- data/lib/assets/stylesheets/tao/form/mobile/index.scss +5 -0
- data/lib/assets/stylesheets/tao/form/mobile/inputs/boolean.scss +7 -0
- data/lib/assets/stylesheets/tao/form/mobile/inputs/group.scss +6 -0
- data/lib/assets/stylesheets/tao/form/mobile/inputs/index.scss +1 -0
- data/lib/assets/stylesheets/tao/form/mobile/inputs/text.scss +2 -0
- data/lib/assets/stylesheets/tao/form/mobile/layout.scss +137 -0
- data/lib/assets/stylesheets/tao/form/mobile/reset.scss +30 -0
- data/lib/assets/stylesheets/tao/form/mobile/variables/_base.scss +12 -0
- data/lib/assets/stylesheets/tao/form/mobile/variables/_moment_picker.scss +9 -0
- data/lib/assets/stylesheets/tao/form/mobile/variables/_select.scss +9 -0
- data/lib/assets/stylesheets/tao/form/reset.scss +30 -0
- data/lib/assets/stylesheets/tao/form/shared/fields/_checkbox.scss +61 -0
- data/lib/assets/stylesheets/tao/form/shared/fields/_radio.scss +53 -0
- data/lib/assets/stylesheets/tao/form/shared/fields/_switch.scss +56 -0
- data/lib/assets/stylesheets/tao/form/shared/fields/moment_picker/_result.scss +46 -0
- data/lib/assets/stylesheets/tao/form/shared/fields/moment_picker/_segment_list.scss +93 -0
- data/lib/assets/stylesheets/tao/form/shared/fields/moment_picker/segments/_date_segment.scss +50 -0
- data/lib/assets/stylesheets/tao/form/shared/fields/moment_picker/segments/_hour_segment.scss +35 -0
- data/lib/assets/stylesheets/tao/form/shared/fields/moment_picker/segments/_minute_segment.scss +23 -0
- data/lib/assets/stylesheets/tao/form/shared/fields/moment_picker/segments/_month_segment.scss +27 -0
- data/lib/assets/stylesheets/tao/form/shared/fields/moment_picker/segments/_year_segment.scss +27 -0
- data/lib/assets/stylesheets/tao/form/shared/fields/select/_list.scss +136 -0
- data/lib/assets/stylesheets/tao/form/shared/fields/select/_multiple_result.scss +46 -0
- data/lib/assets/stylesheets/tao/form/shared/inputs/_boolean.scss +5 -0
- data/lib/assets/stylesheets/tao/form/shared/inputs/_group.scss +25 -0
- data/lib/assets/stylesheets/tao/form/shared/inputs/_text.scss +33 -0
- data/lib/assets/stylesheets/tao/form/variables/_base.scss +15 -0
- data/lib/assets/stylesheets/tao/form/variables/_moment_picker.scss +9 -0
- data/lib/assets/stylesheets/tao/form/variables/_select.scss +10 -0
- data/lib/tao_form.rb +5 -0
- data/lib/tao_form/components.rb +10 -0
- data/lib/tao_form/components/check_box_component.rb +29 -0
- data/lib/tao_form/components/date_picker_component.rb +25 -0
- data/lib/tao_form/components/datetime_picker_component.rb +50 -0
- data/lib/tao_form/components/field_component.rb +15 -0
- data/lib/tao_form/components/form_component.rb +24 -0
- data/lib/tao_form/components/moment_picker/base.rb +68 -0
- data/lib/tao_form/components/moment_picker/result_component.rb +31 -0
- data/lib/tao_form/components/moment_picker/segment_list_component.rb +36 -0
- data/lib/tao_form/components/moment_picker/segments.rb +6 -0
- data/lib/tao_form/components/moment_picker/segments/base.rb +17 -0
- data/lib/tao_form/components/moment_picker/segments/date_segment_component.rb +21 -0
- data/lib/tao_form/components/moment_picker/segments/hour_segment_component.rb +21 -0
- data/lib/tao_form/components/moment_picker/segments/minute_segment_component.rb +28 -0
- data/lib/tao_form/components/moment_picker/segments/month_segment_component.rb +15 -0
- data/lib/tao_form/components/moment_picker/segments/year_segment_component.rb +21 -0
- data/lib/tao_form/components/month_picker_component.rb +23 -0
- data/lib/tao_form/components/radio_button_component.rb +29 -0
- data/lib/tao_form/components/select/list_component.rb +23 -0
- data/lib/tao_form/components/select/multiple_result_component.rb +23 -0
- data/lib/tao_form/components/select/result_component.rb +35 -0
- data/lib/tao_form/components/select_component.rb +78 -0
- data/lib/tao_form/components/switch_component.rb +11 -0
- data/lib/tao_form/components/time_picker_component.rb +29 -0
- data/lib/tao_form/engine.rb +15 -0
- data/lib/tao_form/inputs.rb +9 -0
- data/lib/tao_form/inputs/boolean_input.rb +30 -0
- data/lib/tao_form/inputs/collection_check_boxes_input.rb +19 -0
- data/lib/tao_form/inputs/collection_radio_buttons_input.rb +19 -0
- data/lib/tao_form/inputs/collection_select_input.rb +21 -0
- data/lib/tao_form/inputs/date_time_input.rb +22 -0
- data/lib/tao_form/inputs/grouped_collection_select_input.rb +22 -0
- data/lib/tao_form/inputs/month_input.rb +7 -0
- data/lib/tao_form/inputs/numeric_input.rb +19 -0
- data/lib/tao_form/inputs/string_input.rb +19 -0
- data/lib/tao_form/version.rb +3 -0
- data/lib/views/components/tao_form/components/_check_box.html.erb +10 -0
- data/lib/views/components/tao_form/components/_datetime_picker.html.erb +7 -0
- data/lib/views/components/tao_form/components/_moment_picker.html+mobile.erb +17 -0
- data/lib/views/components/tao_form/components/_moment_picker.html.erb +4 -0
- data/lib/views/components/tao_form/components/_radio_button.html.erb +9 -0
- data/lib/views/components/tao_form/components/_select.html+mobile.erb +27 -0
- data/lib/views/components/tao_form/components/_select.html.erb +4 -0
- data/lib/views/components/tao_form/components/_switch.html.erb +10 -0
- data/lib/views/components/tao_form/components/moment_picker/_result.html+mobile.erb +11 -0
- data/lib/views/components/tao_form/components/moment_picker/_result.html.erb +14 -0
- data/lib/views/components/tao_form/components/moment_picker/_segment_list.html+mobile.erb +8 -0
- data/lib/views/components/tao_form/components/moment_picker/_segment_list.html.erb +4 -0
- data/lib/views/components/tao_form/components/moment_picker/segment_list/_labels.html.erb +13 -0
- data/lib/views/components/tao_form/components/moment_picker/segment_list/_segments.html.erb +7 -0
- data/lib/views/components/tao_form/components/moment_picker/segments/_date_segment.html.erb +14 -0
- data/lib/views/components/tao_form/components/moment_picker/segments/_hour_segment.html.erb +14 -0
- data/lib/views/components/tao_form/components/moment_picker/segments/_minute_segment.html.erb +9 -0
- data/lib/views/components/tao_form/components/moment_picker/segments/_month_segment.html.erb +16 -0
- data/lib/views/components/tao_form/components/moment_picker/segments/_year_segment.html.erb +10 -0
- data/lib/views/components/tao_form/components/select/_list.html.erb +18 -0
- data/lib/views/components/tao_form/components/select/_multiple_result.html+mobile.erb +3 -0
- data/lib/views/components/tao_form/components/select/_multiple_result.html.erb +7 -0
- data/lib/views/components/tao_form/components/select/_result.html+mobile.erb +10 -0
- data/lib/views/components/tao_form/components/select/_result.html.erb +14 -0
- data/vendor/assets/javascripts/moment.js +4463 -0
- data/vendor/assets/javascripts/moment/zh-cn.js +112 -0
- metadata +334 -0
@@ -0,0 +1,50 @@
|
|
1
|
+
module TaoForm
|
2
|
+
module Components
|
3
|
+
class DatetimePickerComponent < FieldComponent
|
4
|
+
|
5
|
+
attr_reader :html_options, :disabled
|
6
|
+
|
7
|
+
def initialize view, builder, attribute_name, options = {}, html_options = {}
|
8
|
+
super view, builder, attribute_name, options
|
9
|
+
@html_options = transform_html_options html_options
|
10
|
+
@disabled = @html_options[:disabled].presence || false
|
11
|
+
end
|
12
|
+
|
13
|
+
def render &block
|
14
|
+
if block_given?
|
15
|
+
super
|
16
|
+
else
|
17
|
+
super {
|
18
|
+
builder.send :datetime_field, attribute_name, {disabled: disabled}
|
19
|
+
}
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def render_date_picker
|
24
|
+
date_options = {
|
25
|
+
placeholder: options[:date_placeholder]
|
26
|
+
}
|
27
|
+
date_html_options = {disabled: disabled}
|
28
|
+
view.tao_date_picker nil, nil, date_options, date_html_options do
|
29
|
+
view.date_field_tag nil, nil, class: 'date-field', disabled: disabled
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def render_time_picker
|
34
|
+
time_options = {
|
35
|
+
placeholder: options[:time_placeholder],
|
36
|
+
minute_step: options[:minute_step]
|
37
|
+
}
|
38
|
+
time_html_options = {disabled: disabled}
|
39
|
+
view.tao_time_picker nil, nil, time_options, time_html_options do
|
40
|
+
view.time_field_tag nil, nil, class: 'time-field', disabled: disabled
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def self.component_name
|
45
|
+
:datetime_picker
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module TaoForm
|
2
|
+
module Components
|
3
|
+
class FieldComponent < TaoOnRails::Components::Base
|
4
|
+
|
5
|
+
attr_reader :builder, :attribute_name
|
6
|
+
|
7
|
+
def initialize view, builder, attribute_name, options = {}
|
8
|
+
super view, options
|
9
|
+
@builder = builder
|
10
|
+
@attribute_name = attribute_name
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module TaoForm
|
2
|
+
module Components
|
3
|
+
class FormComponent < TaoOnRails::Components::Base
|
4
|
+
|
5
|
+
attr_reader :record, :html_options
|
6
|
+
|
7
|
+
def initialize view, record, options
|
8
|
+
super view, options
|
9
|
+
@record = record
|
10
|
+
@html_options = transform_html_options(@options.delete(:html) || {})
|
11
|
+
@options[:wrapper] = :tao_mobile if view.request.variant.mobile?
|
12
|
+
end
|
13
|
+
|
14
|
+
def render &block
|
15
|
+
view.content_tag tag_name, view.simple_form_for(record, options, &block), html_options
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.component_name
|
19
|
+
:form
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
require 'tao_form/components/moment_picker/segments'
|
2
|
+
require 'tao_form/components/moment_picker/result_component'
|
3
|
+
require 'tao_form/components/moment_picker/segment_list_component'
|
4
|
+
|
5
|
+
module TaoForm
|
6
|
+
module Components
|
7
|
+
module MomentPicker
|
8
|
+
class Base < TaoForm::Components::FieldComponent
|
9
|
+
|
10
|
+
attr_reader :placeholder, :disabled, :html_options, :block_for_render
|
11
|
+
|
12
|
+
def initialize view, builder, attribute_name, options = {}, html_options = {}
|
13
|
+
super view, builder, attribute_name, options
|
14
|
+
@html_options = transform_html_options default_html_options, html_options
|
15
|
+
@disabled = @html_options[:disabled].presence || false
|
16
|
+
end
|
17
|
+
|
18
|
+
def input_type
|
19
|
+
# to be implemented
|
20
|
+
end
|
21
|
+
|
22
|
+
def segments
|
23
|
+
# to be implemented
|
24
|
+
end
|
25
|
+
|
26
|
+
def default_segment
|
27
|
+
# to be implemented
|
28
|
+
end
|
29
|
+
|
30
|
+
def render &block
|
31
|
+
@block_for_render = block
|
32
|
+
render_template 'moment_picker', &block
|
33
|
+
end
|
34
|
+
|
35
|
+
def render_result
|
36
|
+
view.tao_moment_picker_result(
|
37
|
+
builder, attribute_name, input_type: input_type, icon: options[:icon],
|
38
|
+
placeholder: placeholder, disabled: disabled, &block_for_render
|
39
|
+
)
|
40
|
+
end
|
41
|
+
|
42
|
+
def render_segment_list
|
43
|
+
view.tao_moment_picker_segment_list segments: segments,
|
44
|
+
default_segment: default_segment
|
45
|
+
end
|
46
|
+
|
47
|
+
def placeholder
|
48
|
+
@placeholder ||= if options[:placeholder].present?
|
49
|
+
options[:placeholder]
|
50
|
+
else
|
51
|
+
t :placeholder
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
private
|
56
|
+
|
57
|
+
def default_options
|
58
|
+
{icon: :calendar}
|
59
|
+
end
|
60
|
+
|
61
|
+
def default_html_options
|
62
|
+
{class: 'moment-picker'}
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module TaoForm
|
2
|
+
module Components
|
3
|
+
module MomentPicker
|
4
|
+
class ResultComponent < TaoForm::Components::FieldComponent
|
5
|
+
|
6
|
+
attr_reader :input_type
|
7
|
+
|
8
|
+
def initialize view, builder, attribute_name, options = {}
|
9
|
+
@input_type = options.delete(:input_type)
|
10
|
+
super view, builder, attribute_name, options
|
11
|
+
end
|
12
|
+
|
13
|
+
def render &block
|
14
|
+
if block_given?
|
15
|
+
super
|
16
|
+
else
|
17
|
+
super {
|
18
|
+
builder.send :"#{input_type}_field", attribute_name,
|
19
|
+
{disabled: options[:disabled]}
|
20
|
+
}
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.component_name
|
25
|
+
:moment_picker_result
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module TaoForm
|
2
|
+
module Components
|
3
|
+
module MomentPicker
|
4
|
+
class SegmentListComponent < TaoOnRails::Components::Base
|
5
|
+
|
6
|
+
attr_reader :segments
|
7
|
+
|
8
|
+
def initialize view, options = {}
|
9
|
+
@segments = options.delete(:segments)
|
10
|
+
super view, options
|
11
|
+
end
|
12
|
+
|
13
|
+
def separator_segment? segment
|
14
|
+
segment.is_a?(Hash) && segment[:separator].present?
|
15
|
+
end
|
16
|
+
|
17
|
+
def render_segment segment
|
18
|
+
if segment.is_a? Hash
|
19
|
+
options = segment
|
20
|
+
name = segment.delete(:name)
|
21
|
+
else
|
22
|
+
options = {}
|
23
|
+
name = segment
|
24
|
+
end
|
25
|
+
|
26
|
+
view.send :"tao_moment_picker_#{name}_segment", options
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.component_name
|
30
|
+
:moment_picker_segment_list
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,6 @@
|
|
1
|
+
require 'tao_form/components/moment_picker/segments/base'
|
2
|
+
require 'tao_form/components/moment_picker/segments/date_segment_component'
|
3
|
+
require 'tao_form/components/moment_picker/segments/month_segment_component'
|
4
|
+
require 'tao_form/components/moment_picker/segments/year_segment_component'
|
5
|
+
require 'tao_form/components/moment_picker/segments/hour_segment_component'
|
6
|
+
require 'tao_form/components/moment_picker/segments/minute_segment_component'
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module TaoForm
|
2
|
+
module Components
|
3
|
+
module MomentPicker
|
4
|
+
module Segments
|
5
|
+
class DateSegmentComponent < Base
|
6
|
+
|
7
|
+
def self.component_name
|
8
|
+
:moment_picker_date_segment
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def default_options
|
14
|
+
super.merge({label_format: t(:label, date: '{{ date }}')})
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module TaoForm
|
2
|
+
module Components
|
3
|
+
module MomentPicker
|
4
|
+
module Segments
|
5
|
+
class HourSegmentComponent < Base
|
6
|
+
|
7
|
+
def self.component_name
|
8
|
+
:moment_picker_hour_segment
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def default_options
|
14
|
+
super.merge({label_format: t(:label, hour: '{{ hour }}')})
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module TaoForm
|
2
|
+
module Components
|
3
|
+
module MomentPicker
|
4
|
+
module Segments
|
5
|
+
class MinuteSegmentComponent < Base
|
6
|
+
|
7
|
+
attr_reader :step
|
8
|
+
|
9
|
+
def initialize view, options = {}
|
10
|
+
super view, options
|
11
|
+
@step = options[:step].presence || 5
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.component_name
|
15
|
+
:moment_picker_minute_segment
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def default_options
|
21
|
+
super.merge({label_format: t(:label, minute: '{{ minute }}')})
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module TaoForm
|
2
|
+
module Components
|
3
|
+
module MomentPicker
|
4
|
+
module Segments
|
5
|
+
class YearSegmentComponent < Base
|
6
|
+
|
7
|
+
def self.component_name
|
8
|
+
:moment_picker_year_segment
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def default_options
|
14
|
+
super.merge({label_format: t(:label, year: '{{ year }}')})
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module TaoForm
|
2
|
+
module Components
|
3
|
+
class MonthPickerComponent < MomentPicker::Base
|
4
|
+
|
5
|
+
def input_type
|
6
|
+
@input_type ||= :month
|
7
|
+
end
|
8
|
+
|
9
|
+
def segments
|
10
|
+
@segments ||= %w(year month)
|
11
|
+
end
|
12
|
+
|
13
|
+
def default_segment
|
14
|
+
@default_segment ||= :month
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.component_name
|
18
|
+
:month_picker
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module TaoForm
|
2
|
+
module Components
|
3
|
+
class RadioButtonComponent < FieldComponent
|
4
|
+
|
5
|
+
attr_reader :checked_value, :unchecked_value
|
6
|
+
|
7
|
+
def initialize view, builder = nil, attribute_name = nil, options = {}, checked_value = '1', unchecked_value = '0'
|
8
|
+
super view, builder, attribute_name, options
|
9
|
+
@checked_value = checked_value
|
10
|
+
@unchecked_value = unchecked_value
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.component_name
|
14
|
+
:radio_button
|
15
|
+
end
|
16
|
+
|
17
|
+
def render &block
|
18
|
+
if block_given?
|
19
|
+
super
|
20
|
+
else
|
21
|
+
super {
|
22
|
+
builder.radio_button attribute_name, {}, checked_value, unchecked_value
|
23
|
+
}
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module TaoForm
|
2
|
+
module Components
|
3
|
+
module Select
|
4
|
+
class ListComponent < TaoOnRails::Components::Base
|
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
|
+
def self.component_name
|
17
|
+
:select_list
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|