sproutcore 1.7.1.beta → 1.8.0

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 (445) hide show
  1. data/CHANGELOG +44 -0
  2. data/README.rdoc +20 -20
  3. data/VERSION.yml +3 -3
  4. data/lib/Buildfile +1 -1
  5. data/lib/buildtasks/build.rake +5 -0
  6. data/lib/buildtasks/manifest.rake +19 -1
  7. data/lib/frameworks/sproutcore/Buildfile +19 -17
  8. data/lib/frameworks/sproutcore/CHANGELOG.md +163 -29
  9. data/lib/frameworks/sproutcore/README.md +29 -8
  10. data/lib/frameworks/sproutcore/apps/statechart_routing/Buildfile +12 -0
  11. data/lib/frameworks/sproutcore/apps/statechart_routing/controllers/login_controller.js +11 -0
  12. data/lib/frameworks/sproutcore/apps/statechart_routing/controllers/main_controller.js +7 -0
  13. data/lib/frameworks/sproutcore/apps/statechart_routing/controllers/statechart_controller.js +17 -0
  14. data/lib/frameworks/sproutcore/apps/statechart_routing/core.js +25 -0
  15. data/lib/frameworks/sproutcore/apps/statechart_routing/main.js +15 -0
  16. data/lib/frameworks/sproutcore/apps/statechart_routing/resources/_theme.css +18 -0
  17. data/lib/frameworks/sproutcore/apps/statechart_routing/resources/bar_page.js +14 -0
  18. data/lib/frameworks/sproutcore/apps/statechart_routing/resources/foo_page.js +14 -0
  19. data/lib/frameworks/sproutcore/apps/statechart_routing/resources/loading.rhtml +9 -0
  20. data/lib/frameworks/sproutcore/apps/statechart_routing/resources/login_page.js +61 -0
  21. data/lib/frameworks/sproutcore/apps/statechart_routing/resources/main_page.js +46 -0
  22. data/lib/frameworks/sproutcore/apps/statechart_routing/statechart.js +76 -0
  23. data/lib/frameworks/sproutcore/apps/statechart_routing/theme.js +27 -0
  24. data/lib/frameworks/sproutcore/apps/tests/controllers/targets.js +1 -1
  25. data/lib/frameworks/sproutcore/apps/tests/states/no_targets.js +1 -1
  26. data/lib/frameworks/sproutcore/apps/tests/states/ready_detail.js +1 -1
  27. data/lib/frameworks/sproutcore/apps/tests/states/ready_empty.js +1 -1
  28. data/lib/frameworks/sproutcore/apps/tests/states/ready_list.js +1 -1
  29. data/lib/frameworks/sproutcore/apps/tests/states/ready_no_tests.js +1 -1
  30. data/lib/frameworks/sproutcore/apps/welcome/controllers/targets.js +1 -1
  31. data/lib/frameworks/sproutcore/frameworks/ajax/system/request.js +14 -1
  32. data/lib/frameworks/sproutcore/frameworks/ajax/system/response.js +15 -15
  33. data/lib/frameworks/sproutcore/frameworks/ajax/tests/system/request.js +1 -1
  34. data/lib/frameworks/sproutcore/frameworks/animation/core.js +8 -5
  35. data/lib/frameworks/sproutcore/frameworks/bootstrap/system/browser.js +302 -70
  36. data/lib/frameworks/sproutcore/frameworks/bootstrap/system/loader.js +19 -14
  37. data/lib/frameworks/sproutcore/frameworks/bootstrap/tests/system/browser.js +471 -149
  38. data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/array.js +3 -3
  39. data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/object.js +42 -0
  40. data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/run_loop.js +3 -2
  41. data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/string.js +7 -0
  42. data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/action_support.js +1 -1
  43. data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/delegate_support.js +2 -2
  44. data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/responder_context.js +3 -3
  45. data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/selection_support.js +1 -1
  46. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/body_overflow.js +63 -0
  47. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/keyboard.js +1 -1
  48. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/layout.js +37 -2
  49. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/main.js +28 -6
  50. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/pane.js +10 -3
  51. data/lib/frameworks/sproutcore/frameworks/core_foundation/protocols/sparse_array_delegate.js +2 -2
  52. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/browser.js +66 -2
  53. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/builder.js +1 -1
  54. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/cursor.js +1 -1
  55. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/event.js +58 -57
  56. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/locale.js +1 -1
  57. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/locale.js.orig +445 -0
  58. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/platform.js +51 -31
  59. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/ready.js +5 -1
  60. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/render_context.js +53 -69
  61. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/responder.js +1 -1
  62. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/root_responder.js +98 -72
  63. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/string.js +37 -3
  64. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/timer.js +7 -4
  65. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/array_case.js +21 -0
  66. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/object/content_destroyed.js +7 -7
  67. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/string.js +23 -1
  68. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/browser.js +66 -0
  69. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/event.js +22 -0
  70. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/locale.js +11 -11
  71. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/end.js +4 -4
  72. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/escape_html.js +41 -0
  73. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_className.js +1 -1
  74. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_style.js +8 -8
  75. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/update.js +17 -16
  76. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/selection_set/remove.js +1 -1
  77. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/build_children.js +1 -1
  78. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/class_name_bindings_test.js +15 -0
  79. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/createChildViews.js +5 -5
  80. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view.js +50 -30
  81. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/acceleration.js +46 -0
  82. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/animation.js +1 -43
  83. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/keyboard.js +8 -34
  84. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout.js +3 -2
  85. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout_style.js +10 -1
  86. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/manipulation.js +6 -5
  87. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/theming.js +22 -2
  88. data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/data_source.js +2 -2
  89. data/lib/frameworks/sproutcore/frameworks/datastore/mixins/relationship_support.js +1 -1
  90. data/lib/frameworks/sproutcore/frameworks/datastore/models/child_attribute.js +0 -2
  91. data/lib/frameworks/sproutcore/frameworks/datastore/models/children_attribute.js +35 -0
  92. data/lib/frameworks/sproutcore/frameworks/datastore/models/record.js +46 -19
  93. data/lib/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +23 -9
  94. data/lib/frameworks/sproutcore/frameworks/datastore/models/single_attribute.js +2 -3
  95. data/lib/frameworks/sproutcore/frameworks/datastore/system/many_array.js +1 -1
  96. data/lib/frameworks/sproutcore/frameworks/datastore/system/nested_store.js +2 -2
  97. data/lib/frameworks/sproutcore/frameworks/datastore/system/query.js +294 -302
  98. data/lib/frameworks/sproutcore/frameworks/datastore/system/query.js.orig +1531 -0
  99. data/lib/frameworks/sproutcore/frameworks/datastore/system/record_array.js +4 -2
  100. data/lib/frameworks/sproutcore/frameworks/datastore/system/store.js +14 -11
  101. data/lib/frameworks/sproutcore/frameworks/datastore/tests/integration/many_array.js +63 -0
  102. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/many_attribute.js +1 -1
  103. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record.js +4 -4
  104. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array.js +50 -10
  105. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array_complex.js +4 -4
  106. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_complex.js +3 -3
  107. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/destroy.js +1 -1
  108. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/refresh.js +1 -1
  109. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record_attribute.js +1 -1
  110. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/single_attribute.js +114 -67
  111. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/commitChangesFromNestedStore.js +1 -1
  112. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/readDataHash.js +1 -1
  113. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/compare.js +54 -1
  114. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/evaluation.js +29 -9
  115. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/parse.js +1 -1
  116. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/core_methods.js +1 -1
  117. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/flush.js +1 -1
  118. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/cancelRecord.js +1 -1
  119. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/commitChangesFromNestedStore.js +1 -1
  120. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/commitRecord.js +37 -45
  121. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/find.js +127 -127
  122. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/pushChanges.js +16 -0
  123. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/pushRelationships.js +42 -4
  124. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/readDataHash.js +1 -1
  125. data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/system/datetime.js +13 -7
  126. data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/tests/system/datetime.js +8 -0
  127. data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/resources/strings.js +2 -1
  128. data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/system/datetime.js +1 -0
  129. data/lib/frameworks/sproutcore/frameworks/debug/core.js +3 -3
  130. data/lib/frameworks/sproutcore/frameworks/desktop/core.js +1 -1
  131. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_row_delegate.js +1 -1
  132. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_view_delegate.js +1 -1
  133. data/lib/frameworks/sproutcore/frameworks/desktop/panes/alert.js +1 -4
  134. data/lib/frameworks/sproutcore/frameworks/desktop/panes/menu.js +19 -6
  135. data/lib/frameworks/sproutcore/frameworks/desktop/panes/modal.js +30 -1
  136. data/lib/frameworks/sproutcore/frameworks/desktop/panes/palette.js +1 -1
  137. data/lib/frameworks/sproutcore/frameworks/desktop/panes/panel.js +24 -1
  138. data/lib/frameworks/sproutcore/frameworks/desktop/panes/picker.js +121 -28
  139. data/lib/frameworks/sproutcore/frameworks/desktop/panes/sheet.js +15 -15
  140. data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drag_data_source.js +1 -1
  141. data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drop_target.js +2 -2
  142. data/lib/frameworks/sproutcore/frameworks/desktop/protocols/responder.js +2 -2
  143. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/button.js +39 -15
  144. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/collection.js +3 -3
  145. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js +2 -2
  146. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/image_button.js +2 -2
  147. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/panel.js +14 -6
  148. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/popup_button.js +3 -3
  149. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/progress.js +11 -11
  150. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segment.js +4 -3
  151. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segmented.js +1 -51
  152. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/slider.js +11 -16
  153. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-error-48.png +0 -0
  154. data/lib/frameworks/sproutcore/frameworks/desktop/resources/slider.css +0 -2
  155. data/lib/frameworks/sproutcore/frameworks/desktop/system/drag.js +3 -3
  156. data/lib/frameworks/sproutcore/frameworks/desktop/system/undo_manager.js +3 -3
  157. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/alert/ui.js +9 -9
  158. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/content.js +11 -11
  159. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/ui.js +2 -1
  160. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/reload.js +1 -1
  161. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/date_field/ui.js +107 -81
  162. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/rowDelegate.js +3 -3
  163. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/progress/ui.js +68 -60
  164. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/radio/methods.js +57 -12
  165. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/integration.js +21 -19
  166. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroller.js +5 -0
  167. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/ui.js +2 -2
  168. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select/ui.js +32 -3
  169. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/split/methods.js +12 -0
  170. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/stacked/ui_comments.js +12 -0
  171. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/tab/methods.js +0 -8
  172. data/lib/frameworks/sproutcore/frameworks/desktop/views/button.js +77 -132
  173. data/lib/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +5 -6
  174. data/lib/frameworks/sproutcore/frameworks/desktop/views/collection.js +16 -15
  175. data/lib/frameworks/sproutcore/frameworks/desktop/views/date_field.js +52 -52
  176. data/lib/frameworks/sproutcore/frameworks/desktop/views/disclosure.js +1 -1
  177. data/lib/frameworks/sproutcore/frameworks/desktop/views/grid.js +1 -1
  178. data/lib/frameworks/sproutcore/frameworks/desktop/views/list.js +147 -147
  179. data/lib/frameworks/sproutcore/frameworks/desktop/views/list_item.js +11 -2
  180. data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +2 -2
  181. data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_scroll.js +5 -5
  182. data/lib/frameworks/sproutcore/frameworks/desktop/views/popup_button.js +22 -12
  183. data/lib/frameworks/sproutcore/frameworks/desktop/views/radio.js +13 -7
  184. data/lib/frameworks/sproutcore/frameworks/desktop/views/scene.js +2 -2
  185. data/lib/frameworks/sproutcore/frameworks/desktop/views/scroll.js +462 -441
  186. data/lib/frameworks/sproutcore/frameworks/desktop/views/scroller.js +48 -62
  187. data/lib/frameworks/sproutcore/frameworks/desktop/views/segment.js +22 -2
  188. data/lib/frameworks/sproutcore/frameworks/desktop/views/segmented.js +150 -32
  189. data/lib/frameworks/sproutcore/frameworks/desktop/views/select.js +104 -45
  190. data/lib/frameworks/sproutcore/frameworks/desktop/views/select_button.js +42 -20
  191. data/lib/frameworks/sproutcore/frameworks/desktop/views/slider.js +24 -24
  192. data/lib/frameworks/sproutcore/frameworks/desktop/views/split.js +148 -154
  193. data/lib/frameworks/sproutcore/frameworks/desktop/views/stacked.js +2 -2
  194. data/lib/frameworks/sproutcore/frameworks/desktop/views/static_content.js +2 -2
  195. data/lib/frameworks/sproutcore/frameworks/desktop/views/tab.js +8 -7
  196. data/lib/frameworks/sproutcore/frameworks/desktop/views/web.js +2 -2
  197. data/lib/frameworks/sproutcore/frameworks/experimental/Buildfile +2 -0
  198. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/controllers/files.js +1 -1
  199. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/controllers/library.js +1 -1
  200. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/controllers/targets.js +1 -1
  201. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/controllers/view_configs.js +1 -1
  202. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/mixins/drop_down.js +1 -1
  203. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/states/ready.js +1 -1
  204. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/views/plist_item.js +1 -1
  205. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/views/web.js +1 -1
  206. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/controllers/page_design.js +2 -2
  207. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/css/css_style_sheet.js +2 -2
  208. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/designers/object_designer.js +1 -1
  209. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/designers/view_designer.js +2 -2
  210. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/mixins/snap_lines.js +3 -3
  211. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/views/designer_drop_target.js +1 -1
  212. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/views/drawing.js +21 -21
  213. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/views/page_item_view.js +1 -1
  214. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/views/form.js +59 -53
  215. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/menu/views/menu/scroll.js +2 -2
  216. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/tests/models/polymorphism/simple.js +1 -1
  217. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/core_scroll.js +6 -6
  218. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/desktop/scroll.js +2 -2
  219. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/touch/scroll.js +2 -2
  220. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/ext/menu.js +14 -10
  221. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/ext/menu_item.js +17 -6
  222. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/views/popup_button.js +38 -14
  223. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/views/select.js +5 -13
  224. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/mixins/split_child.js +1 -1
  225. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/mixins/split_thumb.js +5 -3
  226. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/tests/children.js +19 -0
  227. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/tests/methods.js +20 -2
  228. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/tests/split_thumb.js +1 -1
  229. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/views/split.js +35 -12
  230. data/lib/frameworks/sproutcore/frameworks/formatters/README +6 -0
  231. data/lib/frameworks/sproutcore/frameworks/formatters/english.lproj/strings.js +174 -0
  232. data/lib/frameworks/sproutcore/frameworks/formatters/formatters/date_formatter.js +351 -0
  233. data/lib/frameworks/sproutcore/frameworks/formatters/tests/date_formatter.js +517 -0
  234. data/lib/frameworks/sproutcore/frameworks/foundation/core.js +1 -1
  235. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_resize.js +345 -138
  236. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/button.js +5 -3
  237. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/content_value_support.js +176 -42
  238. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/editable.js +1 -1
  239. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/flowed_layout.js +137 -105
  240. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/gestureable.js +2 -2
  241. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editable.js +2 -2
  242. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editor.js +16 -1
  243. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/static_layout.js +1 -1
  244. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/validatable.js +47 -47
  245. data/lib/frameworks/sproutcore/frameworks/foundation/private/tree_item_observer.js +3 -3
  246. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/helpers/sizing.js +1 -1
  247. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/label.js +28 -6
  248. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/render_delegate.js +1 -1
  249. data/lib/frameworks/sproutcore/frameworks/foundation/resources/benchmark.css +0 -5
  250. data/lib/frameworks/sproutcore/frameworks/foundation/resources/bootstrap.rhtml +34 -19
  251. data/lib/frameworks/sproutcore/frameworks/foundation/resources/button_view.css +0 -2
  252. data/lib/frameworks/sproutcore/frameworks/foundation/resources/label.css +1 -5
  253. data/lib/frameworks/sproutcore/frameworks/foundation/resources/text_field.css +8 -9
  254. data/lib/frameworks/sproutcore/frameworks/foundation/system/benchmark.js +2 -2
  255. data/lib/frameworks/sproutcore/frameworks/foundation/system/module.js +179 -47
  256. data/lib/frameworks/sproutcore/frameworks/foundation/system/task_queue.js +34 -1
  257. data/lib/frameworks/sproutcore/frameworks/foundation/system/text_selection.js +1 -1
  258. data/lib/frameworks/sproutcore/frameworks/foundation/system/user_defaults.js +26 -12
  259. data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/misc.js +7 -7
  260. data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/string_measurement.js +12 -4
  261. data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/string_metric_optimization.js +202 -0
  262. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/content_value_support/content.js +77 -8
  263. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/flowed_layout/tests.js +1 -0
  264. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editable/beginEditing.js +2 -2
  265. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editable/commitEditing.js +4 -3
  266. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editable/discardEditing.js +4 -2
  267. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editor/beginEditing.js +2 -2
  268. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editor/commitEditing.js +4 -2
  269. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editor/discardEditing.js +4 -2
  270. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/utils/pointInElement.js +2 -2
  271. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/label/ui.js +0 -8
  272. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/ui.js +163 -149
  273. data/lib/frameworks/sproutcore/frameworks/foundation/validators/credit_card.js +1 -1
  274. data/lib/frameworks/sproutcore/frameworks/foundation/validators/date.js +1 -1
  275. data/lib/frameworks/sproutcore/frameworks/foundation/validators/date_time.js +1 -1
  276. data/lib/frameworks/sproutcore/frameworks/foundation/validators/password.js +1 -1
  277. data/lib/frameworks/sproutcore/frameworks/foundation/validators/validator.js +3 -3
  278. data/lib/frameworks/sproutcore/frameworks/foundation/views/field.js +16 -43
  279. data/lib/frameworks/sproutcore/frameworks/foundation/views/image.js +4 -3
  280. data/lib/frameworks/sproutcore/frameworks/foundation/views/inline_text_field.js +67 -54
  281. data/lib/frameworks/sproutcore/frameworks/foundation/views/label.js +49 -38
  282. data/lib/frameworks/sproutcore/frameworks/foundation/views/text_field.js +285 -242
  283. data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffer.js +13 -13
  284. data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffered.js +19 -22
  285. data/lib/frameworks/sproutcore/frameworks/jquery/jquery-sc.js +9 -3
  286. data/lib/frameworks/sproutcore/frameworks/jquery/jquery.js +231 -186
  287. data/lib/frameworks/sproutcore/frameworks/media/views/audio.js +145 -143
  288. data/lib/frameworks/sproutcore/frameworks/media/views/video.js +156 -154
  289. data/lib/frameworks/sproutcore/frameworks/qunit/qunit/qunit.js +5 -5
  290. data/lib/frameworks/sproutcore/frameworks/routing/system/routes.js +3 -3
  291. data/lib/frameworks/sproutcore/frameworks/routing/system/routes.js.orig +540 -0
  292. data/lib/frameworks/sproutcore/frameworks/routing/tests/system/routes.js +2 -2
  293. data/lib/frameworks/sproutcore/frameworks/runtime/core.js +15 -8
  294. data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/base.js +5 -5
  295. data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/replace.js +12 -0
  296. data/lib/frameworks/sproutcore/frameworks/runtime/ext/function.js +2 -2
  297. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/array.js +1 -1
  298. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/copyable.js +1 -1
  299. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/enumerable.js +7 -7
  300. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +98 -32
  301. data/lib/frameworks/sproutcore/frameworks/runtime/private/chain_observer.js +7 -2
  302. data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_queue.js +14 -3
  303. data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_set.js +98 -13
  304. data/lib/frameworks/sproutcore/frameworks/runtime/system/binding.js +8 -14
  305. data/lib/frameworks/sproutcore/frameworks/runtime/system/enumerator.js +1 -1
  306. data/lib/frameworks/sproutcore/frameworks/runtime/system/error.js +2 -2
  307. data/lib/frameworks/sproutcore/frameworks/runtime/system/index_set.js +23 -6
  308. data/lib/frameworks/sproutcore/frameworks/runtime/system/logger.js +69 -18
  309. data/lib/frameworks/sproutcore/frameworks/runtime/system/object.js +57 -31
  310. data/lib/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +189 -14
  311. data/lib/frameworks/sproutcore/frameworks/runtime/system/string.js +82 -22
  312. data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/chained.js +20 -0
  313. data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/observable.js +125 -4
  314. data/lib/frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue.js +1 -1
  315. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/binding.js +2 -2
  316. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/rangeStartForIndex.js +37 -0
  317. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/remove.js +2 -2
  318. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/logger.js +16 -0
  319. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/run_loop.js +75 -4
  320. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/string.js +41 -0
  321. data/lib/frameworks/sproutcore/frameworks/statechart/mixins/statechart_delegate.js +113 -0
  322. data/lib/frameworks/sproutcore/frameworks/statechart/private/state_path_matcher.js +312 -0
  323. data/lib/frameworks/sproutcore/frameworks/statechart/system/async.js +18 -22
  324. data/lib/frameworks/sproutcore/frameworks/statechart/system/state.js +508 -131
  325. data/lib/frameworks/sproutcore/frameworks/statechart/system/state_route_handler_context.js +78 -0
  326. data/lib/frameworks/sproutcore/frameworks/statechart/system/statechart.js +265 -44
  327. data/lib/frameworks/sproutcore/frameworks/statechart/tests/event_handling/basic/with_concurrent_states.js +16 -0
  328. data/lib/frameworks/sproutcore/frameworks/statechart/tests/event_handling/responder/responder_chain.js +11 -3
  329. data/lib/frameworks/sproutcore/frameworks/statechart/tests/private/state_path_matcher.js +116 -0
  330. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/add_substate.js +108 -0
  331. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/find_first_relative_current_state/with_concurrent.js +179 -0
  332. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/find_first_relative_current_state/without_concurrent.js +74 -0
  333. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/get_state.js +141 -0
  334. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/get_substate.js +340 -0
  335. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/route_triggered.js +161 -0
  336. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/try_to_handle_event.js +288 -0
  337. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/history_state/standard/without_concurrent_states/context.js +5 -33
  338. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/routing/with_concurrent_states/basic.js +213 -0
  339. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/routing/without_concurrent_states/basic.js +212 -0
  340. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/standard/without_concurrent_states/core.js +8 -0
  341. data/lib/frameworks/sproutcore/frameworks/statechart/tests/{state/namespacing.js → statechart/methods/get_state.js} +3 -41
  342. data/lib/frameworks/sproutcore/frameworks/statechart/tests/statechart/{invoke_state_method.js → methods/invoke_state_method.js} +1 -1
  343. data/lib/frameworks/sproutcore/frameworks/statechart/tests/{event_handling/advanced → statechart}/respond_to_event.js +1 -1
  344. data/lib/frameworks/sproutcore/frameworks/statechart/tests/system/state_route_handler_context/methods/retry.js +64 -0
  345. data/lib/frameworks/sproutcore/frameworks/table/core.js +2 -0
  346. data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/controls/button.js +0 -1
  347. data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/ext/handlebars.js +29 -5
  348. data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/ext/handlebars/bind.js +4 -3
  349. data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/ext/handlebars/collection.js +0 -0
  350. data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/ext/handlebars/localization.js +0 -0
  351. data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/ext/handlebars/view.js +0 -0
  352. data/lib/frameworks/sproutcore/frameworks/{handlebars → template_view}/handlebars.js +493 -357
  353. data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/mixins/template_helpers/checkbox_support.js +0 -0
  354. data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/mixins/template_helpers/text_field_support.js +13 -2
  355. data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/panes/template.js +0 -0
  356. data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/controls/button.js +0 -0
  357. data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/mixins/template_helpers/checkbox_support.js +0 -0
  358. data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/mixins/template_helpers/text_field_support.js +0 -0
  359. data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/panes/template.js +0 -0
  360. data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/views/template/collection.js +39 -14
  361. data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/views/template/core.js +0 -0
  362. data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/views/template/handlebars.js +57 -6
  363. data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/views/bindable_span.js +21 -6
  364. data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/views/template.js +9 -3
  365. data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/views/template_collection.js +55 -26
  366. data/lib/frameworks/sproutcore/frameworks/testing/system/equiv.js +1 -1
  367. data/lib/frameworks/sproutcore/frameworks/testing/system/plan.js +122 -122
  368. data/lib/frameworks/sproutcore/frameworks/testing/system/runner.js +2 -2
  369. data/lib/frameworks/sproutcore/frameworks/testing/system/suite.js +4 -4
  370. data/lib/frameworks/sproutcore/frameworks/yuireset/resources/base.css +1 -1
  371. data/lib/frameworks/sproutcore/frameworks/yuireset/resources/reset.css +0 -1
  372. data/lib/frameworks/sproutcore/frameworks/yuireset/resources/view.css +4 -4
  373. data/lib/frameworks/sproutcore/lib/index.rhtml +55 -32
  374. data/lib/frameworks/sproutcore/license.js +2 -4
  375. data/lib/frameworks/sproutcore/themes/ace/resources/body.css +5 -1
  376. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/18px/button.css +2 -2
  377. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/button.css +21 -13
  378. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/button.css +17 -10
  379. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/button.css +4 -3
  380. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/button.css +20 -12
  381. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/button.css +16 -8
  382. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/jumbo/button.css +17 -0
  383. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/small/button.css +17 -0
  384. data/lib/frameworks/sproutcore/themes/ace/resources/disclosure/ace/disclosure.css +2 -2
  385. data/lib/frameworks/sproutcore/themes/ace/resources/master-detail/master-detail.css +2 -2
  386. data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover.css +5 -3
  387. data/lib/frameworks/sproutcore/themes/iphone_theme/english.lproj/core.css +1 -1
  388. data/lib/frameworks/sproutcore/themes/legacy_theme/english.lproj/toolbar.css +1 -1
  389. data/lib/gen/app/USAGE +17 -4
  390. data/lib/gen/language/Buildfile +4 -4
  391. data/lib/gen/language/USAGE +4 -4
  392. data/lib/gen/page/templates/pages/@target_name@/Buildfile +7 -7
  393. data/lib/gen/{html_app → statechart_app}/Buildfile +0 -0
  394. data/lib/gen/{html_app → statechart_app}/README +0 -0
  395. data/lib/gen/statechart_app/USAGE +21 -0
  396. data/lib/gen/statechart_app/templates/apps/@target_name@/Buildfile +9 -0
  397. data/lib/gen/statechart_app/templates/apps/@target_name@/core.js +24 -0
  398. data/lib/gen/statechart_app/templates/apps/@target_name@/main.js +26 -0
  399. data/lib/gen/statechart_app/templates/apps/@target_name@/resources/_theme.css +18 -0
  400. data/lib/gen/statechart_app/templates/apps/@target_name@/resources/loading.rhtml +9 -0
  401. data/lib/gen/statechart_app/templates/apps/@target_name@/resources/main_page.js +21 -0
  402. data/lib/gen/statechart_app/templates/apps/@target_name@/statechart.js +8 -0
  403. data/lib/gen/statechart_app/templates/apps/@target_name@/states/ready_state.js +12 -0
  404. data/lib/gen/statechart_app/templates/apps/@target_name@/theme.js +24 -0
  405. data/lib/sproutcore/builders.rb +1 -0
  406. data/lib/sproutcore/builders/base.rb +19 -1
  407. data/lib/sproutcore/builders/chance_file.rb +6 -1
  408. data/lib/sproutcore/builders/handlebars.rb +1 -9
  409. data/lib/sproutcore/builders/javascript.rb +1 -10
  410. data/lib/sproutcore/builders/json.rb +25 -0
  411. data/lib/sproutcore/builders/less.rb +1 -1
  412. data/lib/sproutcore/builders/sass.rb +1 -1
  413. data/lib/sproutcore/builders/stylesheet.rb +1 -9
  414. data/lib/sproutcore/helpers/html5_manifest.rb +1 -1
  415. data/lib/sproutcore/helpers/static_helper.rb +42 -0
  416. data/lib/sproutcore/rack/proxy.rb +21 -3
  417. data/lib/sproutcore/rack/service.rb +3 -2
  418. data/lib/sproutcore/tools.rb +18 -25
  419. data/lib/sproutcore/tools/gen.rb +10 -3
  420. data/lib/sproutcore/tools/init.rb +11 -10
  421. data/spec/buildtasks/manifest/prepare_build_tasks/json_spec.rb +62 -0
  422. data/spec/fixtures/builder_tests/apps/handlebars_test/Buildfile +1 -1
  423. data/spec/fixtures/builder_tests/apps/json_test/sc_static.json +2 -0
  424. data/spec/lib/builders/json_spec.rb +53 -0
  425. data/sproutcore.gemspec +2 -2
  426. data/vendor/chance/lib/chance/parser.rb +1 -1
  427. metadata +222 -177
  428. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/datetime.js +0 -0
  429. data/lib/frameworks/sproutcore/frameworks/debug/invoke_once_last_debugging.js +0 -259
  430. data/lib/frameworks/sproutcore/frameworks/documentation/core.js +0 -0
  431. data/lib/frameworks/sproutcore/frameworks/foundation/system/chance.js +0 -69
  432. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/editable/ui.js +0 -44
  433. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_text_field/ui.js +0 -64
  434. data/lib/frameworks/sproutcore/frameworks/mini/license.js +0 -30
  435. data/lib/gen/html_app/USAGE +0 -15
  436. data/lib/gen/html_app/templates/apps/@target_name@/@target_name@.js +0 -11
  437. data/lib/gen/html_app/templates/apps/@target_name@/resources/images/.gitkeep +0 -0
  438. data/lib/gen/html_app/templates/apps/@target_name@/resources/stylesheets/@target_name@.css +0 -6
  439. data/lib/gen/html_app/templates/apps/@target_name@/resources/templates/@target_name@.handlebars +0 -1
  440. data/lib/gen/html_project/Buildfile +0 -45
  441. data/lib/gen/html_project/INIT +0 -3
  442. data/lib/gen/html_project/README +0 -1
  443. data/lib/gen/html_project/USAGE +0 -2
  444. data/lib/gen/html_project/templates/@filename@/Buildfile +0 -5
  445. data/lib/gen/html_project/templates/@filename@/README +0 -4
