tao_form 0.1.9 → 0.1.10

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.
Files changed (132) hide show
  1. checksums.yaml +4 -4
  2. data/config/locales/tao_form/components/date_range_picker/en.yml +5 -0
  3. data/config/locales/tao_form/components/date_range_picker/zh-CN.yml +7 -0
  4. data/lib/assets/javascripts/tao/form/fields/checkbox.coffee +2 -1
  5. data/lib/assets/javascripts/tao/form/fields/index.coffee +1 -0
  6. data/lib/assets/javascripts/tao/form/fields/moment_picker/element.coffee +1 -1
  7. data/lib/assets/javascripts/tao/form/fields/moment_picker/result.coffee +1 -1
  8. data/lib/assets/javascripts/tao/form/fields/moment_picker/segment_list.coffee +1 -1
  9. data/lib/assets/javascripts/tao/form/fields/radio.coffee +1 -1
  10. data/lib/assets/javascripts/tao/form/fields/select/element.coffee +3 -3
  11. data/lib/assets/javascripts/tao/form/fields/select/list.coffee +8 -3
  12. data/lib/assets/javascripts/tao/form/fields/select/multiple_result.coffee +4 -4
  13. data/lib/assets/javascripts/tao/form/fields/select/result.coffee +5 -5
  14. data/lib/assets/javascripts/tao/form/fields/switch.coffee +1 -1
  15. data/lib/assets/javascripts/tao/form/index.coffee +1 -7
  16. data/lib/assets/javascripts/tao/form/mobile/fields/index.coffee +1 -0
  17. data/lib/assets/javascripts/tao/form/mobile/fields/moment_picker/element.coffee +2 -2
  18. data/lib/assets/javascripts/tao/form/mobile/fields/moment_picker/segment_list.coffee +1 -1
  19. data/lib/assets/javascripts/tao/form/mobile/fields/select/element.coffee +13 -4
  20. data/lib/assets/javascripts/tao/form/mobile/fields/select/list.coffee +0 -8
  21. data/lib/assets/javascripts/tao/form/mobile/index.coffee +1 -0
  22. data/lib/assets/javascripts/tao/form/shared/element/base.coffee +6 -2
  23. data/lib/assets/javascripts/tao/form/shared/fields/checkbox.coffee +5 -1
  24. data/lib/assets/javascripts/tao/form/shared/fields/date_range_picker.coffee +75 -0
  25. data/lib/assets/javascripts/tao/form/shared/fields/datetime_picker.coffee +16 -6
  26. data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/element/base.coffee +30 -13
  27. data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/result/base.coffee +2 -2
  28. data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/segment_list/base.coffee +5 -5
  29. data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/segments/base.coffee +2 -0
  30. data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/segments/date_segment.coffee +12 -3
  31. data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/segments/hour_segment.coffee +1 -1
  32. data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/segments/minute_segment.coffee +1 -1
  33. data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/segments/month_segment.coffee +2 -2
  34. data/lib/assets/javascripts/tao/form/shared/fields/moment_picker/segments/year_segment.coffee +3 -3
  35. data/lib/assets/javascripts/tao/form/shared/fields/radio.coffee +5 -1
  36. data/lib/assets/javascripts/tao/form/shared/fields/select/element/base.coffee +24 -20
  37. data/lib/assets/javascripts/tao/form/shared/fields/select/list/base.coffee +21 -3
  38. data/lib/assets/javascripts/tao/form/shared/fields/select/models/data_provider.coffee +0 -8
  39. data/lib/assets/javascripts/tao/form/shared/fields/select/multiple_result/base.coffee +17 -8
  40. data/lib/assets/javascripts/tao/form/shared/fields/select/result/base.coffee +5 -5
  41. data/lib/assets/javascripts/tao/form/shared/fields/switch.coffee +5 -1
  42. data/lib/assets/javascripts/tao/form/shared/init.coffee +23 -0
  43. data/lib/assets/stylesheets/tao/form/fields/checkbox.scss +1 -1
  44. data/lib/assets/stylesheets/tao/form/fields/date_range_picker.scss +20 -0
  45. data/lib/assets/stylesheets/tao/form/fields/datetime_picker.scss +3 -3
  46. data/lib/assets/stylesheets/tao/form/fields/index.scss +1 -0
  47. data/lib/assets/stylesheets/tao/form/fields/moment_picker/index.scss +1 -1
  48. data/lib/assets/stylesheets/tao/form/fields/moment_picker/result.scss +1 -1
  49. data/lib/assets/stylesheets/tao/form/fields/moment_picker/segment_list.scss +2 -2
  50. data/lib/assets/stylesheets/tao/form/fields/moment_picker/segments/date_segment.scss +1 -1
  51. data/lib/assets/stylesheets/tao/form/fields/moment_picker/segments/hour_segment.scss +1 -1
  52. data/lib/assets/stylesheets/tao/form/fields/moment_picker/segments/minute_segment.scss +1 -1
  53. data/lib/assets/stylesheets/tao/form/fields/moment_picker/segments/month_segment.scss +1 -1
  54. data/lib/assets/stylesheets/tao/form/fields/moment_picker/segments/year_segment.scss +1 -1
  55. data/lib/assets/stylesheets/tao/form/fields/radio.scss +1 -1
  56. data/lib/assets/stylesheets/tao/form/fields/select/index.scss +1 -1
  57. data/lib/assets/stylesheets/tao/form/fields/select/list.scss +2 -8
  58. data/lib/assets/stylesheets/tao/form/fields/select/multiple_result.scss +1 -1
  59. data/lib/assets/stylesheets/tao/form/fields/select/result.scss +2 -2
  60. data/lib/assets/stylesheets/tao/form/fields/switch.scss +6 -4
  61. data/lib/assets/stylesheets/tao/form/inputs/boolean.scss +1 -1
  62. data/lib/assets/stylesheets/tao/form/layouts/default.scss +4 -4
  63. data/lib/assets/stylesheets/tao/form/mobile/fields/date_range_picker.scss +18 -0
  64. data/lib/assets/stylesheets/tao/form/mobile/fields/datetime_picker.scss +3 -3
  65. data/lib/assets/stylesheets/tao/form/mobile/fields/moment_picker/index.scss +1 -1
  66. data/lib/assets/stylesheets/tao/form/mobile/fields/moment_picker/result.scss +1 -1
  67. data/lib/assets/stylesheets/tao/form/mobile/fields/moment_picker/segment_list.scss +2 -2
  68. data/lib/assets/stylesheets/tao/form/mobile/fields/moment_picker/segments/date_segment.scss +1 -1
  69. data/lib/assets/stylesheets/tao/form/mobile/fields/moment_picker/segments/hour_segment.scss +1 -1
  70. data/lib/assets/stylesheets/tao/form/mobile/fields/moment_picker/segments/minute_segment.scss +1 -1
  71. data/lib/assets/stylesheets/tao/form/mobile/fields/moment_picker/segments/month_segment.scss +1 -1
  72. data/lib/assets/stylesheets/tao/form/mobile/fields/moment_picker/segments/year_segment.scss +1 -1
  73. data/lib/assets/stylesheets/tao/form/mobile/fields/select/index.scss +1 -1
  74. data/lib/assets/stylesheets/tao/form/mobile/fields/select/list.scss +1 -1
  75. data/lib/assets/stylesheets/tao/form/mobile/fields/select/multiple_result.scss +1 -1
  76. data/lib/assets/stylesheets/tao/form/mobile/fields/select/result.scss +1 -1
  77. data/lib/assets/stylesheets/tao/form/mobile/inputs/boolean.scss +1 -1
  78. data/lib/assets/stylesheets/tao/form/mobile/inputs/group.scss +1 -1
  79. data/lib/assets/stylesheets/tao/form/mobile/layout.scss +2 -2
  80. data/lib/assets/stylesheets/tao/form/reset.scss +1 -0
  81. data/lib/assets/stylesheets/tao/form/shared/fields/_checkbox.scss +1 -1
  82. data/lib/assets/stylesheets/tao/form/shared/fields/_radio.scss +1 -1
  83. data/lib/assets/stylesheets/tao/form/shared/fields/_switch.scss +1 -1
  84. data/lib/assets/stylesheets/tao/form/shared/fields/moment_picker/_result.scss +1 -1
  85. data/lib/assets/stylesheets/tao/form/shared/fields/moment_picker/_segment_list.scss +2 -2
  86. data/lib/assets/stylesheets/tao/form/shared/fields/moment_picker/segments/_date_segment.scss +8 -2
  87. data/lib/assets/stylesheets/tao/form/shared/fields/moment_picker/segments/_hour_segment.scss +1 -1
  88. data/lib/assets/stylesheets/tao/form/shared/fields/moment_picker/segments/_minute_segment.scss +1 -1
  89. data/lib/assets/stylesheets/tao/form/shared/fields/moment_picker/segments/_month_segment.scss +1 -1
  90. data/lib/assets/stylesheets/tao/form/shared/fields/moment_picker/segments/_year_segment.scss +1 -1
  91. data/lib/assets/stylesheets/tao/form/shared/fields/select/_list.scss +6 -2
  92. data/lib/assets/stylesheets/tao/form/shared/fields/select/_multiple_result.scss +1 -1
  93. data/lib/assets/stylesheets/tao/form/shared/inputs/_boolean.scss +1 -1
  94. data/lib/assets/stylesheets/tao/form/shared/inputs/_group.scss +1 -1
  95. data/lib/assets/stylesheets/tao/form/shared/inputs/_text.scss +3 -3
  96. data/lib/tao_form/components.rb +1 -0
  97. data/lib/tao_form/components/check_box_component.rb +4 -0
  98. data/lib/tao_form/components/date_picker_component.rb +6 -0
  99. data/lib/tao_form/components/date_range_picker_component.rb +64 -0
  100. data/lib/tao_form/components/datetime_picker_component.rb +7 -1
  101. data/lib/tao_form/components/form_component.rb +2 -2
  102. data/lib/tao_form/components/moment_picker/base.rb +13 -4
  103. data/lib/tao_form/components/moment_picker/result_component.rb +13 -2
  104. data/lib/tao_form/components/moment_picker/segment_list_component.rb +18 -4
  105. data/lib/tao_form/components/moment_picker/segments/base.rb +1 -1
  106. data/lib/tao_form/components/moment_picker/segments/date_segment_component.rb +4 -1
  107. data/lib/tao_form/components/moment_picker/segments/hour_segment_component.rb +4 -1
  108. data/lib/tao_form/components/moment_picker/segments/minute_segment_component.rb +4 -1
  109. data/lib/tao_form/components/moment_picker/segments/month_segment_component.rb +8 -0
  110. data/lib/tao_form/components/moment_picker/segments/year_segment_component.rb +4 -1
  111. data/lib/tao_form/components/month_picker_component.rb +6 -0
  112. data/lib/tao_form/components/radio_button_component.rb +4 -0
  113. data/lib/tao_form/components/select/list_component.rb +1 -1
  114. data/lib/tao_form/components/select/multiple_result_component.rb +1 -1
  115. data/lib/tao_form/components/select/result_component.rb +1 -1
  116. data/lib/tao_form/components/select_component.rb +8 -1
  117. data/lib/tao_form/components/switch_component.rb +6 -0
  118. data/lib/tao_form/components/time_picker_component.rb +5 -1
  119. data/lib/tao_form/inputs.rb +1 -0
  120. data/lib/tao_form/inputs/date_range_input.rb +28 -0
  121. data/lib/tao_form/inputs/date_time_input.rb +1 -1
  122. data/lib/tao_form/inputs/string_input.rb +46 -6
  123. data/lib/tao_form/version.rb +1 -1
  124. data/lib/views/components/tao_form/components/_date_range_picker.html.erb +7 -0
  125. data/lib/views/components/tao_form/components/_moment_picker.html+mobile.erb +3 -3
  126. data/lib/views/components/tao_form/components/_select.html+mobile.erb +8 -7
  127. data/lib/views/components/tao_form/components/_switch.html.erb +1 -1
  128. data/lib/views/components/tao_form/components/select/_result.html.erb +1 -1
  129. metadata +31 -11
  130. data/config/locales/tao_form/components/datetime/en.yml +0 -5
  131. data/config/locales/tao_form/components/datetime/zh-CN.yml +0 -5
  132. data/lib/views/components/tao_form/components/_select.html.erb +0 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ee2ff40f7bdfcc88531bc195a44cd9519fbdc149
