sproutcore 1.8.2.1 → 1.9.0
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION.yml +2 -2
- data/lib/buildtasks/helpers/file_rule_list.rb +3 -3
- data/lib/frameworks/sproutcore/Buildfile +1 -1
- data/lib/frameworks/sproutcore/CHANGELOG.md +235 -16
- data/lib/frameworks/sproutcore/apps/media_examples/Buildfile +13 -0
- data/lib/frameworks/sproutcore/apps/media_examples/core.js +35 -0
- data/lib/frameworks/sproutcore/apps/media_examples/resources/loading.rhtml +3 -0
- data/lib/frameworks/sproutcore/apps/media_examples/resources/main_page.js +53 -0
- data/lib/frameworks/sproutcore/apps/media_examples/views/audio_view.js +100 -0
- data/lib/frameworks/sproutcore/apps/media_examples/views/camera_view.js +39 -0
- data/lib/frameworks/sproutcore/apps/media_examples/views/capabilities_view.js +116 -0
- data/lib/frameworks/sproutcore/apps/media_examples/views/microphone_view.js +40 -0
- data/lib/frameworks/sproutcore/apps/media_examples/views/video_view.js +107 -0
- data/lib/frameworks/sproutcore/apps/showcase/Buildfile +11 -0
- data/lib/frameworks/sproutcore/apps/showcase/README +15 -0
- data/lib/frameworks/sproutcore/apps/showcase/controllers/source_controller.js +15 -0
- data/lib/frameworks/sproutcore/apps/showcase/controllers/source_tree_controller.js +212 -0
- data/lib/frameworks/sproutcore/apps/showcase/core.js +170 -0
- data/lib/frameworks/sproutcore/apps/showcase/main.js +27 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/_theme.css +18 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/api.css +80 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/favicon.ico +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/alarm-clock.png +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/balloon-facebook.png +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/balloon-twitter.png +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/balloon.png +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/bullet.png +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/calendar-insert.png +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/cross.png +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/example-box-bg.png +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/fruit-grape.png +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/fruit-lime.png +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/fruit-orange.png +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/fruit.png +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/glow.png +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/green-dot.png +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/grey-dot.png +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/logo.png +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/pixels.png +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/red-dot.png +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/sproutcore-logo.png +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/sproutcore-startup-landscape.jpg +0 -0
- data/lib/frameworks/sproutcore/apps/{test_controls → showcase}/resources/loading.rhtml +1 -1
- data/lib/frameworks/sproutcore/apps/showcase/resources/main_page.js +61 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/stylesheet.css +365 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/views_page.js +64 -0
- data/lib/frameworks/sproutcore/apps/showcase/system/views_item_content.js +59 -0
- data/lib/frameworks/sproutcore/apps/showcase/theme.js +27 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/button_views.js +55 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/checkbox_views.js +34 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/container_views.js +29 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/date_field_views.js +30 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/disclosure_views.js +22 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/grid_views.js +28 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/image_button_views.js +22 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/image_views.js +51 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/label_views.js +53 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/list_views.js +31 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/popup_button_views.js +24 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/progress_views.js +26 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/radio_views.js +30 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/scroll_views.js +40 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/segmented_views.js +90 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/select_views.js +64 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/slider_views.js +46 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/source_list_views.js +23 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/split_views.js +22 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/stacked_views.js +23 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/static_content_views.js +23 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/tab_views.js +51 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/text_field_views.js +52 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/toolbar_views.js +23 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/views_item_view.js +91 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/views_list_view.js +67 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/web_views.js +32 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/well_views.js +29 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/workspace_views.js +23 -0
- data/lib/frameworks/sproutcore/apps/tests/english.lproj/strings.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/ajax/system/request.js +91 -51
- data/lib/frameworks/sproutcore/frameworks/ajax/system/response.js +93 -27
- data/lib/frameworks/sproutcore/frameworks/ajax/tests/system/request.js +196 -15
- data/lib/frameworks/sproutcore/frameworks/bootstrap/system/browser.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/array.js +26 -10
- data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/object.js +90 -92
- data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/object.js +69 -39
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/selection_support.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/color.js +769 -0
- data/lib/frameworks/sproutcore/frameworks/{desktop → core_foundation}/system/key_bindings.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/render_context.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/req_anim_frame.js +31 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/sparse_array.js +7 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/utils.js +8 -6
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/array_case.js +49 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/selection_support.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/ext/object_test.js +106 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/color.js +448 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/escape_html.js +8 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/timer/invokeLater.js +24 -24
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/utils/offset.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/animation.js +90 -30
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/class_name_bindings_test.js +14 -6
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/touch.js +113 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view.js +64 -8
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/animation.js +20 -4
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout_style.js +58 -38
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/touch.js +32 -39
- data/lib/frameworks/sproutcore/frameworks/core_tools/models/target.js +20 -15
- data/lib/frameworks/sproutcore/frameworks/datastore/models/child_attribute.js +19 -15
- data/lib/frameworks/sproutcore/frameworks/datastore/models/child_record.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/models/children_attribute.js +16 -16
- data/lib/frameworks/sproutcore/frameworks/datastore/models/many_attribute.js +32 -32
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record.js +53 -38
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +9 -8
- data/lib/frameworks/sproutcore/frameworks/datastore/models/single_attribute.js +26 -26
- data/lib/frameworks/sproutcore/frameworks/datastore/system/child_array.js +1 -3
- data/lib/frameworks/sproutcore/frameworks/datastore/system/query.js +4 -3
- data/lib/frameworks/sproutcore/frameworks/datastore/system/record_array.js +0 -4
- data/lib/frameworks/sproutcore/frameworks/datastore/system/store.js +96 -8
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/datetime_recordattribute.js +22 -4
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/data_store.js +24 -24
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record.js +376 -37
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array.js +51 -53
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array_complex.js +108 -66
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_complex.js +33 -35
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/single_attribute.js +6 -4
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/compare.js +33 -3
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/createRecord.js +181 -15
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/system/datetime.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/border.js +3 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_fast_path.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/menu.js +153 -6
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/modal.js +39 -18
- data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drop_target.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js +6 -7
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/progress.js +139 -50
- data/lib/frameworks/sproutcore/frameworks/{foundation → desktop}/resources/button_view.css +3 -3
- data/lib/frameworks/sproutcore/frameworks/{foundation → desktop}/resources/checkbox_view.css +4 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/disclosure.css +2 -2
- data/lib/frameworks/sproutcore/frameworks/{foundation → desktop}/resources/radio_view.css +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/segmented.css +23 -17
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/web.css +5 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/integration/dialog.js +4 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/mixins/border.js +3 -12
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/mixins/collection_fast_path.js +58 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/methods.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/ui.js +79 -12
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/mouse.js +13 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/date_field/ui.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/grid/drag_and_drop.js +147 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/grid/methods.js +123 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/drag_and_drop.js +150 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list_item.js +58 -44
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/progress/methods.js +9 -80
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/progress/ui.js +54 -130
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/observers.js +78 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/ui.js +64 -9
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select/methods.js +11 -11
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select/ui.js +28 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/slider/methods.js +74 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/slider/ui.js +141 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/collection.js +4 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/grid.js +69 -36
- data/lib/frameworks/sproutcore/frameworks/desktop/views/list.js +27 -11
- data/lib/frameworks/sproutcore/frameworks/desktop/views/list_item.js +41 -25
- data/lib/frameworks/sproutcore/frameworks/desktop/views/progress.js +51 -89
- data/lib/frameworks/sproutcore/frameworks/desktop/views/segmented.js +59 -34
- data/lib/frameworks/sproutcore/frameworks/desktop/views/select.js +59 -49
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/scroll.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/controllers/tree.js +4 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/label.js +14 -14
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/label.css +8 -8
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/text_field.css +13 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/system/user_defaults.js +4 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/colors.js +21 -22
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/controllers/tree/selection_support.js +26 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_text_field/beginEditing.js +4 -5
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/image_queue.js +68 -44
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/user_defaults.js +10 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/container/methods.js +0 -10
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/container/ui.js +24 -59
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/label/ui.js +47 -34
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/methods.js +96 -12
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/ui.js +38 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/views/text_field.js +38 -50
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffer.js +6 -2
- data/lib/frameworks/sproutcore/frameworks/media/media_capabilities.js +211 -0
- data/lib/frameworks/sproutcore/frameworks/media/render_delegates/media_slider.js +77 -0
- data/lib/frameworks/sproutcore/frameworks/media/resources/playeras3.fla +0 -0
- data/lib/frameworks/sproutcore/frameworks/media/resources/video.css +129 -115
- data/lib/frameworks/sproutcore/frameworks/media/resources/videoCanvas.swf +0 -0
- data/lib/frameworks/sproutcore/frameworks/media/tests/media_capabilities.js +194 -0
- data/lib/frameworks/sproutcore/frameworks/media/views/audio.js +56 -173
- data/lib/frameworks/sproutcore/frameworks/media/views/controls.js +15 -18
- data/lib/frameworks/sproutcore/frameworks/media/views/media_slider.js +63 -219
- data/lib/frameworks/sproutcore/frameworks/media/views/mini_controls.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/media/views/simple_controls.js +4 -8
- data/lib/frameworks/sproutcore/frameworks/media/views/video.js +51 -160
- data/lib/frameworks/sproutcore/frameworks/routing/system/routes.js +138 -102
- data/lib/frameworks/sproutcore/frameworks/routing/tests/system/routes.js +8 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/core.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/ext/array.js +8 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/enumerable.js +32 -12
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +28 -24
- data/lib/frameworks/sproutcore/frameworks/runtime/system/binding.js +0 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/system/object.js +111 -12
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/compare.js +9 -7
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/array.js +8 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/enumerable/enumerable.js +160 -115
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/object/enhance.js +64 -19
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/object/mixin.js +83 -0
- data/lib/frameworks/sproutcore/frameworks/template_view/ext/handlebars/bind.js +3 -0
- data/lib/frameworks/sproutcore/frameworks/template_view/tests/views/template/collection.js +13 -0
- data/lib/frameworks/sproutcore/frameworks/template_view/tests/views/template/handlebars.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/template_view/views/template_collection.js +5 -5
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/18px/button.css +5 -1
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/button.css +13 -12
- data/lib/frameworks/sproutcore/themes/ace/resources/collection/normal/list.css +9 -2
- data/lib/frameworks/sproutcore/themes/ace/resources/progress/ace/progress.css +105 -5
- data/lib/frameworks/sproutcore/themes/ace/resources/progress/ace/progress_view_indeterminate_content.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/18px/segmented.css +19 -15
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented.css +93 -21
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented_vertical_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented_vertical_normal.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented_vertical_selected.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented_vertical_selected_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented.css +91 -15
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented_vertical_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented_vertical_normal.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented_vertical_selected.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented_vertical_selected_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/44px/segmented.css +21 -17
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/segmented.css +26 -25
- data/lib/frameworks/sproutcore/themes/legacy_theme/english.lproj/menu_item_view.css +2 -4
- data/lib/sproutcore/helpers/minifier.rb +5 -5
- data/lib/sproutcore/tools/build.rb +1 -1
- data/sproutcore.gemspec +6 -1
- data/vendor/chance/lib/chance/instance/slicing.rb +2 -2
- metadata +143 -60
- data/lib/frameworks/sproutcore/apps/test_controls/Buildfile +0 -0
- data/lib/frameworks/sproutcore/apps/test_controls/controllers/alert.js +0 -39
- data/lib/frameworks/sproutcore/apps/test_controls/controllers/buttons.js +0 -21
- data/lib/frameworks/sproutcore/apps/test_controls/controllers/categories.js +0 -125
- data/lib/frameworks/sproutcore/apps/test_controls/controllers/category.js +0 -36
- data/lib/frameworks/sproutcore/apps/test_controls/controllers/select.js +0 -12
- data/lib/frameworks/sproutcore/apps/test_controls/controllers/split.js +0 -74
- data/lib/frameworks/sproutcore/apps/test_controls/core.js +0 -29
- data/lib/frameworks/sproutcore/apps/test_controls/main.js +0 -14
- data/lib/frameworks/sproutcore/apps/test_controls/resources/buttons_page.js +0 -158
- data/lib/frameworks/sproutcore/apps/test_controls/resources/checkboxes_page.js +0 -53
- data/lib/frameworks/sproutcore/apps/test_controls/resources/flow_layout_page.js +0 -85
- data/lib/frameworks/sproutcore/apps/test_controls/resources/list_page.js +0 -40
- data/lib/frameworks/sproutcore/apps/test_controls/resources/main_page.css +0 -60
- data/lib/frameworks/sproutcore/apps/test_controls/resources/main_page.js +0 -151
- data/lib/frameworks/sproutcore/apps/test_controls/resources/panels_page.js +0 -62
- data/lib/frameworks/sproutcore/apps/test_controls/resources/progress_page.js +0 -33
- data/lib/frameworks/sproutcore/apps/test_controls/resources/radio_page.js +0 -55
- data/lib/frameworks/sproutcore/apps/test_controls/resources/scroll_page.js +0 -77
- data/lib/frameworks/sproutcore/apps/test_controls/resources/segmented_page.js +0 -99
- data/lib/frameworks/sproutcore/apps/test_controls/resources/select_page.js +0 -75
- data/lib/frameworks/sproutcore/apps/test_controls/resources/sliders_page.js +0 -54
- data/lib/frameworks/sproutcore/apps/test_controls/resources/split_page.js +0 -141
- data/lib/frameworks/sproutcore/apps/test_controls/resources/strings.js +0 -50
- data/lib/frameworks/sproutcore/apps/test_controls/resources/tab_page.js +0 -53
- data/lib/frameworks/sproutcore/apps/test_controls/resources/text_field_page.js +0 -65
- data/lib/frameworks/sproutcore/apps/test_controls/theme.js +0 -34
- data/lib/frameworks/sproutcore/apps/tests/tests/controllers/detail.js +0 -15
- data/lib/frameworks/sproutcore/apps/tests/tests/controllers/source.js +0 -15
- data/lib/frameworks/sproutcore/apps/tests/tests/controllers/target.js +0 -15
- data/lib/frameworks/sproutcore/apps/tests/tests/controllers/targets.js +0 -15
- data/lib/frameworks/sproutcore/apps/tests/tests/controllers/tests.js +0 -15
- data/lib/frameworks/sproutcore/apps/tests/tests/models/target.js +0 -15
- data/lib/frameworks/sproutcore/apps/tests/tests/models/test.js +0 -15
- data/lib/frameworks/sproutcore/apps/tests/tests/views/offset_checkbox.js +0 -15
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/console.js +0 -21
@@ -0,0 +1,39 @@
|
|
1
|
+
// ==========================================================================
|
2
|
+
// Project: Media Examples - A Media Playback sandbox.
|
3
|
+
// Copyright: ©2012 Michael Krotscheck and contributors.
|
4
|
+
// License: Licensed under MIT license (see license.js)
|
5
|
+
// ==========================================================================
|
6
|
+
/*globals MediaExamples */
|
7
|
+
|
8
|
+
/**
|
9
|
+
* @class
|
10
|
+
*
|
11
|
+
* (Document Your View Here)
|
12
|
+
*
|
13
|
+
* @extends SC.View
|
14
|
+
*/
|
15
|
+
MediaExamples.CameraView = SC.View.extend(
|
16
|
+
/** @scope MediaExamples.CameraView.prototype */
|
17
|
+
{
|
18
|
+
childViews: ['infoBox', 'labelView'],
|
19
|
+
|
20
|
+
infoBox: MediaExamples.CapabilitiesView.extend({
|
21
|
+
layout: {
|
22
|
+
right: 10,
|
23
|
+
top: 10,
|
24
|
+
height: 200,
|
25
|
+
width: 150
|
26
|
+
}
|
27
|
+
}),
|
28
|
+
|
29
|
+
labelView: SC.LabelView.extend({
|
30
|
+
tagName: "h1",
|
31
|
+
layout: {
|
32
|
+
top: 10,
|
33
|
+
left: 10,
|
34
|
+
bottom: 10,
|
35
|
+
right: 170
|
36
|
+
},
|
37
|
+
value: "This feature is not yet supported"
|
38
|
+
})
|
39
|
+
});
|
@@ -0,0 +1,116 @@
|
|
1
|
+
// ==========================================================================
|
2
|
+
// Project: Media Examples - A Media Playback sandbox.
|
3
|
+
// Copyright: ©2012 Michael Krotscheck and contributors.
|
4
|
+
// License: Licensed under MIT license (see license.js)
|
5
|
+
// ==========================================================================
|
6
|
+
/*globals MediaExamples */
|
7
|
+
|
8
|
+
/**
|
9
|
+
* @class
|
10
|
+
*
|
11
|
+
* (Document Your View Here)
|
12
|
+
*
|
13
|
+
* @extends SC.View
|
14
|
+
*/
|
15
|
+
MediaExamples.CapabilitiesView = SC.View.extend(SC.FlowedLayout,
|
16
|
+
/** @scope MediaExamples.CapabilitiesView.prototype */
|
17
|
+
{
|
18
|
+
layoutDirection: SC.LAYOUT_VERTICAL,
|
19
|
+
|
20
|
+
childViews: ['hasAudioPlayback', 'hasVideoPlayback', 'hasMicrophone', 'hasVideoCamera', 'isHTML5AudioSupported', 'isHTML5VideoSupported',
|
21
|
+
'isHTML5StreamApiSupported', 'isQuicktimeSupported', 'isFlashSupported', 'isOggSupported', 'isWebMSupported', 'isFLVSupported',
|
22
|
+
'isMP4Supported'],
|
23
|
+
|
24
|
+
fillWidth: YES,
|
25
|
+
|
26
|
+
hasAudioPlayback: SC.LabelView.extend({
|
27
|
+
layout: {
|
28
|
+
height: 22
|
29
|
+
},
|
30
|
+
value: "Audio Playback: " + SC.mediaCapabilities.get("hasAudioPlayback")
|
31
|
+
}),
|
32
|
+
|
33
|
+
hasVideoPlayback: SC.LabelView.extend({
|
34
|
+
layout: {
|
35
|
+
height: 22
|
36
|
+
},
|
37
|
+
value: "Video Playback: " + SC.mediaCapabilities.get("hasAudioPlayback")
|
38
|
+
}),
|
39
|
+
|
40
|
+
hasMicrophone: SC.LabelView.extend({
|
41
|
+
layout: {
|
42
|
+
height: 22
|
43
|
+
},
|
44
|
+
value: "Microphone: " + SC.mediaCapabilities.get("hasMicrophone")
|
45
|
+
}),
|
46
|
+
|
47
|
+
hasVideoCamera: SC.LabelView.extend({
|
48
|
+
layout: {
|
49
|
+
height: 22
|
50
|
+
},
|
51
|
+
value: "Video Camera: " + SC.mediaCapabilities.get("hasVideoCamera")
|
52
|
+
}),
|
53
|
+
|
54
|
+
isHTML5AudioSupported: SC.LabelView.extend({
|
55
|
+
layout: {
|
56
|
+
height: 22
|
57
|
+
},
|
58
|
+
value: "HTML5 Audio: " + SC.mediaCapabilities.get("isHTML5AudioSupported")
|
59
|
+
}),
|
60
|
+
|
61
|
+
isHTML5VideoSupported: SC.LabelView.extend({
|
62
|
+
layout: {
|
63
|
+
height: 22
|
64
|
+
},
|
65
|
+
value: "HTML5 Video: " + SC.mediaCapabilities.get("isHTML5VideoSupported")
|
66
|
+
}),
|
67
|
+
|
68
|
+
isHTML5StreamApiSupported: SC.LabelView.extend({
|
69
|
+
layout: {
|
70
|
+
height: 22
|
71
|
+
},
|
72
|
+
value: "Stream API: " + SC.mediaCapabilities.get("isHTML5StreamApiSupported")
|
73
|
+
}),
|
74
|
+
|
75
|
+
isQuicktimeSupported: SC.LabelView.extend({
|
76
|
+
layout: {
|
77
|
+
height: 22
|
78
|
+
},
|
79
|
+
value: "Quicktime Plugin: " + SC.mediaCapabilities.get("isQuicktimeSupported")
|
80
|
+
}),
|
81
|
+
|
82
|
+
isFlashSupported: SC.LabelView.extend({
|
83
|
+
layout: {
|
84
|
+
height: 22
|
85
|
+
},
|
86
|
+
value: "Flash Plugin: " + SC.mediaCapabilities.get("isFlashSupported")
|
87
|
+
}),
|
88
|
+
|
89
|
+
isOggSupported: SC.LabelView.extend({
|
90
|
+
layout: {
|
91
|
+
height: 22
|
92
|
+
},
|
93
|
+
value: "OGG/Theora: " + SC.mediaCapabilities.get("isOggSupported")
|
94
|
+
}),
|
95
|
+
|
96
|
+
isWebMSupported: SC.LabelView.extend({
|
97
|
+
layout: {
|
98
|
+
height: 22
|
99
|
+
},
|
100
|
+
value: "WebM/VP8: " + SC.mediaCapabilities.get("isWebMSupported")
|
101
|
+
}),
|
102
|
+
|
103
|
+
isFLVSupported: SC.LabelView.extend({
|
104
|
+
layout: {
|
105
|
+
height: 22
|
106
|
+
},
|
107
|
+
value: "FLV Video: " + SC.mediaCapabilities.get("isFLVSupported")
|
108
|
+
}),
|
109
|
+
|
110
|
+
isMP4Supported: SC.LabelView.extend({
|
111
|
+
layout: {
|
112
|
+
height: 22
|
113
|
+
},
|
114
|
+
value: "MPEG-4/H.264: " + SC.mediaCapabilities.get("isMP4Supported")
|
115
|
+
}),
|
116
|
+
});
|
@@ -0,0 +1,40 @@
|
|
1
|
+
// ==========================================================================
|
2
|
+
// Project: Media Examples - A Media Playback sandbox.
|
3
|
+
// Copyright: ©2012 Michael Krotscheck and contributors.
|
4
|
+
// License: Licensed under MIT license (see license.js)
|
5
|
+
// ==========================================================================
|
6
|
+
/*globals MediaExamples */
|
7
|
+
|
8
|
+
/**
|
9
|
+
* @class
|
10
|
+
*
|
11
|
+
* (Document Your View Here)
|
12
|
+
*
|
13
|
+
* @extends SC.View
|
14
|
+
*/
|
15
|
+
MediaExamples.MicrophoneView = SC.View.extend(
|
16
|
+
/** @scope MediaExamples.MicrophoneView.prototype */
|
17
|
+
{
|
18
|
+
childViews: ['infoBox', 'labelView'],
|
19
|
+
|
20
|
+
infoBox: MediaExamples.CapabilitiesView.extend({
|
21
|
+
layout: {
|
22
|
+
right: 10,
|
23
|
+
top: 10,
|
24
|
+
height: 200,
|
25
|
+
width: 150
|
26
|
+
}
|
27
|
+
}),
|
28
|
+
|
29
|
+
labelView: SC.LabelView.extend({
|
30
|
+
tagName: "h1",
|
31
|
+
layout: {
|
32
|
+
top: 10,
|
33
|
+
left: 10,
|
34
|
+
bottom: 10,
|
35
|
+
right: 170
|
36
|
+
},
|
37
|
+
value: "This feature is not yet supported"
|
38
|
+
})
|
39
|
+
|
40
|
+
});
|
@@ -0,0 +1,107 @@
|
|
1
|
+
// ==========================================================================
|
2
|
+
// Project: Media Examples - A Media Playback sandbox.
|
3
|
+
// Copyright: ©2012 Michael Krotscheck and contributors.
|
4
|
+
// License: Licensed under MIT license (see license.js)
|
5
|
+
// ==========================================================================
|
6
|
+
/*globals MediaExamples */
|
7
|
+
|
8
|
+
/**
|
9
|
+
* @class
|
10
|
+
*
|
11
|
+
* (Document Your View Here)
|
12
|
+
*
|
13
|
+
* @extends SC.View
|
14
|
+
*/
|
15
|
+
MediaExamples.VideoView = SC.View.extend(
|
16
|
+
/** @scope MediaExamples.VideoView.prototype */
|
17
|
+
{
|
18
|
+
|
19
|
+
childViews: ['infoBox', 'mediaControlsContainer'],
|
20
|
+
|
21
|
+
infoBox: MediaExamples.CapabilitiesView.extend({
|
22
|
+
layout: {
|
23
|
+
right: 10,
|
24
|
+
top: 10,
|
25
|
+
height: 200,
|
26
|
+
width: 150
|
27
|
+
}
|
28
|
+
}),
|
29
|
+
|
30
|
+
mediaControlsContainer: SC.View.extend(SC.FlowedLayout, {
|
31
|
+
|
32
|
+
defaultFlowSpacing: {
|
33
|
+
bottom: 10
|
34
|
+
},
|
35
|
+
|
36
|
+
layout: {
|
37
|
+
left: 10,
|
38
|
+
top: 10,
|
39
|
+
right: 320,
|
40
|
+
bottom: 10,
|
41
|
+
},
|
42
|
+
|
43
|
+
layoutDirection: SC.LAYOUT_VERTICAL,
|
44
|
+
|
45
|
+
fillWidth: YES,
|
46
|
+
|
47
|
+
childViews: ['videoPlayer', 'mediaControlsLabel', 'mediaControls', 'miniControlsLabel', 'miniControls', 'simpleControlsLabel', 'simpleControls'],
|
48
|
+
|
49
|
+
videoPlayer: SC.VideoView.extend({
|
50
|
+
value: (function() {
|
51
|
+
if(SC.mediaCapabilities.isOggSupported) {
|
52
|
+
return 'http://clips.vorwaerts-gmbh.de/big_buck_bunny.ogv';
|
53
|
+
} else {
|
54
|
+
return 'http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4';
|
55
|
+
}
|
56
|
+
})(),
|
57
|
+
|
58
|
+
layout: {
|
59
|
+
height: 204,
|
60
|
+
width: 480
|
61
|
+
},
|
62
|
+
}),
|
63
|
+
|
64
|
+
mediaControlsLabel: SC.LabelView.extend({
|
65
|
+
value: "SC.MediaControlsView",
|
66
|
+
layout: {
|
67
|
+
height: 22
|
68
|
+
}
|
69
|
+
}),
|
70
|
+
|
71
|
+
mediaControls: SC.MediaControlsView.extend({
|
72
|
+
targetBinding: SC.Binding.oneWay('.parentView.videoPlayer'),
|
73
|
+
layout: {
|
74
|
+
height: 20,
|
75
|
+
},
|
76
|
+
}),
|
77
|
+
|
78
|
+
miniControlsLabel: SC.LabelView.extend({
|
79
|
+
value: "SC.MiniMediaControlsView",
|
80
|
+
layout: {
|
81
|
+
height: 22
|
82
|
+
}
|
83
|
+
}),
|
84
|
+
|
85
|
+
miniControls: SC.MiniMediaControlsView.extend({
|
86
|
+
targetBinding: SC.Binding.oneWay('.parentView.videoPlayer'),
|
87
|
+
layout: {
|
88
|
+
height: 20,
|
89
|
+
},
|
90
|
+
}),
|
91
|
+
|
92
|
+
simpleControlsLabel: SC.LabelView.extend({
|
93
|
+
value: "SC.SimpleMediaControlsView",
|
94
|
+
layout: {
|
95
|
+
height: 22
|
96
|
+
}
|
97
|
+
}),
|
98
|
+
|
99
|
+
simpleControls: SC.SimpleMediaControlsView.extend({
|
100
|
+
targetBinding: SC.Binding.oneWay('.parentView.videoPlayer'),
|
101
|
+
layout: {
|
102
|
+
height: 20,
|
103
|
+
},
|
104
|
+
}),
|
105
|
+
})
|
106
|
+
|
107
|
+
});
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# ==========================================================================
|
2
|
+
# Project: Showcase
|
3
|
+
# Copyright: @2012 My Company, Inc.
|
4
|
+
# ==========================================================================
|
5
|
+
|
6
|
+
# This is your Buildfile for your app, Showcase. This tells SproutCore
|
7
|
+
# how to build your app. These settings override those in your project
|
8
|
+
# Buildfile, which contains default settings for all apps in your project.
|
9
|
+
|
10
|
+
# It is better to add :required targets here than in the global Buildfile.
|
11
|
+
config :showcase, :required => :sproutcore, :favicon => 'favicon.ico'
|
@@ -0,0 +1,15 @@
|
|
1
|
+
==========================================================================
|
2
|
+
Project: SproutCoreShowcase
|
3
|
+
Copyright: @2012 My Company, Inc.
|
4
|
+
==========================================================================
|
5
|
+
|
6
|
+
To deploy:
|
7
|
+
|
8
|
+
• build the app into the working copy of the deployed page repo
|
9
|
+
$ sproutcore build --buildroot=../../path_to_sproutcore-showcase.github.com_repo_working_copy
|
10
|
+
|
11
|
+
• cd to that directory and move index.html to the top of the directory
|
12
|
+
$ cd ../../path_to_sproutcore-showcase.github.com_repo
|
13
|
+
$ mv static/showcase/en/_build_number/index.html index.html
|
14
|
+
|
15
|
+
• push to git@github.com:sproutcore-showcase/sproutcore-showcase.github.com.git
|
@@ -0,0 +1,15 @@
|
|
1
|
+
// ==========================================================================
|
2
|
+
// Project: Showcase
|
3
|
+
// Copyright: ©2012 7x7 Software, Inc.
|
4
|
+
// License: Licensed under MIT license
|
5
|
+
// ==========================================================================
|
6
|
+
/*globals Showcase */
|
7
|
+
|
8
|
+
/**
|
9
|
+
The mediating controller for the selected source object.
|
10
|
+
*/
|
11
|
+
Showcase.sourceController = SC.ObjectController.create({
|
12
|
+
|
13
|
+
contentBinding: SC.Binding.oneWay('Showcase.sourceTreeController.selection')
|
14
|
+
|
15
|
+
});
|
@@ -0,0 +1,212 @@
|
|
1
|
+
// ==========================================================================
|
2
|
+
// Project: Showcase
|
3
|
+
// Copyright: ©2012 7x7 Software, Inc.
|
4
|
+
// License: Licensed under MIT license
|
5
|
+
// ==========================================================================
|
6
|
+
/*globals Showcase */
|
7
|
+
|
8
|
+
|
9
|
+
/**
|
10
|
+
The source objects.
|
11
|
+
*/
|
12
|
+
Showcase.sources = SC.Object.create(SC.CollectionContent, SC.TreeItemContent, {
|
13
|
+
|
14
|
+
treeItemIsExpanded: true,
|
15
|
+
|
16
|
+
treeItemIsGrouped: true,
|
17
|
+
|
18
|
+
treeItemChildren: [
|
19
|
+
|
20
|
+
SC.Object.create(SC.TreeItemContent, {
|
21
|
+
treeItemIsExpanded: true,
|
22
|
+
group: true,
|
23
|
+
name: "Demos",
|
24
|
+
subpath: 'demos',
|
25
|
+
treeItemChildren: [
|
26
|
+
SC.Object.create({
|
27
|
+
appPath: 'http://demos.sproutcore.com/color_demo',
|
28
|
+
name: "Using SC.Color",
|
29
|
+
view: 'Showcase.mainPage.demoView'
|
30
|
+
})
|
31
|
+
]
|
32
|
+
}),
|
33
|
+
|
34
|
+
SC.Object.create(SC.TreeItemContent, {
|
35
|
+
treeItemIsExpanded: true,
|
36
|
+
group: true,
|
37
|
+
name: "Views & Controls",
|
38
|
+
subpath: 'ui',
|
39
|
+
treeItemChildren: [
|
40
|
+
SC.Object.create({
|
41
|
+
name: "SC.ButtonView",
|
42
|
+
view: 'Showcase.viewsPage.buttonViews'
|
43
|
+
}),
|
44
|
+
SC.Object.create({
|
45
|
+
name: "SC.CheckboxView",
|
46
|
+
view: 'Showcase.viewsPage.checkboxViews'
|
47
|
+
}),
|
48
|
+
SC.Object.create({
|
49
|
+
name: "SC.ContainerView",
|
50
|
+
view: 'Showcase.viewsPage.containerViews'
|
51
|
+
}),
|
52
|
+
SC.Object.create({
|
53
|
+
name: "SC.DateFieldView",
|
54
|
+
view: 'Showcase.viewsPage.dateFieldViews'
|
55
|
+
}),
|
56
|
+
SC.Object.create({
|
57
|
+
name: "SC.DisclosureView",
|
58
|
+
view: 'Showcase.viewsPage.disclosureViews'
|
59
|
+
}),
|
60
|
+
SC.Object.create({
|
61
|
+
name: "SC.GridView",
|
62
|
+
view: 'Showcase.viewsPage.gridViews'
|
63
|
+
}),
|
64
|
+
SC.Object.create({
|
65
|
+
name: "SC.ImageButtonView",
|
66
|
+
view: 'Showcase.viewsPage.imageButtonViews'
|
67
|
+
}),
|
68
|
+
SC.Object.create({
|
69
|
+
name: "SC.ImageView",
|
70
|
+
view: 'Showcase.viewsPage.imageViews'
|
71
|
+
}),
|
72
|
+
SC.Object.create({
|
73
|
+
name: "SC.LabelView",
|
74
|
+
view: 'Showcase.viewsPage.labelViews'
|
75
|
+
}),
|
76
|
+
SC.Object.create({
|
77
|
+
name: "SC.ListView",
|
78
|
+
view: 'Showcase.viewsPage.listViews'
|
79
|
+
}),
|
80
|
+
SC.Object.create({
|
81
|
+
name: "SC.PopUpButtonView",
|
82
|
+
view: 'Showcase.viewsPage.popupButtonViews'
|
83
|
+
}),
|
84
|
+
SC.Object.create({
|
85
|
+
name: "SC.ProgressView",
|
86
|
+
view: 'Showcase.viewsPage.progressViews'
|
87
|
+
}),
|
88
|
+
SC.Object.create({
|
89
|
+
name: "SC.RadioView",
|
90
|
+
view: 'Showcase.viewsPage.radioViews'
|
91
|
+
}),
|
92
|
+
SC.Object.create({
|
93
|
+
name: "SC.ScrollView",
|
94
|
+
view: 'Showcase.viewsPage.scrollViews'
|
95
|
+
}),
|
96
|
+
SC.Object.create({
|
97
|
+
name: "SC.SegmentedView",
|
98
|
+
view: 'Showcase.viewsPage.segmentedViews'
|
99
|
+
}),
|
100
|
+
SC.Object.create({
|
101
|
+
name: "SC.SelectView",
|
102
|
+
view: 'Showcase.viewsPage.selectViews'
|
103
|
+
}),
|
104
|
+
SC.Object.create({
|
105
|
+
name: "SC.SliderView",
|
106
|
+
view: 'Showcase.viewsPage.sliderViews'
|
107
|
+
}),
|
108
|
+
SC.Object.create({
|
109
|
+
name: "SC.SourceListView",
|
110
|
+
view: 'Showcase.viewsPage.sourceListViews'
|
111
|
+
}),
|
112
|
+
SC.Object.create({
|
113
|
+
name: "SC.SplitView",
|
114
|
+
view: 'Showcase.viewsPage.splitViews'
|
115
|
+
}),
|
116
|
+
SC.Object.create({
|
117
|
+
name: "SC.StackedView",
|
118
|
+
view: 'Showcase.viewsPage.stackedViews'
|
119
|
+
}),
|
120
|
+
SC.Object.create({
|
121
|
+
name: "SC.StaticContentView",
|
122
|
+
view: 'Showcase.viewsPage.staticContentViews'
|
123
|
+
}),
|
124
|
+
SC.Object.create({
|
125
|
+
name: "SC.TabView",
|
126
|
+
view: 'Showcase.viewsPage.tabViews'
|
127
|
+
}),
|
128
|
+
SC.Object.create({
|
129
|
+
name: "SC.TextFieldView",
|
130
|
+
view: 'Showcase.viewsPage.textFieldViews'
|
131
|
+
}),
|
132
|
+
SC.Object.create({
|
133
|
+
name: "SC.ToolbarView",
|
134
|
+
view: 'Showcase.viewsPage.toolbarViews'
|
135
|
+
}),
|
136
|
+
SC.Object.create({
|
137
|
+
name: "SC.WebView",
|
138
|
+
view: 'Showcase.viewsPage.webViews'
|
139
|
+
}),
|
140
|
+
SC.Object.create({
|
141
|
+
name: "SC.WellView",
|
142
|
+
view: 'Showcase.viewsPage.wellViews'
|
143
|
+
}),
|
144
|
+
SC.Object.create({
|
145
|
+
name: "SC.WorkspaceView",
|
146
|
+
view: 'Showcase.viewsPage.workspaceViews'
|
147
|
+
})
|
148
|
+
]
|
149
|
+
}),
|
150
|
+
|
151
|
+
// SC.Object.create({
|
152
|
+
// treeItemIsExpanded: true,
|
153
|
+
// group: true,
|
154
|
+
// name: "Recipes",
|
155
|
+
// treeItemChildren: []
|
156
|
+
// }),
|
157
|
+
|
158
|
+
// SC.Object.create({
|
159
|
+
// treeItemIsExpanded: true,
|
160
|
+
// group: true,
|
161
|
+
// name: "Labs",
|
162
|
+
// treeItemChildren: []
|
163
|
+
// })
|
164
|
+
|
165
|
+
]
|
166
|
+
});
|
167
|
+
|
168
|
+
|
169
|
+
/**
|
170
|
+
The mediating controller for the source list object and the delegate for
|
171
|
+
the source list.
|
172
|
+
*/
|
173
|
+
Showcase.sourceTreeController = SC.TreeController.create({
|
174
|
+
|
175
|
+
/** Display top level items as groups. */
|
176
|
+
treeItemIsGrouped: YES,
|
177
|
+
|
178
|
+
/** Don't allow multiple selection. */
|
179
|
+
allowsMultipleSelection: NO,
|
180
|
+
|
181
|
+
/** Don't allow empty selection. */
|
182
|
+
allowsEmptySelection: YES,
|
183
|
+
|
184
|
+
/** Update the URL to match the selection. */
|
185
|
+
selectionDidChange: function() {
|
186
|
+
var content = this.get('content'),
|
187
|
+
selection = this.get('selection');
|
188
|
+
|
189
|
+
if (selection && selection.firstObject()) {
|
190
|
+
var object = selection.firstObject(),
|
191
|
+
section;
|
192
|
+
|
193
|
+
// Determine which group the selection belongs to.
|
194
|
+
content.get('treeItemChildren').forEach(function(group) {
|
195
|
+
if (group.get('treeItemChildren').indexOf(object) >= 0) {
|
196
|
+
section = group;
|
197
|
+
}
|
198
|
+
});
|
199
|
+
|
200
|
+
// Set the location to be a combination of the section and the item. We
|
201
|
+
// use the name in the URL rather than having to add extra properties to
|
202
|
+
// our source objects.
|
203
|
+
// Use informLocation to avoid triggering a route call, since the
|
204
|
+
// selection change already does what we want.
|
205
|
+
SC.routes.informLocation('location', section.get('subpath') + '/' + object.get('name'));
|
206
|
+
} else {
|
207
|
+
// Clear the last location
|
208
|
+
SC.routes.informLocation('location', null);
|
209
|
+
}
|
210
|
+
}.observes('selection')
|
211
|
+
|
212
|
+
});
|