@@ -9,125 +9,125 @@
9
9
  sc_require('views/controls');
10
10
  sc_require('views/mini_controls');
11
11
 
12
- /**
12
+ /**
13
13
  @class
14
-
15
- Renders a videoView using different technologies like HTML5 video tag,
14
+
15
+ Renders a videoView using different technologies like HTML5 video tag,
16
16
  quicktime and flash.
17
-
18
- This view wraps the different technologies so you can use one standard and
17
+
18
+ This view wraps the different technologies so you can use one standard and
19
19
  simple API to play videos.
20
-
21
- You can specify and array with the order of how the technologies will degrad
22
- depending on availability. For example you can set degradeList to be
23
- ['html5', 'flash'] and it will load your video in a video tag if the
24
- technology is available otherwise flash and if neither of the technologies
20
+
21
+ You can specify and array with the order of how the technologies will degrade
22
+ depending on availability. For example you can set degradeList to be
23
+ ['html5', 'flash'] and it will load your video in a video tag if the
24
+ technology is available otherwise flash and if neither of the technologies
25
25
  are available it will show a message saying that your machine needs to install
26
26
  one of this technologies.
27
-
27
+
28
28
  @extends SC.View
29
29
  @since SproutCore 1.1
30
30
  */
31
31
  SC.VideoView = SC.View.extend(
32
32
  /** @scope SC.VideoView.prototype */{
33
33
 
34
- /**
35
- Video view className.
34
+ /**
35
+ Video view className.
36
36
  @property {String}
37
37
  */
38
38
  classNames: 'sc-video-view',
39
-
40
- /**
39
+
40
+ /**
41
41
  Properties that trigger a re render of the view. If the value changes, it
42
42
  means that the video url changed.
43
-
43
+
44
44
  @property {Array}
45
45
  */
46
46
  displayProperties: ['value', 'shouldAutoResize'],
47
-
48
- /**
49
- Reference to the video object once is created.
47
+
48
+ /**
49
+ Reference to the video object once is created.
50
50
  @property {Object}
51
51
  */
52
-
52
+
53
53
  videoObject:null,
54
-
55
- /**
54
+
55
+ /**
56
56
  Array containing the technologies and the order to load them depending
57
57
  availability
58
-
58
+
59
59
  @property {Array}
60
60
  */
61
61
  degradeList: ['html5','quicktime', 'flash'],
62
-
63
- /**
62
+
63
+ /**
64
64
  Current time in secs
65
65
  @property {Number}
66
66
  */
67
- currentTime: 0,
68
-
69
- /**
67
+ currentTime: 0,
68
+
69
+ /**
70
70
  Duration in secs
71
71
  @property {Number}
72
72
  */
73
73
  duration: 0, //video duration in secs
74
-
75
- /**
74
+
75
+ /**
76
76
  Volume. The value should be between 0 and 1
77
77
  @property {Number}
78
78
  */
79
79
  volume:0, //volume value from 0 to 1
80
-
81
- /**
80
+
81
+ /**
82
82
  Tells you if the video is paused or not.
83
83
  @property {Boolean}
84
84
  */
85
85
  paused: YES, //is the video paused
86
86
 
87
- /**
87
+ /**
88
88
  Tells you if the video is loaded.
89
89
  @property {Boolean}
90
90
  */
91
91
 
92
92
  loaded: NO, //has the video loaded
93
-
94
- /**
93
+
94
+ /**
95
95
  Indicates if the video has reached the end
96
96
  @property {Boolean}
97
97
  */
98
-
98
+
99
99
  ended: NO, //did the video finished playing
100
-
101
- /**
100
+
101
+ /**
102
102
  Indicates if the video is ready to be played.
103
103
  @property {Boolean}
104
104
  */
105
-
105
+
106
106
  canPlay: NO, //can the video be played
107
-
108
- /**
107
+
108
+ /**
109
109
  Width of the video in pixels.
110
110
  @property {Number}
111
111
  */
112
112
  videoWidth:0,
113
-
114
- /**
113
+
114
+ /**
115
115
  Width of the video in pixels.
116
116
  @property {Number}
117
117
  */
118
118
  videoHeight:0,
119
-
120
- /**
119
+
120
+ /**
121
121
  Flag to enable captions if available.
122
122
  @property {Boolean}
123
123
  */
124
124
  captionsEnabled: NO,
125
-
125
+
126
126
  loadedTimeRanges:[], //loaded bits
127
-
127
+
128
128
  poster: null,
129
-
130
- /**
129
+
130
+ /**
131
131
  Formatted currentTime. (00:00)
132
132
  @property {String}
133
133
  */
@@ -137,10 +137,10 @@ SC.VideoView = SC.View.extend(
137
137
  var formattedTime = this._addZeros(Math.floor(currentTime/60))+':'+this._addZeros(Math.floor(currentTime%60))+"/"+this._addZeros(Math.floor(totaltimeInSecs/60))+':'+this._addZeros(Math.floor(totaltimeInSecs%60));
138
138
  return formattedTime;
139
139
  }.property('currentTime', 'duration').cacheable(),
140
-
141
- /**
142
- Renders the appropiate HTML according for the technology to use.
143
-
140
+
141
+ /**
142
+ Renders the appropriate HTML according for the technology to use.
143
+
144
144
  @param {SC.RenderContext} context the render context
145
145
  @param {Boolean} firstTime YES if this is creating a layer
146
146
  @returns {void}
@@ -151,7 +151,8 @@ SC.VideoView = SC.View.extend(
151
151
  for(i=0, listLen = this.degradeList.length; i<listLen; i++){
152
152
  switch(this.degradeList[i]){
153
153
  case "html5":
154
- if(SC.browser.safari){
154
+ // TODO: this doesn't seem like the best way to determine what tags to use!
155
+ if(SC.browser.name === SC.BROWSER.safari){
155
156
  context.push('<video src="'+this.get('value')+'"');
156
157
  if(this.poster){
157
158
  context.push(' poster="'+this.poster+'"');
@@ -165,14 +166,15 @@ SC.VideoView = SC.View.extend(
165
166
  }
166
167
  break;
167
168
  case "quicktime":
168
- if(SC.browser.msie){
169
+ // TODO: this doesn't seem like the best way to determine what tags to use!
170
+ if(SC.browser.name === SC.BROWSER.ie){
169
171
  context.push('<object id="qt_event_source" '+
170
- 'classid="clsid:CB927D12-4FF7-4a9e-A169-56E4B8A75598" '+
172
+ 'classid="clsid:CB927D12-4FF7-4a9e-A169-56E4B8A75598" '+
171
173
  'codebase="http://www.apple.com/qtactivex/qtplugin.cab#version=7,2,1,0"> '+
172
174
  '</object> ');
173
175
  }
174
176
  context.push('<object width="100%" height="100%"');
175
- if(SC.browser.msie){
177
+ if(SC.browser.name === SC.BROWSER.ie){
176
178
  context.push('style="position: absolute; top:0px; left:0px; behavior:url(#qt_event_source);"');
177
179
  }
178
180
  context.push('classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" '+
@@ -253,27 +255,27 @@ SC.VideoView = SC.View.extend(
253
255
  }
254
256
  }
255
257
  },
256
-
258
+
257
259
  valueObserver:function(){
258
- this.set('currentTime', 0);
259
- this.set('duration', 0);
260
- this.set('volume', 0);
261
- this.set('paused', YES);
262
- this.set('loaded', NO);
263
- this.set('ended', NO);
264
- this.set('canPlay', NO);
265
- this.set('loadedTimeRanges', []);
260
+ this.set('currentTime', 0);
261
+ this.set('duration', 0);
262
+ this.set('volume', 0);
263
+ this.set('paused', YES);
264
+ this.set('loaded', NO);
265
+ this.set('ended', NO);
266
+ this.set('canPlay', NO);
267
+ this.set('loadedTimeRanges', []);
266
268
  this.replaceLayer();
267
269
  }.observes('value'),
268
270
 
269
271
 
270
- /**
271
- This function is called everytime the frame changes. This is done to get
272
+ /**
273
+ This function is called everytime the frame changes. This is done to get
272
274
  the right video dimensions for HTML5 video tag.
273
-
275
+
274
276
  @returns {void}
275
277
  */
276
- frameDidChange: function() {
278
+ frameDidChange: function() {
277
279
  if(this.loaded==="html5"){
278
280
  var fr= this.get('frame'),
279
281
  elem = this.$('video');
@@ -281,10 +283,10 @@ SC.VideoView = SC.View.extend(
281
283
  elem.attr('height', fr.height);
282
284
  }
283
285
  }.observes('frame'),
284
-
285
- /**
286
+
287
+ /**
286
288
  In didCreateLayer we add DOM events for video tag or quicktime.
287
-
289
+
288
290
  @returns {void}
289
291
  */
290
292
  didCreateLayer :function(){
@@ -296,16 +298,16 @@ SC.VideoView = SC.View.extend(
296
298
  this.addQTDOMEvents();
297
299
  }
298
300
  },
299
-
301
+
300
302
  didAppendToDocument :function(){
301
303
  if(this.loaded==="quicktime"){
302
304
  this.addQTDOMEvents();
303
305
  }
304
306
  },
305
-
306
- /**
307
- Adds all the neccesary video DOM elements.
308
-
307
+
308
+ /**
309
+ Adds all the necessary video DOM elements.
310
+
309
311
  @returns {void}
310
312
  */
311
313
  addVideoDOMEvents: function() {
@@ -327,31 +329,31 @@ SC.VideoView = SC.View.extend(
327
329
  this.updateVideoElementLoadedTimeRanges(videoElem);
328
330
  view.set('volume', videoElem.volume);
329
331
  SC.RunLoop.end();
330
- });
332
+ });
331
333
  SC.Event.add(videoElem, 'play', this, function () {
332
334
  SC.RunLoop.begin();
333
335
  view.set('paused', NO);
334
336
  SC.RunLoop.end();
335
- });
337
+ });
336
338
  SC.Event.add(videoElem, 'pause', this, function () {
337
339
  SC.RunLoop.begin();
338
340
  view.set('paused', YES);
339
341
  SC.RunLoop.end();
340
- });
342
+ });
341
343
  SC.Event.add(videoElem, 'loadedmetadata', this, function () {
342
344
  SC.RunLoop.begin();
343
345
  view.set('videoWidth', videoElem.videoWidth);
344
346
  view.set('videoHeight', videoElem.videoHeight);
345
347
  SC.RunLoop.end();
346
- });
347
-
348
+ });
349
+
348
350
  SC.Event.add(videoElem, 'canplay', this, function () {
349
351
  SC.RunLoop.begin();
350
352
  this.updateVideoElementLoadedTimeRanges(videoElem);
351
353
  view.set('canPlay', YES);
352
354
  SC.RunLoop.end();
353
- });
354
-
355
+ });
356
+
355
357
  SC.Event.add(videoElem, 'ended', this, function () {
356
358
  SC.RunLoop.begin();
357
359
  view.set('ended', YES);
@@ -372,52 +374,52 @@ SC.VideoView = SC.View.extend(
372
374
  //console.log('progress '+ev.loaded+","+ev.total );
373
375
  SC.RunLoop.end();
374
376
  });
375
-
377
+
376
378
  // SC.Event.add(videoElem, 'suspend', this, function () {
377
379
  // SC.RunLoop.begin();
378
380
  // console.log('suspend');
379
381
  // SC.RunLoop.end();
380
- // });
382
+ // });
381
383
  // SC.Event.add(videoElem, 'load', this, function () {
382
384
  // SC.RunLoop.begin();
383
385
  // console.log('load');
384
386
  // SC.RunLoop.end();
385
- // });
387
+ // });
386
388
  // SC.Event.add(videoElem, 'abort', this, function () {
387
389
  // SC.RunLoop.begin();
388
390
  // console.log('abort');
389
391
  // SC.RunLoop.end();
390
- // });
392
+ // });
391
393
  // SC.Event.add(videoElem, 'error', this, function () {
392
394
  // SC.RunLoop.begin();
393
395
  // console.log('error');
394
396
  // SC.RunLoop.end();
395
- // });
397
+ // });
396
398
  // SC.Event.add(videoElem, 'loadend', this, function () {
397
399
  // SC.RunLoop.begin();
398
400
  // console.log('loadend');
399
401
  // SC.RunLoop.end();
400
- // });
402
+ // });
401
403
  // SC.Event.add(videoElem, 'emptied', this, function () {
402
404
  // SC.RunLoop.begin();
403
405
  // console.log('emptied');
404
406
  // SC.RunLoop.end();
405
- // });
407
+ // });
406
408
  // SC.Event.add(videoElem, 'stalled', this, function () {
407
409
  // SC.RunLoop.begin();
408
410
  // console.log('stalled');
409
411
  // SC.RunLoop.end();
410
- // });
412
+ // });
411
413
  // SC.Event.add(videoElem, 'loadeddata', this, function () {
412
414
  // SC.RunLoop.begin();
413
415
  // console.log('loadeddata');
414
416
  // SC.RunLoop.end();
415
- // });
417
+ // });
416
418
  // SC.Event.add(videoElem, 'waiting', this, function () {
417
419
  // SC.RunLoop.begin();
418
420
  // console.log('waiting');
419
421
  // SC.RunLoop.end();
420
- // });
422
+ // });
421
423
  // SC.Event.add(videoElem, 'playing', this, function () {
422
424
  // SC.RunLoop.begin();
423
425
  // console.log('playing');
@@ -427,12 +429,12 @@ SC.VideoView = SC.View.extend(
427
429
  // SC.RunLoop.begin();
428
430
  // console.log('canplaythrough');
429
431
  // SC.RunLoop.end();
430
- // });
432
+ // });
431
433
  // SC.Event.add(videoElem, 'seeking', this, function () {
432
434
  // SC.RunLoop.begin();
433
435
  // console.log('seeking');
434
436
  // SC.RunLoop.end();
435
- // });
437
+ // });
436
438
  // SC.Event.add(videoElem, 'seeked', this, function () {
437
439
  // SC.RunLoop.begin();
438
440
  // console.log('seeked');
@@ -442,15 +444,15 @@ SC.VideoView = SC.View.extend(
442
444
  // SC.RunLoop.begin();
443
445
  // console.log('ratechange');
444
446
  // SC.RunLoop.end();
445
- // });
447
+ // });
446
448
  // SC.Event.add(videoElem, 'volumechange', this, function () {
447
449
  // SC.RunLoop.begin();
448
450
  // console.log('volumechange');
449
451
  // SC.RunLoop.end();
450
452
  // });
451
-
453
+
452
454
  },
453
-
455
+
454
456
  updateVideoElementLoadedTimeRanges: function(videoElem) {
455
457
  if(!videoElem) videoElem = this.$('video')[0];
456
458
  if(!this.loadedTimeRanges) this.loadedTimeRanges=[];
@@ -458,13 +460,13 @@ SC.VideoView = SC.View.extend(
458
460
  for (var j=0, jLen = videoElem.buffered.length; j<jLen; j++){
459
461
  this.loadedTimeRanges.push(videoElem.buffered.start(j));
460
462
  this.loadedTimeRanges.push(videoElem.buffered.end(j));
461
- }
463
+ }
462
464
  //console.log('handled loadedTimeRanges='+this.loadedTimeRanges.toString());
463
465
  this.notifyPropertyChange('loadedTimeRanges');
464
466
  },
465
-
466
- /**
467
- Adds all the neccesary quicktime DOM elements.
467
+
468
+ /**
469
+ Adds all the necessary quicktime DOM elements.
468
470
 
469
471
  @returns {void}
470
472
  */
@@ -484,7 +486,7 @@ SC.VideoView = SC.View.extend(
484
486
  this._setDurationFromQTVideoObject();
485
487
  this.set('volume', vid.GetVolume()/256);
486
488
  this._setDimensionsFromQTVideoObject();
487
-
489
+
488
490
  SC.Event.add(videoElem, 'qt_durationchange', this, function () {
489
491
  SC.RunLoop.begin();
490
492
  this._setDurationFromQTVideoObject();
@@ -511,7 +513,7 @@ SC.VideoView = SC.View.extend(
511
513
  view.set('canPlay', YES);
512
514
  SC.RunLoop.end();
513
515
  });
514
-
516
+
515
517
  SC.Event.add(videoElem, 'qt_ended', this, function () {
516
518
  view.set('ended', YES);
517
519
  });
@@ -563,7 +565,7 @@ SC.VideoView = SC.View.extend(
563
565
  // SC.RunLoop.end();
564
566
  // });
565
567
  },
566
-
568
+
567
569
  updateQTVideoObjectLoadedTimeRanges: function(vid) {
568
570
  vid = vid || this._getVideoObject();
569
571
  if(!this.loadedTimeRanges) this.loadedTimeRanges=[];
@@ -572,13 +574,13 @@ SC.VideoView = SC.View.extend(
572
574
  this.loadedTimeRanges.push(vid.GetMaxTimeLoaded()/vid.GetTimeScale());
573
575
  this.notifyPropertyChange('loadedTimeRanges');
574
576
  },
575
-
577
+
576
578
  _setDurationFromQTVideoObject: function(vid) {
577
579
  if(!vid) vid = this._getVideoObject();
578
580
  try{ this.set('duration', vid.GetDuration()/vid.GetTimeScale()); }
579
581
  catch(e) { this.invokeLater('_setDurationFromQTVideoObject',100); }
580
582
  },
581
-
583
+
582
584
  _setDimensionsFromQTVideoObject: function(vid) {
583
585
  if(!vid) vid = this._getVideoObject();
584
586
  try{
@@ -587,10 +589,10 @@ SC.VideoView = SC.View.extend(
587
589
  this.set('videoHeight', dimensions[3]);
588
590
  } catch(e) { this.invokeLater('_setDimensionsFromQTVideoObject',100); }
589
591
  },
590
-
591
- /**
592
+
593
+ /**
592
594
  For Quicktime we need to simulated the timer as there is no data,
593
- coming back from the plugin that reports back the currentTime of the
595
+ coming back from the plugin that reports back the currentTime of the
594
596
  video.
595
597
 
596
598
  @returns {void}
@@ -601,11 +603,11 @@ SC.VideoView = SC.View.extend(
601
603
  this.invokeLater(this._qtTimer, 1000);
602
604
  }
603
605
  }.observes('paused'),
604
-
605
- /**
606
- Called when currentTime changes. Notifies the differnt technologies
606
+
607
+ /**
608
+ Called when currentTime changes. Notifies the different technologies
607
609
  then new currentTime.
608
-
610
+
609
611
  @returns {void}
610
612
  */
611
613
  seek:function(){
@@ -620,11 +622,11 @@ SC.VideoView = SC.View.extend(
620
622
  if(this.get('paused')) vid.setTime(this.get('currentTime'));
621
623
  }
622
624
  }.observes('currentTime'),
623
-
624
- /**
625
+
626
+ /**
625
627
  Should be called once the progress view is clicked to stop the event and
626
628
  later start seeking.
627
-
629
+
628
630
  @returns {void}
629
631
  */
630
632
  startSeek: function(){
@@ -634,11 +636,11 @@ SC.VideoView = SC.View.extend(
634
636
  this._wasPlaying = true;
635
637
  }
636
638
  },
637
-
638
- /**
639
+
640
+ /**
639
641
  Should be called once the progress view gets a mouseUp. It will get the
640
642
  player to continue playing if it was playing before starting the seek.
641
-
643
+
642
644
  @returns {void}
643
645
  */
644
646
  endSeek: function(){
@@ -648,11 +650,11 @@ SC.VideoView = SC.View.extend(
648
650
  this._wasPlaying = false;
649
651
  }
650
652
  },
651
-
652
-
653
- /**
653
+
654
+
655
+ /**
654
656
  Set the volume of the video.
655
-
657
+
656
658
  @returns {void}
657
659
  */
658
660
  setVolume:function(){
@@ -661,8 +663,8 @@ SC.VideoView = SC.View.extend(
661
663
  if(this.loaded==="quicktime") vid.SetVolume(this.get('volume')*256);
662
664
  if(this.loaded==="flash") vid.setVolume(this.get('volume'));
663
665
  }.observes('volume'),
664
-
665
- /**
666
+
667
+ /**
666
668
  Calls the right play method depending on the technology.
667
669
  @returns {void}
668
670
  */
@@ -677,8 +679,8 @@ SC.VideoView = SC.View.extend(
677
679
  SC.Logger.warn('The video cannot play!!!! It might still be loading the plugging');
678
680
  }
679
681
  },
680
-
681
- /**
682
+
683
+ /**
682
684
  Calls the right stop method depending on the technology.
683
685
  @returns {void}
684
686
  */
@@ -689,8 +691,8 @@ SC.VideoView = SC.View.extend(
689
691
  if(this.loaded==="flash") vid.pauseVideo();
690
692
  this.set('paused', YES);
691
693
  },
692
-
693
- /**
694
+
695
+ /**
694
696
  Plays or stops the video.
695
697
  @returns {void}
696
698
  */
@@ -699,21 +701,21 @@ SC.VideoView = SC.View.extend(
699
701
  this.play();
700
702
  }else{
701
703
  this.stop();
702
- }
704
+ }
703
705
  },
704
-
705
- /**
706
+
707
+ /**
706
708
  Goes into fullscreen mode if available
707
709
  @returns {void}
708
- */
710
+ */
709
711
  fullScreen: function(){
710
712
  var vid=this._getVideoObject();
711
713
  if(this.loaded==="html5") this.$('video')[0].webkitEnterFullScreen();
712
714
  if(this.loaded==="flash") vid.fullScreen();
713
- return;
715
+ return;
714
716
  },
715
-
716
- /**
717
+
718
+ /**
717
719
  Enables captions if available
718
720
  @returns {void}
719
721
  */
@@ -728,16 +730,16 @@ SC.VideoView = SC.View.extend(
728
730
  }else{
729
731
  this.SetTrackEnabled(this._closedCaptionTrackIndex,false);
730
732
  this.set('captionsEnabled', NO);
731
- }
733
+ }
732
734
  }catch(a){}
733
735
  }
734
736
  return;
735
737
  },