4
- data.tar.gz: d2c855cdb833109f1a80f76a8966114371bf271c
3
+ metadata.gz: 3e6584a0c12c826ec4ee4b8cc98598202dc15c47
4
+ data.tar.gz: 7624701714269e45db9780fe29cc1f6c0ce2206c
5
5
  SHA512:
6
- metadata.gz: 725bafd0dbe6eca4dfa3bab172244f552b8309321e9a0bc413dfe91664d2688e657c9d75b96b20b55ba708f5347e6270ff8017fcd785649d8195b387a43968e8
7
- data.tar.gz: 48711a34c50054ec54605d791a4f0a713a7fcf4b749617928d79ec9a56546634d148951353327c5b1d35ab9b2878e581eec4a2c43c9a31e3d5c4bfa7456d9e45
6
+ metadata.gz: 9732e722dfbe5a0ede57594db2f74fa7dd005918390ccfb3187903905462843e8d799ccbea97340c09e1b3683d3716462577607692bc0be6d64583e41a5fbc1e
7
+ data.tar.gz: c589359dca7064e749673ffb859d7e7cae7dd74b1ecc6279f7d638bb1073bd3f61fd0fb7d569e0ce5f7d6e8848b1a8ef6d5f6d3b2de49c4422488dbc3869d8cc
@@ -0,0 +1,5 @@
1
+ en:
2
+ tao_form:
3
+ components:
4
+ date_range_picker:
5
+ to: to
@@ -0,0 +1,7 @@
1
+ zh-CN:
2
+ tao_form:
3
+ components:
4
+ date_range_picker:
5
+ to: 至
6
+ start_placeholder: 开始日期
7
+ end_placeholder: 结束日期
@@ -8,7 +8,8 @@ class Tao.Form.Checkbox extends Tao.Form.CheckboxBase
8
8
  @on 'keydown', '.checkbox-wrapper', (e) =>
