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