736
-
738
+
737
739
  /*private*/
738
-
739
-
740
- /**
740
+
741
+
742
+ /**
741
743
  Gets the right video object depending on the browser.
742
744
  @returns {void}
743
745
  */
@@ -746,14 +748,14 @@ SC.VideoView = SC.View.extend(
746
748
  if(this.loaded==="quicktime") return document['qt_'+SC.guidFor(this)];
747
749
  if(this.loaded==="flash") {
748
750
  var movieName='flash_'+SC.guidFor(this);
749
- if (window.document[movieName])
751
+ if (window.document[movieName])
750
752
  {
751
753
  return window.document[movieName];
752
754
  }
753
755
  if (navigator.appName.indexOf("Microsoft Internet")==-1)
754
756
  {
755
757
  if (document.embeds && document.embeds[movieName]) {
756
- return document.embeds[movieName];
758
+ return document.embeds[movieName];
757
759
  }
758
760
  }
759
761
  else
@@ -762,15 +764,15 @@ SC.VideoView = SC.View.extend(
762
764
  }
763
765
  }
764
766
  },
765
-
767
+
766
768
  _addZeros:function(value){
767
769
  if(value.toString().length<2) return "0"+value;
768
770
  return value;
769
771
  }
770
-
772
+
771
773
  });
772
774
 
773
- /**
775
+ /**
774
776
  Hash to store references to the different flash videos.
775
777
  */
776
778
  SC.VideoView.flashViews={};
@@ -806,19 +808,19 @@ SC.VideoView.logFlash = function(message) {
806
808
 
807
809
  SC.VideoPlayerView = SC.View.extend({
808
810
  classNames: 'sc-video-player-view',
809
-
811
+
810
812
  childViews: ['videoView', 'regular'],
811
-
813
+
812
814
  value: null,
813
-
815
+
814
816
  degradeList: null,
815
-
817
+
816
818
  videoView:SC.VideoView.design({
817
819
  layout: { top: 0, bottom:20, right:0, left:0},
818
820
  degradeListBinding: '*parentView.degradeList',
819
821
  valueBinding: '*parentView.value'
820
822
  }),
821
-
823
+
822
824
  regular: SC.MediaControlsView.design({
823
825
  layout: { bottom:0, left: 0, right: 0, height: 20 },
824
826
  targetBinding: '*parentView.videoView'