tao_form 0.1.9 → 0.1.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/config/locales/tao_form/components/date_range_picker/en.yml +5 -0
- data/config/locales/tao_form/components/date_range_picker/zh-CN.yml +7 -0
- data/lib/assets/javascripts/tao/form/fields/checkbox.coffee +2 -1
- data/lib/assets/javascripts/tao/form/fields/index.coffee +1 -0
- data/lib/assets/javascripts/tao/form/fields/moment_picker/element.coffee +1 -1
- data/lib/assets/javascripts/tao/form/fields/moment_picker/result.coffee +1 -1
- data/lib/assets/javascripts/tao/form/fields/moment_picker/segment_list.coffee +1 -1
- data/lib/assets/javascripts/tao/form/fields/radio.coffee +1 -1
- data/lib/assets/javascripts/tao/form/fields/select/element.coffee +3 -3
- data/lib/assets/javascripts/tao/form/fields/select/list.coffee +8 -3
- data/lib/assets/javascripts/tao/form/fields/select/multiple_result.coffee +4 -4
- data/lib/assets/javascripts/tao/form/fields/select/result.coffee +5 -5
- data/lib/assets/javascripts/tao/form/fields/switch.coffee +1 -1
- data/lib/assets/javascripts/tao/form/index.coffee +1 -7
- data/lib/assets/javascripts/tao/form/mobile/fields/index.coffee +1 -0
- data/lib/assets/javascripts/tao/form/mobile/fields/moment_picker/element.coffee +2 -2
- data/lib/assets/javascripts/tao/form/mobile/fields/moment_picker/segment_list.coffee +1 -1
- data/lib/assets/javascripts/tao/form/mobile/fields/select/element.coffee +13 -4
- data/lib/assets/javascripts/tao/form/mobile/fields/select/list.coffee +0 -8
- data/lib/assets/javascripts/tao/form/mobile/index.coffee +1 -0
- data/lib/assets/javascripts/tao/form/shared/element/base.coffee +6 -2
- data/lib/assets/javascripts/tao/form/shared/fields/checkbox.coffee +5 -1
- data/lib/assets/javascripts/tao/form/shared/fields/date_range_picker.coffee +75 -0
- data/lib/assets/javascripts/tao/form/shared/fields/datetime_picker.coffee +16 -6
- data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/element/base.coffee +30 -13
- data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/result/base.coffee +2 -2
- data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/segment_list/base.coffee +5 -5
- data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/segments/base.coffee +2 -0
- data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/segments/date_segment.coffee +12 -3
- data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/segments/hour_segment.coffee +1 -1
- data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/segments/minute_segment.coffee +1 -1
- data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/segments/month_segment.coffee +2 -2
- data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/segments/year_segment.coffee +3 -3
- data/lib/assets/javascripts/tao/form/shared/fields/radio.coffee +5 -1
- data/lib/assets/javascripts/tao/form/shared/fields/select/element/base.coffee +24 -20
- data/lib/assets/javascripts/tao/form/shared/fields/select/list/base.coffee +21 -3
- data/lib/assets/javascripts/tao/form/shared/fields/select/models/data_provider.coffee +0 -8
- data/lib/assets/javascripts/tao/form/shared/fields/select/multiple_result/base.coffee +17 -8
- data/lib/assets/javascripts/tao/form/shared/fields/select/result/base.coffee +5 -5
- data/lib/assets/javascripts/tao/form/shared/fields/switch.coffee +5 -1
- data/lib/assets/javascripts/tao/form/shared/init.coffee +23 -0
- data/lib/assets/stylesheets/tao/form/fields/checkbox.scss +1 -1
- data/lib/assets/stylesheets/tao/form/fields/date_range_picker.scss +20 -0
- data/lib/assets/stylesheets/tao/form/fields/datetime_picker.scss +3 -3
- data/lib/assets/stylesheets/tao/form/fields/index.scss +1 -0
- data/lib/assets/stylesheets/tao/form/fields/moment_picker/index.scss +1 -1
- data/lib/assets/stylesheets/tao/form/fields/moment_picker/result.scss +1 -1
- data/lib/assets/stylesheets/tao/form/fields/moment_picker/segment_list.scss +2 -2
- data/lib/assets/stylesheets/tao/form/fields/moment_picker/segments/date_segment.scss +1 -1
- data/lib/assets/stylesheets/tao/form/fields/moment_picker/segments/hour_segment.scss +1 -1
- data/lib/assets/stylesheets/tao/form/fields/moment_picker/segments/minute_segment.scss +1 -1
- data/lib/assets/stylesheets/tao/form/fields/moment_picker/segments/month_segment.scss +1 -1
- data/lib/assets/stylesheets/tao/form/fields/moment_picker/segments/year_segment.scss +1 -1
- data/lib/assets/stylesheets/tao/form/fields/radio.scss +1 -1
- data/lib/assets/stylesheets/tao/form/fields/select/index.scss +1 -1
- data/lib/assets/stylesheets/tao/form/fields/select/list.scss +2 -8
- data/lib/assets/stylesheets/tao/form/fields/select/multiple_result.scss +1 -1
- data/lib/assets/stylesheets/tao/form/fields/select/result.scss +2 -2
- data/lib/assets/stylesheets/tao/form/fields/switch.scss +6 -4
- data/lib/assets/stylesheets/tao/form/inputs/boolean.scss +1 -1
- data/lib/assets/stylesheets/tao/form/layouts/default.scss +4 -4
- data/lib/assets/stylesheets/tao/form/mobile/fields/date_range_picker.scss +18 -0
- data/lib/assets/stylesheets/tao/form/mobile/fields/datetime_picker.scss +3 -3
- data/lib/assets/stylesheets/tao/form/mobile/fields/moment_picker/index.scss +1 -1
- data/lib/assets/stylesheets/tao/form/mobile/fields/moment_picker/result.scss +1 -1
- data/lib/assets/stylesheets/tao/form/mobile/fields/moment_picker/segment_list.scss +2 -2
- data/lib/assets/stylesheets/tao/form/mobile/fields/moment_picker/segments/date_segment.scss +1 -1
- data/lib/assets/stylesheets/tao/form/mobile/fields/moment_picker/segments/hour_segment.scss +1 -1
- data/lib/assets/stylesheets/tao/form/mobile/fields/moment_picker/segments/minute_segment.scss +1 -1
- data/lib/assets/stylesheets/tao/form/mobile/fields/moment_picker/segments/month_segment.scss +1 -1
- data/lib/assets/stylesheets/tao/form/mobile/fields/moment_picker/segments/year_segment.scss +1 -1
- data/lib/assets/stylesheets/tao/form/mobile/fields/select/index.scss +1 -1
- data/lib/assets/stylesheets/tao/form/mobile/fields/select/list.scss +1 -1
- data/lib/assets/stylesheets/tao/form/mobile/fields/select/multiple_result.scss +1 -1
- data/lib/assets/stylesheets/tao/form/mobile/fields/select/result.scss +1 -1
- data/lib/assets/stylesheets/tao/form/mobile/inputs/boolean.scss +1 -1
- data/lib/assets/stylesheets/tao/form/mobile/inputs/group.scss +1 -1
- data/lib/assets/stylesheets/tao/form/mobile/layout.scss +2 -2
- data/lib/assets/stylesheets/tao/form/reset.scss +1 -0
- data/lib/assets/stylesheets/tao/form/shared/fields/_checkbox.scss +1 -1
- data/lib/assets/stylesheets/tao/form/shared/fields/_radio.scss +1 -1
- data/lib/assets/stylesheets/tao/form/shared/fields/_switch.scss +1 -1
- data/lib/assets/stylesheets/tao/form/shared/fields/moment_picker/_result.scss +1 -1
- data/lib/assets/stylesheets/tao/form/shared/fields/moment_picker/_segment_list.scss +2 -2
- data/lib/assets/stylesheets/tao/form/shared/fields/moment_picker/segments/_date_segment.scss +8 -2
- data/lib/assets/stylesheets/tao/form/shared/fields/moment_picker/segments/_hour_segment.scss +1 -1
- data/lib/assets/stylesheets/tao/form/shared/fields/moment_picker/segments/_minute_segment.scss +1 -1
- data/lib/assets/stylesheets/tao/form/shared/fields/moment_picker/segments/_month_segment.scss +1 -1
- data/lib/assets/stylesheets/tao/form/shared/fields/moment_picker/segments/_year_segment.scss +1 -1
- data/lib/assets/stylesheets/tao/form/shared/fields/select/_list.scss +6 -2
- data/lib/assets/stylesheets/tao/form/shared/fields/select/_multiple_result.scss +1 -1
- data/lib/assets/stylesheets/tao/form/shared/inputs/_boolean.scss +1 -1
- data/lib/assets/stylesheets/tao/form/shared/inputs/_group.scss +1 -1
- data/lib/assets/stylesheets/tao/form/shared/inputs/_text.scss +3 -3
- data/lib/tao_form/components.rb +1 -0
- data/lib/tao_form/components/check_box_component.rb +4 -0
- data/lib/tao_form/components/date_picker_component.rb +6 -0
- data/lib/tao_form/components/date_range_picker_component.rb +64 -0
- data/lib/tao_form/components/datetime_picker_component.rb +7 -1
- data/lib/tao_form/components/form_component.rb +2 -2
- data/lib/tao_form/components/moment_picker/base.rb +13 -4
- data/lib/tao_form/components/moment_picker/result_component.rb +13 -2
- data/lib/tao_form/components/moment_picker/segment_list_component.rb +18 -4
- data/lib/tao_form/components/moment_picker/segments/base.rb +1 -1
- data/lib/tao_form/components/moment_picker/segments/date_segment_component.rb +4 -1
- data/lib/tao_form/components/moment_picker/segments/hour_segment_component.rb +4 -1
- data/lib/tao_form/components/moment_picker/segments/minute_segment_component.rb +4 -1
- data/lib/tao_form/components/moment_picker/segments/month_segment_component.rb +8 -0
- data/lib/tao_form/components/moment_picker/segments/year_segment_component.rb +4 -1
- data/lib/tao_form/components/month_picker_component.rb +6 -0
- data/lib/tao_form/components/radio_button_component.rb +4 -0
- data/lib/tao_form/components/select/list_component.rb +1 -1
- data/lib/tao_form/components/select/multiple_result_component.rb +1 -1
- data/lib/tao_form/components/select/result_component.rb +1 -1
- data/lib/tao_form/components/select_component.rb +8 -1
- data/lib/tao_form/components/switch_component.rb +6 -0
- data/lib/tao_form/components/time_picker_component.rb +5 -1
- data/lib/tao_form/inputs.rb +1 -0
- data/lib/tao_form/inputs/date_range_input.rb +28 -0
- data/lib/tao_form/inputs/date_time_input.rb +1 -1
- data/lib/tao_form/inputs/string_input.rb +46 -6
- data/lib/tao_form/version.rb +1 -1
- data/lib/views/components/tao_form/components/_date_range_picker.html.erb +7 -0
- data/lib/views/components/tao_form/components/_moment_picker.html+mobile.erb +3 -3
- data/lib/views/components/tao_form/components/_select.html+mobile.erb +8 -7
- data/lib/views/components/tao_form/components/_switch.html.erb +1 -1
- data/lib/views/components/tao_form/components/select/_result.html.erb +1 -1
- metadata +31 -11
- data/config/locales/tao_form/components/datetime/en.yml +0 -5
- data/config/locales/tao_form/components/datetime/zh-CN.yml +0 -5
- data/lib/views/components/tao_form/components/_select.html.erb +0 -4
@@ -1,42 +1,51 @@
|
|
1
|
-
|
2
1
|
class Tao.Form.MomentPicker.ElementBase extends TaoComponent
|
3
2
|
|
4
3
|
@attribute 'valueFormat', 'displayFormat'
|
5
4
|
|
6
5
|
@attribute 'active', 'disabled', type: 'boolean', observe: true
|
7
6
|
|
8
|
-
|
9
|
-
@
|
10
|
-
@field = @result.field
|
11
|
-
@result.format = @displayFormat
|
12
|
-
@setMoment @field.val()
|
13
|
-
@trigger 'tao:ready'
|
14
|
-
@segmentList = @findComponent 'tao-moment-picker-segment-list'
|
7
|
+
@get 'value', ->
|
8
|
+
@field?.val()
|
15
9
|
|
10
|
+
@set 'value', (val) ->
|
11
|
+
@setMoment val
|
12
|
+
|
13
|
+
_connected: ->
|
14
|
+
[@result, @segmentList] = @findComponent(
|
15
|
+
'.tao-moment-picker-result',
|
16
|
+
'.tao-moment-picker-segment-list',
|
17
|
+
@_childComponentsReady.bind(@)
|
18
|
+
)
|
16
19
|
@_bind()
|
17
20
|
|
18
21
|
_disconnected: ->
|
19
22
|
@off()
|
20
23
|
|
21
24
|
_bind: ->
|
22
|
-
@on 'tao:activeClick', 'tao-moment-picker-result', (e) =>
|
25
|
+
@on 'tao:activeClick', '.tao-moment-picker-result', (e) =>
|
23
26
|
return if @disabled
|
24
27
|
@_toggleActive()
|
25
28
|
null
|
26
29
|
|
27
|
-
@on 'tao:clear', 'tao-moment-picker-result', (e) =>
|
30
|
+
@on 'tao:clear', '.tao-moment-picker-result', (e) =>
|
28
31
|
return if @disabled
|
29
32
|
@active = false
|
30
33
|
@setMoment null
|
31
|
-
@
|
34
|
+
@namespacedTrigger 'change', [@moment]
|
32
35
|
null
|
33
36
|
|
34
|
-
@on 'tao:select', 'tao-moment-picker-segment-list', (e, m) =>
|
37
|
+
@on 'tao:select', '.tao-moment-picker-segment-list', (e, m) =>
|
35
38
|
@active = false
|
36
39
|
@setMoment m
|
37
|
-
@
|
40
|
+
@namespacedTrigger 'change', [@moment]
|
38
41
|
null
|
39
42
|
|
43
|
+
_childComponentsReady: ->
|
44
|
+
@field = @result.field
|
45
|
+
@result.format = @displayFormat
|
46
|
+
@setMoment @field.val()
|
47
|
+
@namespacedTrigger 'ready'
|
48
|
+
|
40
49
|
_toggleActive: ->
|
41
50
|
@active = !@active
|
42
51
|
|
@@ -51,3 +60,11 @@ class Tao.Form.MomentPicker.ElementBase extends TaoComponent
|
|
51
60
|
@field.val ''
|
52
61
|
@moment = null
|
53
62
|
@moment
|
63
|
+
|
64
|
+
disableBefore: (m) ->
|
65
|
+
@segmentList.segments.forEach (segment) ->
|
66
|
+
segment.disableBefore = m
|
67
|
+
|
68
|
+
disableAfter: (m) ->
|
69
|
+
@segmentList.segments.forEach (segment) ->
|
70
|
+
segment.disableAfter = m
|
@@ -18,12 +18,12 @@ class Tao.Form.MomentPicker.ResultBase extends TaoComponent
|
|
18
18
|
|
19
19
|
_bind: ->
|
20
20
|
@on 'click', 'input', =>
|
21
|
-
@
|
21
|
+
@namespacedTrigger 'activeClick'
|
22
22
|
false
|
23
23
|
|
24
24
|
@on 'click', (e) =>
|
25
25
|
return if @disabled
|
26
|
-
@
|
26
|
+
@namespacedTrigger 'activeClick'
|
27
27
|
|
28
28
|
clear: ->
|
29
29
|
@moment = null
|
@@ -6,7 +6,7 @@ class Tao.Form.MomentPicker.SegmentListBase extends TaoComponent
|
|
6
6
|
@attribute 'defaultSegment'
|
7
7
|
|
8
8
|
_connected: ->
|
9
|
-
@segments = @jq.find('.segment').get()
|
9
|
+
@segments = @jq.find('.tao-moment-picker-segment').get()
|
10
10
|
@momentData = null
|
11
11
|
|
12
12
|
@_bind()
|
@@ -20,11 +20,11 @@ class Tao.Form.MomentPicker.SegmentListBase extends TaoComponent
|
|
20
20
|
@_setActiveSegment segment
|
21
21
|
null
|
22
22
|
|
23
|
-
@on 'tao:dataSelect', '.segment', (e, momentData) =>
|
23
|
+
@on 'tao:dataSelect', '.tao-moment-picker-segment', (e, momentData) =>
|
24
24
|
@_setMomentData momentData
|
25
25
|
@_activateNextSegment()
|
26
26
|
|
27
|
-
@on 'tao:dataRefresh', '.segment', (e, momentData) =>
|
27
|
+
@on 'tao:dataRefresh', '.tao-moment-picker-segment', (e, momentData) =>
|
28
28
|
@_setMomentData momentData
|
29
29
|
|
30
30
|
setMoment: (m) ->
|
@@ -80,9 +80,9 @@ class Tao.Form.MomentPicker.SegmentListBase extends TaoComponent
|
|
80
80
|
if segment
|
81
81
|
@_setActiveSegment segment
|
82
82
|
else if @activeSegment
|
83
|
-
if ($segment = @activeSegment.jq.next('.segment')).length > 0
|
83
|
+
if ($segment = @activeSegment.jq.next('.tao-moment-picker-segment')).length > 0
|
84
84
|
@_setActiveSegment $segment.get(0)
|
85
85
|
else
|
86
|
-
@
|
86
|
+
@namespacedTrigger 'select', [moment @momentData]
|
87
87
|
else
|
88
88
|
@_setActiveSegment @segments[0]
|
data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/segments/date_segment.coffee
CHANGED
@@ -21,12 +21,13 @@ class MomentPicker.DateSegment extends MomentPicker.SegmentBase
|
|
21
21
|
_bind: ->
|
22
22
|
@on 'click', '.day', (e) =>
|
23
23
|
$day = $ e.currentTarget
|
24
|
+
return if $day.hasClass('disabled')
|
24
25
|
date = moment $day.data('date'), @dateFormat
|
25
26
|
momentData = _.clone @momentData
|
26
27
|
momentData.year = date.year()
|
27
28
|
momentData.month = date.month()
|
28
29
|
momentData.date = date.date()
|
29
|
-
@
|
30
|
+
@namespacedTrigger 'dataSelect', [momentData]
|
30
31
|
|
31
32
|
@on 'click', '.link-prev-month, .link-next-month', (e) =>
|
32
33
|
month = if $(e.currentTarget).is('.link-prev-month')
|
@@ -38,7 +39,7 @@ class MomentPicker.DateSegment extends MomentPicker.SegmentBase
|
|
38
39
|
momentData.year = month.year()
|
39
40
|
momentData.month = month.month()
|
40
41
|
momentData.date = null
|
41
|
-
@
|
42
|
+
@namespacedTrigger 'dataRefresh', [momentData]
|
42
43
|
|
43
44
|
setMomentData: (momentData) ->
|
44
45
|
if @active && (_.isNil(momentData['year']) || _.isNil(momentData['month']))
|
@@ -46,7 +47,7 @@ class MomentPicker.DateSegment extends MomentPicker.SegmentBase
|
|
46
47
|
momentData.year = now.year()
|
47
48
|
momentData.month = now.month()
|
48
49
|
momentData.date = null
|
49
|
-
@
|
50
|
+
@namespacedTrigger 'dataRefresh', [momentData]
|
50
51
|
return false
|
51
52
|
else if @momentData && momentData &&
|
52
53
|
momentData['year'] == @momentData['year'] &&
|
@@ -82,6 +83,9 @@ class MomentPicker.DateSegment extends MomentPicker.SegmentBase
|
|
82
83
|
if startDate.date() == momentData['date'] &&
|
83
84
|
startDate.month() == momentData['month']
|
84
85
|
$day.addClass('selected')
|
86
|
+
if (@disableBefore && startDate.isSameOrBefore(@disableBefore)) ||
|
87
|
+
(@disableAfter && startDate.isSameOrAfter(@disableAfter))
|
88
|
+
$day.addClass('disabled')
|
85
89
|
|
86
90
|
weekdays = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat']
|
87
91
|
$day.addClass weekdays[startDate.day()]
|
@@ -94,5 +98,10 @@ class MomentPicker.DateSegment extends MomentPicker.SegmentBase
|
|
94
98
|
$('<span>', class: 'weekday', text: weekdayName)
|
95
99
|
.appendTo $head
|
96
100
|
|
101
|
+
_disableBeforeChanged: ->
|
102
|
+
@_renderCalendar()
|
103
|
+
|
104
|
+
_disableAfterChanged: ->
|
105
|
+
@_renderCalendar()
|
97
106
|
|
98
107
|
TaoComponent.register MomentPicker.DateSegment
|
data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/segments/hour_segment.coffee
CHANGED
@@ -13,7 +13,7 @@ class MomentPicker.HourSegment extends MomentPicker.SegmentBase
|
|
13
13
|
$hour = $ e.currentTarget
|
14
14
|
momentData = _.clone @momentData
|
15
15
|
momentData.hour = $hour.data 'hour'
|
16
|
-
@
|
16
|
+
@namespacedTrigger 'dataSelect', [momentData]
|
17
17
|
|
18
18
|
setMomentData: (momentData) ->
|
19
19
|
super
|
data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/segments/minute_segment.coffee
CHANGED
@@ -13,7 +13,7 @@ class MomentPicker.MinuteSegment extends MomentPicker.SegmentBase
|
|
13
13
|
$minute = $ e.currentTarget
|
14
14
|
momentData = _.clone @momentData
|
15
15
|
momentData.minute = $minute.data 'minute'
|
16
|
-
@
|
16
|
+
@namespacedTrigger 'dataSelect', [momentData]
|
17
17
|
|
18
18
|
setMomentData: (momentData) ->
|
19
19
|
super
|
data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/segments/month_segment.coffee
CHANGED
@@ -14,7 +14,7 @@ class MomentPicker.MonthSegment extends MomentPicker.SegmentBase
|
|
14
14
|
momentData = _.clone @momentData
|
15
15
|
momentData.month = $month.data 'month'
|
16
16
|
momentData.date = null
|
17
|
-
@
|
17
|
+
@namespacedTrigger 'dataSelect', [momentData]
|
18
18
|
|
19
19
|
@on 'click', '.link-prev-year, .link-next-year', (e) =>
|
20
20
|
momentData = _.clone @momentData
|
@@ -23,7 +23,7 @@ class MomentPicker.MonthSegment extends MomentPicker.SegmentBase
|
|
23
23
|
else
|
24
24
|
momentData['year'] += 1
|
25
25
|
momentData.date = null
|
26
|
-
@
|
26
|
+
@namespacedTrigger 'dataRefresh', [momentData]
|
27
27
|
|
28
28
|
setMomentData: (momentData) ->
|
29
29
|
super
|
data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/segments/year_segment.coffee
CHANGED
@@ -15,7 +15,7 @@ class MomentPicker.YearSegment extends MomentPicker.SegmentBase
|
|
15
15
|
momentData.year = $year.data 'year'
|
16
16
|
momentData.month = null
|
17
17
|
momentData.date = null
|
18
|
-
@
|
18
|
+
@namespacedTrigger 'dataSelect', [momentData]
|
19
19
|
|
20
20
|
@on 'click', '.link-prev-years, .link-next-years', (e) =>
|
21
21
|
momentData = _.clone @momentData
|
@@ -25,14 +25,14 @@ class MomentPicker.YearSegment extends MomentPicker.SegmentBase
|
|
25
25
|
momentData['year'] += 9
|
26
26
|
momentData.month = null
|
27
27
|
momentData.date = null
|
28
|
-
@
|
28
|
+
@namespacedTrigger 'dataRefresh', [momentData]
|
29
29
|
|
30
30
|
setMomentData: (momentData) ->
|
31
31
|
super
|
32
32
|
|
33
33
|
if _.isNil @value()
|
34
34
|
momentData.year = moment().year()
|
35
|
-
@
|
35
|
+
@namespacedTrigger 'dataRefresh', [momentData]
|
36
36
|
return false
|
37
37
|
|
38
38
|
@_render()
|
@@ -9,10 +9,14 @@ class Tao.Form.RadioBase extends TaoComponent
|
|
9
9
|
@_bind()
|
10
10
|
|
11
11
|
_bind: ->
|
12
|
+
@on 'change', 'input[type=radio]', (e) =>
|
13
|
+
@namespacedTrigger 'change'
|
14
|
+
null
|
15
|
+
|
12
16
|
@on 'click', '.radio-wrapper', (e) =>
|
13
17
|
if @field.is(':enabled')
|
14
18
|
@_toggleChecked()
|
15
|
-
@
|
19
|
+
@namespacedTrigger 'change'
|
16
20
|
false
|
17
21
|
|
18
22
|
_disconnected: ->
|
@@ -19,21 +19,19 @@ class Tao.Form.Select.ElementBase extends TaoComponent
|
|
19
19
|
|
20
20
|
_connected: ->
|
21
21
|
@field = @jq.find 'select'
|
22
|
-
@selectedOption
|
22
|
+
@selectedOption ||= if @multiple then [] else null
|
23
23
|
|
24
24
|
@dataProvider = new DataProvider
|
25
25
|
remote: @remote
|
26
26
|
field: @field
|
27
27
|
|
28
|
-
@result = @findComponent '.select-result', =>
|
29
|
-
@
|
30
|
-
|
31
|
-
@list = @findComponent '.select-list', =>
|
32
|
-
@_listReady()
|
28
|
+
[@result, @list] = @findComponent '.select-result', '.select-list', =>
|
29
|
+
@_childComponentsReady()
|
30
|
+
@namespacedTrigger 'ready'
|
33
31
|
|
34
32
|
@_bind()
|
35
33
|
|
36
|
-
|
34
|
+
_childComponentsReady: ->
|
37
35
|
if @multiple
|
38
36
|
values = @field.val()
|
39
37
|
if values && _.isArray(values)
|
@@ -41,9 +39,7 @@ class Tao.Form.Select.ElementBase extends TaoComponent
|
|
41
39
|
else
|
42
40
|
@selectOption @field.val()
|
43
41
|
|
44
|
-
|
45
|
-
options = @dataProvider.unselectedOptions()
|
46
|
-
@list.setOptions options, @remote?.totalOptionSize
|
42
|
+
@list.setOptions @dataProvider.options, @remote?.totalOptionSize
|
47
43
|
@list.searchable = if @remote
|
48
44
|
@dataProvider.options.length < @remote.totalOptionSize
|
49
45
|
else
|
@@ -60,24 +56,22 @@ class Tao.Form.Select.ElementBase extends TaoComponent
|
|
60
56
|
|
61
57
|
if @multiple
|
62
58
|
@on 'tao:unselect', '.select-result', (e, option) =>
|
63
|
-
|
64
|
-
@selected = false if @selectedOption.length == 0
|
59
|
+
@unselectOption option
|
65
60
|
@_filterList ''
|
66
|
-
@
|
61
|
+
@namespacedTrigger 'change', @selectedOption
|
67
62
|
null
|
68
63
|
else
|
69
64
|
@on 'tao:clear', '.select-result', (e) =>
|
70
65
|
@active = false
|
71
|
-
@
|
72
|
-
@selected = false
|
66
|
+
@clearSelected()
|
73
67
|
@_filterList ''
|
74
|
-
@
|
68
|
+
@namespacedTrigger 'change', @selectedOption
|
75
69
|
null
|
76
70
|
|
77
71
|
_bindListEvents: ->
|
78
72
|
@on 'tao:select', '.select-list', (e, option) =>
|
79
73
|
@selectOption option
|
80
|
-
@
|
74
|
+
@namespacedTrigger 'change', @selectedOption
|
81
75
|
null
|
82
76
|
|
83
77
|
@on 'tao:search', '.select-list', (e, value) =>
|
@@ -94,13 +88,14 @@ class Tao.Form.Select.ElementBase extends TaoComponent
|
|
94
88
|
@list.loading = true
|
95
89
|
@dataProvider.filter value, (options, totalSize) =>
|
96
90
|
@list.loading = false
|
97
|
-
options = @dataProvider.unselectedOptions options
|
98
91
|
@list.setOptions options, totalSize
|
99
92
|
|
100
93
|
selectOption: (option) ->
|
101
94
|
option = @dataProvider.getOption option
|
102
95
|
return false unless option && option != @selectedOption
|
103
96
|
@result.selectOption option
|
97
|
+
@list.clearSelected() unless @multiple
|
98
|
+
@list.selectOption option
|
104
99
|
if @multiple
|
105
100
|
@selectedOption.push option
|
106
101
|
else
|
@@ -113,10 +108,19 @@ class Tao.Form.Select.ElementBase extends TaoComponent
|
|
113
108
|
option = @dataProvider.getOption option
|
114
109
|
return false unless option && (option in @selectedOption)
|
115
110
|
@result.unselectOption option
|
111
|
+
@list.unselectOption option
|
116
112
|
_.remove @selectedOption, (opt) -> opt.value == option.value
|
117
113
|
@selected = false if @selectedOption.length == 0
|
118
114
|
else
|
119
|
-
@
|
115
|
+
@clearSelected()
|
116
|
+
true
|
117
|
+
|
118
|
+
clearSelected: ->
|
119
|
+
@result.clearSelected()
|
120
|
+
@list.clearSelected()
|
121
|
+
@selected = false
|
122
|
+
if @multiple
|
123
|
+
@selectedOption.length = 0
|
124
|
+
else
|
120
125
|
@selectedOption = null
|
121
|
-
@selected = false
|
122
126
|
true
|
@@ -14,6 +14,7 @@ class Tao.Form.Select.ListBase extends TaoComponent
|
|
14
14
|
|
15
15
|
_connected: ->
|
16
16
|
@searchField = @jq.find('.search-field')
|
17
|
+
@selectedOption ||= []
|
17
18
|
@_bind()
|
18
19
|
|
19
20
|
_disconnected: ->
|
@@ -23,13 +24,15 @@ class Tao.Form.Select.ListBase extends TaoComponent
|
|
23
24
|
@on 'input', '.search-field', _.debounce (e) =>
|
24
25
|
val = @searchField.val()
|
25
26
|
@searching = !!val
|
26
|
-
@
|
27
|
+
@namespacedTrigger 'search', [val]
|
27
28
|
, 200
|
28
29
|
|
29
30
|
@on 'click', '.option', (e) =>
|
30
31
|
$option = $ e.currentTarget
|
32
|
+
return if $option.hasClass('selected')
|
33
|
+
$option.addClass 'selected'
|
31
34
|
option = $option.data('option')
|
32
|
-
@
|
35
|
+
@namespacedTrigger('select', [option]) if option
|
33
36
|
null
|
34
37
|
|
35
38
|
_hiddenSizeChanged: ->
|
@@ -71,9 +74,24 @@ class Tao.Form.Select.ListBase extends TaoComponent
|
|
71
74
|
$option.find('.name').text(option.data.label || option.text)
|
72
75
|
$option.find('.hint').text(option.data.hint) if option.data.hint
|
73
76
|
$option.attr 'data-value', option.value
|
77
|
+
if _.findIndex(@selectedOption, (opt) -> opt.value == option.value) > -1
|
78
|
+
$option.addClass('selected')
|
74
79
|
$option
|
75
80
|
|
76
81
|
reset: ->
|
77
82
|
@searchField.val ''
|
78
83
|
@searching = false
|
79
|
-
@
|
84
|
+
@namespacedTrigger 'search', ['']
|
85
|
+
|
86
|
+
selectOption: (option) ->
|
87
|
+
return false unless option && !(option in @selectedOption)
|
88
|
+
@selectedOption.push option
|
89
|
+
true
|
90
|
+
|
91
|
+
unselectOption: (option) ->
|
92
|
+
return false unless option && option in @selectedOption
|
93
|
+
_.remove @selectedOption, (opt) -> opt.value == option.value
|
94
|
+
true
|
95
|
+
|
96
|
+
clearSelected: ->
|
97
|
+
@selectedOption.length = 0
|
@@ -68,11 +68,3 @@ class Tao.Form.Select.DataProvider extends TaoModule
|
|
68
68
|
[]
|
69
69
|
|
70
70
|
callback? options, result.totalSize
|
71
|
-
|
72
|
-
unselectedOptions: (options = @options) ->
|
73
|
-
options.filter (option) =>
|
74
|
-
value = @field.val()
|
75
|
-
if _.isArray(value)
|
76
|
-
!(option.value in value)
|
77
|
-
else
|
78
|
-
option.value != value
|
@@ -9,7 +9,7 @@ class Tao.Form.Select.MultipleResultBase extends TaoComponent
|
|
9
9
|
|
10
10
|
_connected: ->
|
11
11
|
@field = @jq.find 'select'
|
12
|
-
@selectedOption
|
12
|
+
@selectedOption ||= []
|
13
13
|
@_bind()
|
14
14
|
|
15
15
|
_disconnected: ->
|
@@ -17,7 +17,7 @@ class Tao.Form.Select.MultipleResultBase extends TaoComponent
|
|
17
17
|
|
18
18
|
_bind: ->
|
19
19
|
@on 'click', 'select', =>
|
20
|
-
@
|
20
|
+
@namespacedTrigger 'activeClick'
|
21
21
|
false
|
22
22
|
|
23
23
|
@on 'click', '.selected-item', (e) =>
|
@@ -25,18 +25,14 @@ class Tao.Form.Select.MultipleResultBase extends TaoComponent
|
|
25
25
|
$option = $ e.currentTarget
|
26
26
|
option = $option.data 'option'
|
27
27
|
@unselectOption option
|
28
|
-
@
|
28
|
+
@namespacedTrigger 'unselect', [option]
|
29
29
|
false
|
30
30
|
|
31
31
|
selectOption: (option) ->
|
32
32
|
return false unless option && !(option in @selectedOption)
|
33
33
|
|
34
34
|
unless @jq.find(".selected-item[data-value='#{option.value}']").length > 0
|
35
|
-
|
36
|
-
if @selectedOption.length > 0
|
37
|
-
@jq.find('.selected-item:last').after $item
|
38
|
-
else
|
39
|
-
@jq.prepend $item
|
35
|
+
@_insertItem @_generateItem(option)
|
40
36
|
|
41
37
|
@selectedOption.push option
|
42
38
|
@_setSelectedOption option
|
@@ -51,6 +47,13 @@ class Tao.Form.Select.MultipleResultBase extends TaoComponent
|
|
51
47
|
@selected = false if @selectedOption.length == 0
|
52
48
|
true
|
53
49
|
|
50
|
+
clearSelected: ->
|
51
|
+
@jq.find('.selected-item').remove()
|
52
|
+
@selectedOption.length = 0
|
53
|
+
@field.find('option').prop 'selected', false
|
54
|
+
@selected = false
|
55
|
+
true
|
56
|
+
|
54
57
|
_setSelectedOption: (option) ->
|
55
58
|
return unless option
|
56
59
|
$option = @field.find("option[value='#{option.value}']")
|
@@ -79,3 +82,9 @@ class Tao.Form.Select.MultipleResultBase extends TaoComponent
|
|
79
82
|
.data 'option', option
|
80
83
|
.find('.name').text option.text
|
81
84
|
$item
|
85
|
+
|
86
|
+
_insertItem: ($item) ->
|
87
|
+
if @selectedOption.length > 0
|
88
|
+
@jq.find('.selected-item:last').after $item
|
89
|
+
else
|
90
|
+
@jq.prepend $item
|