9
9
  return unless e.which == 13 && @field.is(':enabled')
10
10
  @_toggleChecked()
11
- @trigger 'tao:change'
11
+ @namespacedTrigger 'change'
12
+
12
13
  false
13
14
 
14
15
  TaoComponent.register Tao.Form.Checkbox
@@ -7,3 +7,4 @@
7
7
  #= require tao/form/shared/fields/time_picker
8
8
  #= require tao/form/shared/fields/datetime_picker
9
9
  #= require tao/form/shared/fields/month_picker
10
+ #= require tao/form/shared/fields/date_range_picker
@@ -5,7 +5,7 @@ class Tao.Form.MomentPicker.Element extends Tao.Form.MomentPicker.ElementBase
5
5
  _bind: ->
6
6
  super
7
7
 
8
- @on 'tao:show', 'tao-moment-picker-segment-list', (e) =>
8
+ @on 'tao:show', '.tao-moment-picker-segment-list', (e) =>
9
9
  @_positionList()
10
10
 
11
11
  _activeChanged: ->
@@ -13,7 +13,7 @@ class Tao.Form.MomentPicker.Result extends Tao.Form.MomentPicker.ResultBase
13
13
 
14
14
  @on 'click', '.link-clear', (e) =>
15
15
  return if @disabled
