tao_form 0.2.3 → 1.0.0.beta.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/tao_form/components/select/multiple_result_component.rb +4 -6
- data/lib/tao_form/components/select/result_component.rb +4 -6
- data/lib/tao_form/components/select_component.rb +3 -7
- data/lib/tao_form/inputs/collection_select_input.rb +3 -1
- data/lib/tao_form/version.rb +1 -1
- data/lib/views/components/tao_form/components/select/_list.html.erb +1 -16
- data/lib/views/components/tao_form/components/select/_list_content.html.erb +16 -0
- data/lib/views/components/tao_form/components/select/_multiple_result.html.erb +1 -1
- metadata +12 -201
- data/lib/assets/icons/arrow_down.svg +0 -3
- data/lib/assets/icons/arrow_left.svg +0 -3
- data/lib/assets/icons/arrow_right.svg +0 -3
- data/lib/assets/icons/calendar.svg +0 -3
- data/lib/assets/icons/check.svg +0 -3
- data/lib/assets/icons/clock.svg +0 -3
- data/lib/assets/icons/search.svg +0 -3
- data/lib/assets/icons/success.svg +0 -3
- data/lib/assets/javascripts/tao/form/element.coffee +0 -16
- data/lib/assets/javascripts/tao/form/fields/checkbox.coffee +0 -15
- data/lib/assets/javascripts/tao/form/fields/index.coffee +0 -10
- data/lib/assets/javascripts/tao/form/fields/moment_picker/element.coffee +0 -38
- data/lib/assets/javascripts/tao/form/fields/moment_picker/index.coffee +0 -7
- data/lib/assets/javascripts/tao/form/fields/moment_picker/result.coffee +0 -25
- data/lib/assets/javascripts/tao/form/fields/moment_picker/segment_list.coffee +0 -14
- data/lib/assets/javascripts/tao/form/fields/radio.coffee +0 -14
- data/lib/assets/javascripts/tao/form/fields/select/element.coffee +0 -79
- data/lib/assets/javascripts/tao/form/fields/select/index.coffee +0 -8
- data/lib/assets/javascripts/tao/form/fields/select/list.coffee +0 -103
- data/lib/assets/javascripts/tao/form/fields/select/multiple_result.coffee +0 -41
- data/lib/assets/javascripts/tao/form/fields/select/result.coffee +0 -39
- data/lib/assets/javascripts/tao/form/fields/switch.coffee +0 -14
- data/lib/assets/javascripts/tao/form/index.coffee +0 -11
- data/lib/assets/javascripts/tao/form/mobile/element.coffee +0 -5
- data/lib/assets/javascripts/tao/form/mobile/fields/checkbox.coffee +0 -5
- data/lib/assets/javascripts/tao/form/mobile/fields/index.coffee +0 -10
- data/lib/assets/javascripts/tao/form/mobile/fields/moment_picker/element.coffee +0 -40
- data/lib/assets/javascripts/tao/form/mobile/fields/moment_picker/index.coffee +0 -7
- data/lib/assets/javascripts/tao/form/mobile/fields/moment_picker/result.coffee +0 -5
- data/lib/assets/javascripts/tao/form/mobile/fields/moment_picker/segment_list.coffee +0 -24
- data/lib/assets/javascripts/tao/form/mobile/fields/radio.coffee +0 -5
- data/lib/assets/javascripts/tao/form/mobile/fields/select/element.coffee +0 -74
- data/lib/assets/javascripts/tao/form/mobile/fields/select/index.coffee +0 -8
- data/lib/assets/javascripts/tao/form/mobile/fields/select/list.coffee +0 -5
- data/lib/assets/javascripts/tao/form/mobile/fields/select/multiple_result.coffee +0 -5
- data/lib/assets/javascripts/tao/form/mobile/fields/select/result.coffee +0 -5
- data/lib/assets/javascripts/tao/form/mobile/fields/switch.coffee +0 -5
- data/lib/assets/javascripts/tao/form/mobile/index.coffee +0 -11
- data/lib/assets/javascripts/tao/form/shared/element/base.coffee +0 -53
- data/lib/assets/javascripts/tao/form/shared/fields/checkbox.coffee +0 -31
- data/lib/assets/javascripts/tao/form/shared/fields/date_picker.coffee +0 -10
- data/lib/assets/javascripts/tao/form/shared/fields/date_range_picker.coffee +0 -75
- data/lib/assets/javascripts/tao/form/shared/fields/datetime_picker.coffee +0 -78
- data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/element/base.coffee +0 -70
- data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/result/base.coffee +0 -39
- data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/segment_list/base.coffee +0 -88
- data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/segments/base.coffee +0 -30
- data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/segments/date_segment.coffee +0 -107
- data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/segments/hour_segment.coffee +0 -28
- data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/segments/index.coffee +0 -1
- data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/segments/minute_segment.coffee +0 -28
- data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/segments/month_segment.coffee +0 -46
- data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/segments/year_segment.coffee +0 -57
- data/lib/assets/javascripts/tao/form/shared/fields/month_picker.coffee +0 -10
- data/lib/assets/javascripts/tao/form/shared/fields/radio.coffee +0 -23
- data/lib/assets/javascripts/tao/form/shared/fields/select/element/base.coffee +0 -132
- data/lib/assets/javascripts/tao/form/shared/fields/select/list/base.coffee +0 -97
- data/lib/assets/javascripts/tao/form/shared/fields/select/models/data_provider.coffee +0 -76
- data/lib/assets/javascripts/tao/form/shared/fields/select/models/index.coffee +0 -2
- data/lib/assets/javascripts/tao/form/shared/fields/select/models/option.coffee +0 -37
- data/lib/assets/javascripts/tao/form/shared/fields/select/multiple_result/base.coffee +0 -90
- data/lib/assets/javascripts/tao/form/shared/fields/select/result/base.coffee +0 -57
- data/lib/assets/javascripts/tao/form/shared/fields/switch.coffee +0 -23
- data/lib/assets/javascripts/tao/form/shared/fields/time_picker.coffee +0 -10
- data/lib/assets/javascripts/tao/form/shared/init.coffee +0 -23
- data/lib/assets/javascripts/tao/form/shared/mixins/checkable.coffee +0 -11
- data/lib/assets/javascripts/tao/ui/icons/form.coffee +0 -11
- data/lib/assets/stylesheets/tao/form/_globals.scss +0 -3
- data/lib/assets/stylesheets/tao/form/_mixins.scss +0 -28
- data/lib/assets/stylesheets/tao/form/_variables.scss +0 -3
- data/lib/assets/stylesheets/tao/form/fields/checkbox.scss +0 -36
- data/lib/assets/stylesheets/tao/form/fields/date_range_picker.scss +0 -20
- data/lib/assets/stylesheets/tao/form/fields/datetime_picker.scss +0 -22
- data/lib/assets/stylesheets/tao/form/fields/index.scss +0 -7
- data/lib/assets/stylesheets/tao/form/fields/moment_picker/index.scss +0 -10
- data/lib/assets/stylesheets/tao/form/fields/moment_picker/result.scss +0 -61
- data/lib/assets/stylesheets/tao/form/fields/moment_picker/segment_list.scss +0 -53
- data/lib/assets/stylesheets/tao/form/fields/moment_picker/segments/date_segment.scss +0 -17
- data/lib/assets/stylesheets/tao/form/fields/moment_picker/segments/hour_segment.scss +0 -15
- data/lib/assets/stylesheets/tao/form/fields/moment_picker/segments/minute_segment.scss +0 -17
- data/lib/assets/stylesheets/tao/form/fields/moment_picker/segments/month_segment.scss +0 -15
- data/lib/assets/stylesheets/tao/form/fields/moment_picker/segments/year_segment.scss +0 -15
- data/lib/assets/stylesheets/tao/form/fields/radio.scss +0 -33
- data/lib/assets/stylesheets/tao/form/fields/select/index.scss +0 -14
- data/lib/assets/stylesheets/tao/form/fields/select/list.scss +0 -55
- data/lib/assets/stylesheets/tao/form/fields/select/multiple_result.scss +0 -76
- data/lib/assets/stylesheets/tao/form/fields/select/result.scss +0 -101
- data/lib/assets/stylesheets/tao/form/fields/switch.scss +0 -14
- data/lib/assets/stylesheets/tao/form/index.scss +0 -5
- data/lib/assets/stylesheets/tao/form/inputs/boolean.scss +0 -8
- data/lib/assets/stylesheets/tao/form/inputs/group.scss +0 -2
- data/lib/assets/stylesheets/tao/form/inputs/index.scss +0 -1
- data/lib/assets/stylesheets/tao/form/inputs/text.scss +0 -2
- data/lib/assets/stylesheets/tao/form/layouts/default.scss +0 -146
- data/lib/assets/stylesheets/tao/form/layouts/index.scss +0 -2
- data/lib/assets/stylesheets/tao/form/layouts/narrow.scss +0 -35
- data/lib/assets/stylesheets/tao/form/mobile/_globals.scss +0 -3
- data/lib/assets/stylesheets/tao/form/mobile/_mixins.scss +0 -22
- data/lib/assets/stylesheets/tao/form/mobile/_variables.scss +0 -3
- data/lib/assets/stylesheets/tao/form/mobile/fields/checkbox.scss +0 -2
- data/lib/assets/stylesheets/tao/form/mobile/fields/date_range_picker.scss +0 -18
- data/lib/assets/stylesheets/tao/form/mobile/fields/datetime_picker.scss +0 -18
- data/lib/assets/stylesheets/tao/form/mobile/fields/index.scss +0 -1
- data/lib/assets/stylesheets/tao/form/mobile/fields/moment_picker/index.scss +0 -9
- data/lib/assets/stylesheets/tao/form/mobile/fields/moment_picker/result.scss +0 -19
- data/lib/assets/stylesheets/tao/form/mobile/fields/moment_picker/segment_list.scss +0 -52
- data/lib/assets/stylesheets/tao/form/mobile/fields/moment_picker/segments/date_segment.scss +0 -14
- data/lib/assets/stylesheets/tao/form/mobile/fields/moment_picker/segments/hour_segment.scss +0 -14
- data/lib/assets/stylesheets/tao/form/mobile/fields/moment_picker/segments/minute_segment.scss +0 -14
- data/lib/assets/stylesheets/tao/form/mobile/fields/moment_picker/segments/month_segment.scss +0 -14
- data/lib/assets/stylesheets/tao/form/mobile/fields/moment_picker/segments/year_segment.scss +0 -14
- data/lib/assets/stylesheets/tao/form/mobile/fields/radio.scss +0 -2
- data/lib/assets/stylesheets/tao/form/mobile/fields/select/index.scss +0 -80
- data/lib/assets/stylesheets/tao/form/mobile/fields/select/list.scss +0 -10
- data/lib/assets/stylesheets/tao/form/mobile/fields/select/multiple_result.scss +0 -12
- data/lib/assets/stylesheets/tao/form/mobile/fields/select/result.scss +0 -28
- data/lib/assets/stylesheets/tao/form/mobile/fields/switch.scss +0 -2
- data/lib/assets/stylesheets/tao/form/mobile/index.scss +0 -5
- data/lib/assets/stylesheets/tao/form/mobile/inputs/boolean.scss +0 -7
- data/lib/assets/stylesheets/tao/form/mobile/inputs/group.scss +0 -6
- data/lib/assets/stylesheets/tao/form/mobile/inputs/index.scss +0 -1
- data/lib/assets/stylesheets/tao/form/mobile/inputs/text.scss +0 -18
- data/lib/assets/stylesheets/tao/form/mobile/layout.scss +0 -137
- data/lib/assets/stylesheets/tao/form/mobile/reset.scss +0 -29
- data/lib/assets/stylesheets/tao/form/mobile/variables/_base.scss +0 -12
- data/lib/assets/stylesheets/tao/form/mobile/variables/_moment_picker.scss +0 -9
- data/lib/assets/stylesheets/tao/form/mobile/variables/_select.scss +0 -9
- data/lib/assets/stylesheets/tao/form/reset.scss +0 -31
- data/lib/assets/stylesheets/tao/form/shared/fields/_checkbox.scss +0 -61
- data/lib/assets/stylesheets/tao/form/shared/fields/_radio.scss +0 -53
- data/lib/assets/stylesheets/tao/form/shared/fields/_switch.scss +0 -56
- data/lib/assets/stylesheets/tao/form/shared/fields/moment_picker/_result.scss +0 -46
- data/lib/assets/stylesheets/tao/form/shared/fields/moment_picker/_segment_list.scss +0 -93
- data/lib/assets/stylesheets/tao/form/shared/fields/moment_picker/segments/_date_segment.scss +0 -56
- data/lib/assets/stylesheets/tao/form/shared/fields/moment_picker/segments/_hour_segment.scss +0 -35
- data/lib/assets/stylesheets/tao/form/shared/fields/moment_picker/segments/_minute_segment.scss +0 -23
- data/lib/assets/stylesheets/tao/form/shared/fields/moment_picker/segments/_month_segment.scss +0 -27
- data/lib/assets/stylesheets/tao/form/shared/fields/moment_picker/segments/_year_segment.scss +0 -27
- data/lib/assets/stylesheets/tao/form/shared/fields/select/_list.scss +0 -140
- data/lib/assets/stylesheets/tao/form/shared/fields/select/_multiple_result.scss +0 -50
- data/lib/assets/stylesheets/tao/form/shared/inputs/_boolean.scss +0 -5
- data/lib/assets/stylesheets/tao/form/shared/inputs/_group.scss +0 -25
- data/lib/assets/stylesheets/tao/form/shared/inputs/_text.scss +0 -35
- data/lib/assets/stylesheets/tao/form/variables/_base.scss +0 -15
- data/lib/assets/stylesheets/tao/form/variables/_moment_picker.scss +0 -9
- data/lib/assets/stylesheets/tao/form/variables/_select.scss +0 -10
- data/vendor/assets/javascripts/moment.js +0 -4463
- data/vendor/assets/javascripts/moment/zh-cn.js +0 -112
@@ -1,10 +0,0 @@
|
|
1
|
-
#= require ./checkbox
|
2
|
-
#= require ./switch
|
3
|
-
#= require ./radio
|
4
|
-
#= require ./select
|
5
|
-
#= require ./moment_picker
|
6
|
-
#= require tao/form/shared/fields/date_picker
|
7
|
-
#= require tao/form/shared/fields/time_picker
|
8
|
-
#= require tao/form/shared/fields/datetime_picker
|
9
|
-
#= require tao/form/shared/fields/month_picker
|
10
|
-
#= require tao/form/shared/fields/date_range_picker
|
@@ -1,40 +0,0 @@
|
|
1
|
-
#= require tao/form/shared/fields/moment_picker/element/base
|
2
|
-
|
3
|
-
class Tao.Form.MomentPicker.Element extends Tao.Form.MomentPicker.ElementBase
|
4
|
-
|
5
|
-
_connected: ->
|
6
|
-
@slideBox = @findComponent '.slide-box'
|
7
|
-
super
|
8
|
-
|
9
|
-
_bind: ->
|
10
|
-
super
|
11
|
-
|
12
|
-
@slideBox.on 'tao:hide', (e) =>
|
13
|
-
@active = false if @active
|
14
|
-
null
|
15
|
-
|
16
|
-
@on 'click', '.header .link-close', (e) =>
|
17
|
-
@active = false
|
18
|
-
null
|
19
|
-
|
20
|
-
@on 'click', '.header .button-confirm', (e) =>
|
21
|
-
@active = false
|
22
|
-
@setMoment moment(@segmentList.momentData)
|
23
|
-
null
|
24
|
-
|
25
|
-
@on 'tao:clear', '.tao-moment-picker-segment-list', (e) =>
|
26
|
-
return if @disabled
|
27
|
-
@active = false
|
28
|
-
@setMoment null
|
29
|
-
@namespacedTrigger 'change', [@moment]
|
30
|
-
null
|
31
|
-
|
32
|
-
_activeChanged: ->
|
33
|
-
@slideBox.active = @active
|
34
|
-
if @active
|
35
|
-
@segmentList.setMoment @moment
|
36
|
-
@segmentList.clearable = !!@moment
|
37
|
-
@segmentList.refreshHeight()
|
38
|
-
|
39
|
-
|
40
|
-
TaoComponent.register Tao.Form.MomentPicker.Element
|
@@ -1,24 +0,0 @@
|
|
1
|
-
#= require tao/form/shared/fields/moment_picker/segment_list/base
|
2
|
-
|
3
|
-
MomentPicker = Tao.Form.MomentPicker
|
4
|
-
|
5
|
-
class MomentPicker.SegmentList extends MomentPicker.SegmentListBase
|
6
|
-
|
7
|
-
@attribute 'clearable', type: 'boolean'
|
8
|
-
|
9
|
-
_bind: ->
|
10
|
-
super
|
11
|
-
|
12
|
-
@on 'click', '.link-clear', (e) =>
|
13
|
-
@namespacedTrigger 'clear'
|
14
|
-
null
|
15
|
-
|
16
|
-
refreshHeight: ->
|
17
|
-
return unless @activeSegment
|
18
|
-
winHeight = $(window).height()
|
19
|
-
offsetTop = @activeSegment.getBoundingClientRect().top
|
20
|
-
|
21
|
-
@activeSegment.jq.css
|
22
|
-
height: winHeight - offsetTop
|
23
|
-
|
24
|
-
TaoComponent.register Tao.Form.MomentPicker.SegmentList
|
@@ -1,74 +0,0 @@
|
|
1
|
-
#= require tao/form/shared/fields/select/element/base
|
2
|
-
|
3
|
-
class Tao.Form.Select.Element extends Tao.Form.Select.ElementBase
|
4
|
-
|
5
|
-
_connected: ->
|
6
|
-
@slideBox = @findComponent '.slide-box'
|
7
|
-
super
|
8
|
-
|
9
|
-
_bind: ->
|
10
|
-
super
|
11
|
-
|
12
|
-
@slideBox.on 'tao:hide', (e) =>
|
13
|
-
@active = false if @active
|
14
|
-
null
|
15
|
-
|
16
|
-
@on 'click', '.select-result-delegate', (e) =>
|
17
|
-
@_toggleActive()
|
18
|
-
null
|
19
|
-
|
20
|
-
@on 'click', '.header .link-close', (e) =>
|
21
|
-
@active = false
|
22
|
-
null
|
23
|
-
|
24
|
-
@on 'click', '.button-ok', (e) =>
|
25
|
-
@active = false
|
26
|
-
null
|
27
|
-
|
28
|
-
@on 'tao:change', =>
|
29
|
-
@_refreshListHeight() if @active
|
30
|
-
@_refreshSelectedText()
|
31
|
-
|
32
|
-
_bindListEvents: ->
|
33
|
-
super
|
34
|
-
|
35
|
-
@on 'tao:select', '.select-list', (e, option) =>
|
36
|
-
if @multiple
|
37
|
-
@list.reset()
|
38
|
-
else
|
39
|
-
@active = false
|
40
|
-
null
|
41
|
-
|
42
|
-
_childComponentsReady: ->
|
43
|
-
super
|
44
|
-
@_refreshSelectedText()
|
45
|
-
|
46
|
-
_refreshSelectedText: ->
|
47
|
-
text = if @multiple && @selectedOption.length > 0
|
48
|
-
@selectedOption.map (opt) ->
|
49
|
-
opt.text
|
50
|
-
.join ', '
|
51
|
-
else if @selectedOption
|
52
|
-
@selectedOption.text
|
53
|
-
else
|
54
|
-
''
|
55
|
-
|
56
|
-
@jq.find('.select-result-delegate .selected-text').text text
|
57
|
-
|
58
|
-
_refreshListHeight: ->
|
59
|
-
$listWrapper = @list.jq.find('.list-wrapper')
|
60
|
-
winHeight = $(window).height()
|
61
|
-
offsetTop = $listWrapper[0].getBoundingClientRect().top
|
62
|
-
buttonsHeight = @slideBox.jq.find('.slide-box-content > .buttons').outerHeight() || 0
|
63
|
-
|
64
|
-
$listWrapper.css
|
65
|
-
height: winHeight - offsetTop - buttonsHeight
|
66
|
-
|
67
|
-
_activeChanged: ->
|
68
|
-
@slideBox.active = @active
|
69
|
-
if @active
|
70
|
-
@_refreshListHeight()
|
71
|
-
else
|
72
|
-
@list.reset()
|
73
|
-
|
74
|
-
TaoComponent.register Tao.Form.Select.Element
|
@@ -1,53 +0,0 @@
|
|
1
|
-
class Tao.Form.ElementBase extends TaoComponent
|
2
|
-
|
3
|
-
@tag 'tao-form'
|
4
|
-
|
5
|
-
@attribute 'successMessage'
|
6
|
-
|
7
|
-
_connected: ->
|
8
|
-
@_bind()
|
9
|
-
@jq.find('.input-field[autofocus]').focus()
|
10
|
-
|
11
|
-
_bind: ->
|
12
|
-
@on 'ajax:beforeSend', '> form', (e) =>
|
13
|
-
@_clearErrors()
|
14
|
-
@namespacedTrigger 'beforeSubmit'
|
15
|
-
|
16
|
-
@on 'ajax:success', '> form', (e) =>
|
17
|
-
@_showSuccessMessage()
|
18
|
-
@namespacedTrigger 'success'
|
19
|
-
|
20
|
-
_disconnected: ->
|
21
|
-
@off()
|
22
|
-
|
23
|
-
_clearErrors: ->
|
24
|
-
@jq.find('.input-with-errors').each (i, input) =>
|
25
|
-
@_clearError input
|
26
|
-
|
27
|
-
_clearError: (input) ->
|
28
|
-
$(input).removeClass('input-with-errors')
|
29
|
-
.find('.error').remove()
|
30
|
-
|
31
|
-
_showSuccessMessage: ->
|
32
|
-
return unless @successMessage
|
33
|
-
|
34
|
-
$button = @jq.find('button[data-disable-with]:disabled, input[data-disable-with]:disabled')
|
35
|
-
$message = $('<div>')
|
36
|
-
.addClass('success-message')
|
37
|
-
.append([Tao.iconTag('success'), @successMessage])
|
38
|
-
.insertAfter $button.hide()
|
39
|
-
|
40
|
-
@_successTimer = setTimeout =>
|
41
|
-
$button.show()
|
42
|
-
$message.remove()
|
43
|
-
, 3000
|
44
|
-
|
45
|
-
beforeCache: ->
|
46
|
-
super
|
47
|
-
clearTimeout @_successTimer
|
48
|
-
@jq.find('.success-message').remove()
|
49
|
-
@jq.find('button[data-disable-with]:hidden, input[data-disable-with]:hidden').show()
|
50
|
-
|
51
|
-
submit: ->
|
52
|
-
@jq.find('> form').submit()
|
53
|
-
@
|
@@ -1,31 +0,0 @@
|
|
1
|
-
#= require tao/form/shared/mixins/checkable
|
2
|
-
|
3
|
-
class Tao.Form.CheckboxBase extends TaoComponent
|
4
|
-
|
5
|
-
@include Tao.Form.Mixins.Checkable
|
6
|
-
|
7
|
-
@tag 'tao-check-box'
|
8
|
-
|
9
|
-
@get 'indeterminate', ->
|
10
|
-
@field?.prop 'indeterminate'
|
11
|
-
|
12
|
-
@set 'indeterminate', (value) ->
|
13
|
-
@field?.prop 'indeterminate', value
|
14
|
-
|
15
|
-
_connected: ->
|
16
|
-
@field = @jq.find('input:checkbox')
|
17
|
-
@_bind()
|
18
|
-
|
19
|
-
_bind: ->
|
20
|
-
@on 'change', 'input[type=checkbox]', (e) =>
|
21
|
-
@namespacedTrigger 'change'
|
22
|
-
null
|
23
|
-
|
24
|
-
@on 'click', '.checkbox-wrapper', (e) =>
|
25
|
-
if @field.is(':enabled')
|
26
|
-
@_toggleChecked()
|
27
|
-
@namespacedTrigger 'change'
|
28
|
-
false
|
29
|
-
|
30
|
-
_disconnected: ->
|
31
|
-
@off()
|
@@ -1,75 +0,0 @@
|
|
1
|
-
class Tao.Form.DateRangePicker extends TaoComponent
|
2
|
-
|
3
|
-
@tag 'tao-date-range-picker'
|
4
|
-
|
5
|
-
@attribute 'dateValueFormat', default: 'YYYY-MM-DD'
|
6
|
-
|
7
|
-
@attribute 'dateDisplayFormat', default: 'YYYY-MM-DD'
|
8
|
-
|
9
|
-
@get 'value', ->
|
10
|
-
@field?.val()
|
11
|
-
|
12
|
-
@set 'value', (val) ->
|
13
|
-
@field.val val
|
14
|
-
@_initMoment()
|
15
|
-
|
16
|
-
_connected: ->
|
17
|
-
@field = @jq.find '> input'
|
18
|
-
@startDatePicker = @findComponent '.start-date-picker'
|
19
|
-
@endDatePicker = @findComponent '.end-date-picker'
|
20
|
-
@_bind()
|
21
|
-
|
22
|
-
_disconnected: ->
|
23
|
-
@off()
|
24
|
-
|
25
|
-
_bind: ->
|
26
|
-
@on 'tao-date-picker:change', '.tao-moment-picker', (e, m) =>
|
27
|
-
datePicker = e.currentTarget
|
28
|
-
if datePicker == @startDatePicker
|
29
|
-
@endDatePicker.disableBefore datePicker.moment
|
30
|
-
else
|
31
|
-
@startDatePicker.disableAfter datePicker.moment
|
32
|
-
@_syncMoment()
|
33
|
-
@namespacedTrigger('change', [@value]) if @value
|
34
|
-
|
35
|
-
startDatePickerDeferred = $.Deferred()
|
36
|
-
endDatePickerDeferred = $.Deferred()
|
37
|
-
|
38
|
-
@on 'tao-date-picker:ready', '.start-date-picker', ->
|
39
|
-
startDatePickerDeferred.resolve()
|
40
|
-
|
41
|
-
@on 'tao-date-picker:ready', '.end-date-picker', ->
|
42
|
-
endDatePickerDeferred.resolve()
|
43
|
-
|
44
|
-
$.when(startDatePickerDeferred, endDatePickerDeferred).done =>
|
45
|
-
@_initMoment()
|
46
|
-
@namespacedTrigger 'ready'
|
47
|
-
|
48
|
-
_initMoment: ->
|
49
|
-
dates = @field.val().split(',')
|
50
|
-
|
51
|
-
if dates.length > 0
|
52
|
-
@startDate = moment _.trim(dates[0]), @dateValueFormat
|
53
|
-
@endDate = moment _.trim(dates[1]), @dateValueFormat
|
54
|
-
@startDatePicker.setMoment @startDate.clone()
|
55
|
-
@endDatePicker.setMoment @endDate.clone()
|
56
|
-
else
|
57
|
-
@startDatePicker.setMoment ''
|
58
|
-
@endDatePicker.setMoment ''
|
59
|
-
@startDate = null
|
60
|
-
@endDate = null
|
61
|
-
|
62
|
-
_syncMoment: ->
|
63
|
-
if @startDatePicker.moment && @endDatePicker.moment
|
64
|
-
startDateValue = @startDatePicker.moment.format(@dateValueFormat)
|
65
|
-
endDateValue = @endDatePicker.moment.format(@dateValueFormat)
|
66
|
-
|
67
|
-
@field.val "#{startDateValue},#{endDateValue}"
|
68
|
-
@startDate = @startDatePicker.moment.clone()
|
69
|
-
@endDate = @endDatePicker.moment.clone()
|
70
|
-
else
|
71
|
-
@field.val ''
|
72
|
-
@startDate = null
|
73
|
-
@endDate = null
|
74
|
-
|
75
|
-
TaoComponent.register Tao.Form.DateRangePicker
|
@@ -1,78 +0,0 @@
|
|
1
|
-
|
2
|
-
class Tao.Form.DatetimePicker extends TaoComponent
|
3
|
-
|
4
|
-
@tag 'tao-datetime-picker'
|
5
|
-
|
6
|
-
@attribute 'valueFormat', default: 'YYYY-MM-DDTHH:mm:ss'
|
7
|
-
|
8
|
-
@attribute 'dateValueFormat', default: 'YYYY-MM-DD'
|
9
|
-
|
10
|
-
@attribute 'dateDisplayFormat', default: 'YYYY-MM-DD'
|
11
|
-
|
12
|
-
@attribute 'timeValueFormat', default: 'HH:mm'
|
13
|
-
|
14
|
-
@attribute 'timeDisplayFormat', default: 'HH:mm'
|
15
|
-
|
16
|
-
@get 'value', ->
|
17
|
-
@field.val()
|
18
|
-
|
19
|
-
@set 'value', (val) ->
|
20
|
-
@field.val val
|
21
|
-
@_initMoment()
|
22
|
-
|
23
|
-
_connected: ->
|
24
|
-
@field = @jq.find '> input'
|
25
|
-
@datePicker = @findComponent 'tao-date-picker'
|
26
|
-
@timePicker = @findComponent 'tao-time-picker'
|
27
|
-
@_bind()
|
28
|
-
|
29
|
-
_disconnected: ->
|
30
|
-
@off()
|
31
|
-
|
32
|
-
_bind: ->
|
33
|
-
@on 'tao-date-picker:change tao-time-picker:change', '.tao-moment-picker', (e, m) =>
|
34
|
-
@_syncMoment()
|
35
|
-
@namespacedTrigger 'change', [@moment]
|
36
|
-
|
37
|
-
datePickerDeferred = $.Deferred()
|
38
|
-
timePickerDeferred = $.Deferred()
|
39
|
-
|
40
|
-
@on 'tao-date-picker:ready', 'tao-date-picker', ->
|
41
|
-
datePickerDeferred.resolve()
|
42
|
-
|
43
|
-
@on 'tao-time-picker:ready', 'tao-time-picker', ->
|
44
|
-
timePickerDeferred.resolve()
|
45
|
-
|
46
|
-
$.when(datePickerDeferred, timePickerDeferred).done =>
|
47
|
-
@_initMoment()
|
48
|
-
@namespacedTrigger 'ready'
|
49
|
-
|
50
|
-
_initMoment: ->
|
51
|
-
m = moment @field.val(), @valueFormat
|
52
|
-
|
53
|
-
if m && m.isValid()
|
54
|
-
@datePicker.setMoment m.format(@dateValueFormat)
|
55
|
-
@timePicker.setMoment m.format(@timeValueFormat)
|
56
|
-
@moment = m
|
57
|
-
else
|
58
|
-
@datePicker.setMoment ''
|
59
|
-
@timePicker.setMoment ''
|
60
|
-
@moment = null
|
61
|
-
|
62
|
-
_syncMoment: ->
|
63
|
-
if @datePicker.moment
|
64
|
-
dateValue = @datePicker.moment.format(@dateValueFormat)
|
65
|
-
timeValue = if @timePicker.moment
|
66
|
-
@timePicker.moment.format(@timeValueFormat)
|
67
|
-
else
|
68
|
-
moment().startOf('day').format(@timeValueFormat)
|
69
|
-
|
70
|
-
value = _.trim "#{dateValue} #{timeValue}"
|
71
|
-
m = moment value, "#{@dateValueFormat} #{@timeValueFormat}"
|
72
|
-
@field.val m.format(@valueFormat)
|
73
|
-
@moment = m
|
74
|
-
else
|
75
|
-
@field.val ''
|
76
|
-
@moment = null
|
77
|
-
|
78
|
-
TaoComponent.register Tao.Form.DatetimePicker
|