16
- @clear() && @trigger('tao:clear')
16
+ @clear() && @namespacedTrigger('clear')
17
17
  false
18
18
 
19
19
  _disabledChanged: ->
@@ -9,6 +9,6 @@ class MomentPicker.SegmentList extends MomentPicker.SegmentListBase
9
9
  @attribute 'direction', default: 'down'
10
10
 
11
11
  _activeChanged: ->
12
- @trigger('tao:show') if @active
12
+ @namespacedTrigger('show') if @active
13
13
 
14
14
  TaoComponent.register Tao.Form.MomentPicker.SegmentList
@@ -8,7 +8,7 @@ class Tao.Form.Radio extends Tao.Form.RadioBase
8
8
  @on 'keydown', '.radio-wrapper', (e) =>
9
9
  return unless e.which == 13 && @field.is(':enabled')
10
10
  @_toggleChecked()
11
- @trigger 'tao:change'
11
+ @namespacedTrigger 'change'
12
12
  false
13
13
 
14
14
  TaoComponent.register Tao.Form.Radio
@@ -12,7 +12,7 @@ class Tao.Form.Select.Element extends Tao.Form.Select.ElementBase
12
12
  @on 'tao:enterPress', '.select-result', (e) =>
13
13
  if @active
14
14
  if @selectOption @list.highlightedOption
15
- @trigger 'tao:change', @selectedOption
15
+ @namespacedTrigger 'change', @selectedOption
16
16
  else
17
17
  @active = true
18
18
  null
@@ -37,7 +37,7 @@ class Tao.Form.Select.Element extends Tao.Form.Select.ElementBase
37
37
  @on 'tao:show', '.select-list', (e) =>
38
38
  @_positionList()
39
39
 
40
- @on 'tao:searchEscapePress', '.select-list', (e) =>
40
+ @on 'tao:cancel', '.select-list', (e) =>
41
41
  @active = false
42
42
  null
43
43
 
@@ -73,7 +73,7 @@ class Tao.Form.Select.Element extends Tao.Form.Select.ElementBase
73
73
  @list.setMaxHeight offsetToWindowTop - 20
74
74
  @list.direction = 'up'
75
75
  else
76
- @list.setMaxHeight(offsetToWindowBottom - 20) if offsetToWindowBottom < listHeight
76
+ @list.setMaxHeight offsetToWindowBottom - 20
77
77
  @list.direction = 'down'
78
78
 
79
79
  TaoComponent.register Tao.Form.Select.Element
@@ -16,10 +16,10 @@ class Tao.Form.Select.List extends Tao.Form.Select.ListBase
16
16
 
17
17
  @on 'keydown', '.search-field', (e) =>
18
18
  if e.which == 13
19
- @trigger('tao:select', [@highlightedOption]) if @highlightedOption
19
+ @namespacedTrigger('select', [@highlightedOption]) if @highlightedOption
20
20
  false
21
21
  else if e.which == 27
22
- @trigger 'tao:searchEscapePress'
22
+ @namespacedTrigger 'cancel'
23
23
  false
24
24
  else if e.which == 38
25
25
  @highlightPrevOption()
@@ -28,9 +28,14 @@ class Tao.Form.Select.List extends Tao.Form.Select.ListBase
28
28
  @highlightNextOption()
29
29
  false
30
30
 
31
+ @on 'mouseenter', '.option', (e) =>
32
+ $option = $ e.currentTarget
33
+ @highlightOption $option
34
+ null
35
+
31
36
  _activeChanged: ->
32
37
  if @active
33
- @trigger 'tao:show'
38
+ @namespacedTrigger 'show'
34
39
  @searchField.focus() if @searchable
35
40
  @_refreshScrollPosition()
36
41
  else
@@ -14,19 +14,19 @@ class Tao.Form.Select.MultipleResult extends Tao.Form.Select.MultipleResultBase
14
14
 
15
15
  @on 'click', '.link-add', (e) =>
16
16
  return if @disabled
17
- @trigger 'tao:activeClick'
17
+ @namespacedTrigger 'activeClick'
18
18
  false
19
19
 
20
20
  @on 'keydown', '.link-add', (e) =>
21
21
  return if @disabled
22
22
  if e.which == 13
23
- @trigger 'tao:enterPress'
23
+ @namespacedTrigger 'enterPress'
24
24
  false
25
25
  else if e.which == 38
26
- @trigger 'tao:arrowPress', ['up']
26
+ @namespacedTrigger 'arrowPress', ['up']
27
27
  false
28
28
  else if e.which == 40
29
- @trigger 'tao:arrowPress', ['down']
29
+ @namespacedTrigger 'arrowPress', ['down']
30
30
  false
31
31
 
32
32
  _disabledChanged: ->
@@ -13,21 +13,21 @@ class Tao.Form.Select.Result extends Tao.Form.Select.ResultBase
13
13
 
14
14
  @on 'click', (e) =>
15
15
  return if @disabled
16
- @trigger 'tao:activeClick'
16
+ @namespacedTrigger 'activeClick'
17
17
 
18
18
  @on 'keydown', (e) =>
19
19
  return if @disabled
20
20
  if e.which == 13
21
- @trigger 'tao:enterPress'
21
+ @namespacedTrigger 'enterPress'
22
22
  false
23
23
  else if e.which == 8 || e.which == 46
24
- @clear() && @trigger('tao:clear')
24
+ @clearSelected() && @namespacedTrigger('clear')
25
25
  false
26
26
  else if e.which == 38
27
- @trigger 'tao:arrowPress', ['up']
27
+ @namespacedTrigger 'arrowPress', ['up']
28
28
  false
29
29
  else if e.which == 40
30
- @trigger 'tao:arrowPress', ['down']
30
+ @namespacedTrigger 'arrowPress', ['down']
31
31
  false
32
32
 
33
33
  _disabledChanged: ->
@@ -8,7 +8,7 @@ class Tao.Form.Switch extends Tao.Form.SwitchBase
8
8
  @on 'keydown', '.switch-wrapper', (e) =>
9
9
  return unless e.which == 13 && @field.is(':enabled')
10
10
  @_toggleChecked()
11
- @trigger 'tao:change'
11
+ @namespacedTrigger 'change'
12
12
  false
13
13
 
14
14
  TaoComponent.register Tao.Form.Switch
@@ -3,15 +3,9 @@
3
3
  #= require tao/ui
4
4
  #= require tao/ui/icons/form
5
5
  #= require_self
6
+ #= require tao/form/shared/init
6
7
  #= require ./element
7
8
  #= require ./fields
8
9
 
9
10
  Tao.Form =
10
11
  Mixins: {}
11
-
12
- Tao.Application.initializer 'moment', (app) ->
13
- if moment? && app.locale
14
- moment.locale(app.locale.toLowerCase())
15
-
16
- if moment?.tz? && app.timeZone
17
- moment.tz.setDefault(app.timeZone)
@@ -7,3 +7,4 @@
7
7
  #= require tao/form/shared/fields/time_picker
8
8
  #= require tao/form/shared/fields/datetime_picker
9
9
  #= require tao/form/shared/fields/month_picker
10
+ #= require tao/form/shared/fields/date_range_picker
@@ -22,11 +22,11 @@ class Tao.Form.MomentPicker.Element extends Tao.Form.MomentPicker.ElementBase
22
22
  @setMoment moment(@segmentList.momentData)
23
23
  null
24
24
 
25
- @on 'tao:clear', 'tao-moment-picker-segment-list', (e) =>
25
+ @on 'tao:clear', '.tao-moment-picker-segment-list', (e) =>
26
26
  return if @disabled
27
27
  @active = false
28
28
  @setMoment null
29
- @trigger 'tao:change', [@moment]
29
+ @namespacedTrigger 'change', [@moment]
30
30
  null
31
31
 
32
32
  _activeChanged: ->
@@ -10,7 +10,7 @@ class MomentPicker.SegmentList extends MomentPicker.SegmentListBase
10
10
  super
11
11
 
12
12
  @on 'click', '.link-clear', (e) =>
13
- @trigger 'tao:clear'
13
+ @namespacedTrigger 'clear'
14
14
  null
15
15
 
16
16
  refreshHeight: ->
@@ -21,12 +21,12 @@ class Tao.Form.Select.Element extends Tao.Form.Select.ElementBase
21
21
  @active = false
22
22
  null
23
23
 
24
- @on 'click', '.header .button-ok', (e) =>
24
+ @on 'click', '.button-ok', (e) =>
25
25
  @active = false
26
26
  null
27
27
 
28
28
  @on 'tao:change', =>
29
- @list.refreshHeight() if @active
29
+ @_refreshListHeight() if @active
30
30
  @_refreshSelectedText()
31
31
 
32
32
  _bindListEvents: ->
@@ -39,7 +39,7 @@ class Tao.Form.Select.Element extends Tao.Form.Select.ElementBase
39
39
  @active = false
40
40
  null
41
41
 
42
- _resultReady: ->
42
+ _childComponentsReady: ->
43
43
  super
44
44
  @_refreshSelectedText()
45
45
 
@@ -55,10 +55,19 @@ class Tao.Form.Select.Element extends Tao.Form.Select.ElementBase
55
55
 
56
56
  @jq.find('.select-result-delegate .selected-text').text text
57
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()
63
+
64
+ $listWrapper.css
65
+ height: winHeight - offsetTop - buttonsHeight
66
+
58
67
  _activeChanged: ->
59
68
  @slideBox.active = @active
60
69
  if @active
61
- @list.refreshHeight()
70
+ @_refreshListHeight()
62
71
  else
63
72
  @list.reset()
64
73
 
@@ -2,12 +2,4 @@
2
2
 
3
3
  class Tao.Form.Select.List extends Tao.Form.Select.ListBase
4
4
 
5
- refreshHeight: ->
6
- $listWrapper = @jq.find('.list-wrapper')
7
- winHeight = $(window).height()
8
- offsetTop = $listWrapper[0].getBoundingClientRect().top
9
-
10
- $listWrapper.css
11
- height: winHeight - offsetTop
12
-
13
5
  TaoComponent.register Tao.Form.Select.List
@@ -3,6 +3,7 @@
3
3
  #= require tao/ui/mobile
4
4
  #= require tao/ui/icons/form
5
5
  #= require_self
6
+ #= require tao/form/shared/init
6
7
  #= require ./element
7
8
  #= require ./fields
8
9
 
@@ -11,11 +11,11 @@ class Tao.Form.ElementBase extends TaoComponent
11
11
  _bind: ->
12
12
  @on 'ajax:beforeSend', '> form', (e) =>
13
13
  @_clearErrors()
14
- @trigger 'tao:beforeSubmit'
14
+ @namespacedTrigger 'beforeSubmit'
15
15
 
16
16
  @on 'ajax:success', '> form', (e) =>
17
17
  @_showSuccessMessage()
18
- @trigger 'tao:success'
18
+ @namespacedTrigger 'success'
19
19
 
20
20
  _disconnected: ->
21
21
  @off()
@@ -47,3 +47,7 @@ class Tao.Form.ElementBase extends TaoComponent
47
47
  clearTimeout @_successTimer
48
48
  @jq.find('.success-message').remove()
49
49
  @jq.find('button[data-disable-with]:hidden, input[data-disable-with]:hidden').show()
50
+
51
+ submit: ->
52
+ @jq.find('> form').submit()
53
+ @
@@ -17,10 +17,14 @@ class Tao.Form.CheckboxBase extends TaoComponent
17
17
  @_bind()
18
18
 
19
19
  _bind: ->
20
+ @on 'change', 'input[type=checkbox]', (e) =>
21
+ @namespacedTrigger 'change'
22
+ null
23
+
20
24
  @on 'click', '.checkbox-wrapper', (e) =>
21
25
  if @field.is(':enabled')
22
26
  @_toggleChecked()
23
- @trigger 'tao:change'
27
+ @namespacedTrigger 'change'
24
28
  false
25
29
 
26
30
  _disconnected: ->
@@ -0,0 +1,75 @@
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
@@ -13,6 +13,13 @@ class Tao.Form.DatetimePicker extends TaoComponent
13
13
 
14
14
  @attribute 'timeDisplayFormat', default: 'HH:mm'
15
15
 
16
+ @get 'value', ->
17
+ @field.val()
18
+
19
+ @set 'value', (val) ->
20
+ @field.val val
21
+ @_initMoment()
22
+
16
23
  _connected: ->
17
24
  @field = @jq.find '> input'
18
25
  @datePicker = @findComponent 'tao-date-picker'
@@ -23,21 +30,22 @@ class Tao.Form.DatetimePicker extends TaoComponent
23
30
  @off()
24
31
 
25
32
  _bind: ->
26
- @on 'tao:change', '.moment-picker', (e, m) =>
33
+ @on 'tao-date-picker:change tao-time-picker:change', '.tao-moment-picker', (e, m) =>
27
34
  @_syncMoment()
28
- @trigger 'tao:change', [@moment]
35
+ @namespacedTrigger 'change', [@moment]
29
36
 
30
37
  datePickerDeferred = $.Deferred()
31
38
  timePickerDeferred = $.Deferred()
32
39
 
33
- @on 'tao:ready', 'tao-date-picker', ->
40
+ @on 'tao-date-picker:ready', 'tao-date-picker', ->
34
41
  datePickerDeferred.resolve()
35
42
 
36
- @on 'tao:ready', 'tao-time-picker', ->
43
+ @on 'tao-time-picker:ready', 'tao-time-picker', ->
37
44
  timePickerDeferred.resolve()
38
45
 
39
- $.when datePickerDeferred, timePickerDeferred
40
- .done => @_initMoment()
46
+ $.when(datePickerDeferred, timePickerDeferred).done =>
47
+ @_initMoment()
48
+ @namespacedTrigger 'ready'
41
49
 
42
50
  _initMoment: ->
43
51
  m = moment @field.val(), @valueFormat
@@ -47,6 +55,8 @@ class Tao.Form.DatetimePicker extends TaoComponent
47
55
  @timePicker.setMoment m.format(@timeValueFormat)
48
56
  @moment = m
49
57
  else
58
+ @datePicker.setMoment ''
59
+ @timePicker.setMoment ''
50
60
  @moment = null
51
61
 
52
62
  _syncMoment: ->