sproutcore 1.5.0.pre.3 → 1.5.0.pre.4
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.
- data/.rspec +1 -0
- data/CHANGELOG +42 -0
- data/README.txt +25 -0
- data/VERSION.yml +1 -1
- data/bin/sc-build +1 -1
- data/bin/sc-build-number +1 -1
- data/bin/sc-docs +1 -1
- data/bin/sc-gen +1 -1
- data/bin/sc-init +1 -1
- data/bin/sc-manifest +1 -1
- data/bin/sc-server +1 -1
- data/bin/sproutcore +1 -1
- data/lib/buildtasks/build.rake +5 -0
- data/lib/buildtasks/manifest.rake +20 -1
- data/lib/frameworks/sproutcore/Buildfile +12 -9
- data/lib/frameworks/sproutcore/CHANGELOG.md +48 -0
- data/lib/frameworks/sproutcore/apps/greenhouse/README +2 -9
- data/lib/frameworks/sproutcore/apps/greenhouse/TODO +11 -27
- data/lib/frameworks/sproutcore/apps/greenhouse/controllers/library.js +3 -10
- data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/css/main-page.css +4 -31
- data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/dialogs.js +5 -4
- data/lib/frameworks/sproutcore/apps/greenhouse/models/dir.js +3 -3
- data/lib/frameworks/sproutcore/apps/greenhouse/models/file.js +2 -2
- data/lib/frameworks/sproutcore/apps/greenhouse/states/main.js +31 -14
- data/lib/frameworks/sproutcore/apps/greenhouse/states/modals.js +2 -1
- data/lib/frameworks/sproutcore/apps/greenhouse/states/ready.js +27 -1
- data/lib/frameworks/sproutcore/apps/greenhouse/tests/views/list_item.js +1 -0
- data/lib/frameworks/sproutcore/apps/greenhouse/tests/views/plist_item.js +20 -0
- data/lib/frameworks/sproutcore/apps/greenhouse/theme.js +25 -0
- data/lib/frameworks/sproutcore/apps/greenhouse/views/plist_item.js +161 -24
- data/lib/frameworks/sproutcore/apps/greenhouse/views/tear_off_picker.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/bootstrap/system/browser.js +37 -25
- data/lib/frameworks/sproutcore/frameworks/bootstrap/tests/system/browser.js +135 -26
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/controllers/array.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/controllers/controller.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/controllers/object.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/core.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/ext/object.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/ext/run_loop.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/mixins/delegate_support.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/mixins/responder_context.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/mixins/selection_support.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/mixins/string.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/keyboard.js +68 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/layout.js +108 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/panes/main.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/manipulation.js +27 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/panes/pane.js +215 -505
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/template.js +24 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/visibility.js +11 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/protocols/observable_protocol.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/protocols/sparse_array_delegate.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/resources/core.css +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/resources/view.css +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/application.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/browser.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/builder.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/core_query.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/cursor.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/device.js +210 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/event.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/json.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/locale.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/page.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/platform.js +31 -5
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/ready.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/render_context.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/responder.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/root_responder.js +83 -110
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/selection_set.js +7 -4
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/sparse_array.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/theme.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/timer.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/utils/rect.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/utils.js +151 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/controllers/array/array_case.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/controllers/array/enum_case.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/controllers/array/null_case.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/controllers/array/selection_support.js +26 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/controllers/array/single_case.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/controllers/object/empty_case.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/controllers/object/multiple_case.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/controllers/object/single_case.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/controllers/object/single_enumerable_case.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/mixins/responder_context.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/mixins/string.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/panes/template.js +14 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/builder.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/core_query/within.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/json.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/locale.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/render_context/begin.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/render_context/element.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/render_context/end.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/render_context/get.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/render_context/helpers_attr.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/render_context/helpers_basic.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/render_context/helpers_className.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/render_context/helpers_style.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/render_context/init.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/render_context/join.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/render_context/push_text.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/render_context/tag.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/render_context/update.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/root_responder/makeKeyPane.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/root_responder/makeMainPane.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/root_responder/makeMenuPane.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/root_responder/root_responder.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/root_responder/targetForAction.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/selection_set/add.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/selection_set/copy.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/selection_set/indexSetForSource.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/selection_set/isEqual.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/selection_set/remove.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/sparse_array.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/theme.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/timer/invalidate.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/timer/invokeLater.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/timer/isPaused.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/timer/performAction.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/timer/schedule.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/utils/normalizeURL.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/utils/offset.js +268 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/utils/rect.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/main_pane.js +43 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/pane/append_remove.js +107 -18
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/child_view.js +20 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/pane/firstResponder.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/pane/keyPane.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/pane/layout.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/pane/sendEvent.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template/checkbox_support.js +32 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template/text_field_support.js +73 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template_view/collection.js +65 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template_view/core.js +67 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template_view/handlebars.js +295 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/animation.js +19 -18
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/build.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/build_children.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/clippingFrame.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/convertFrames.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/convertLayouts.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/createChildViews.js +18 -15
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/createLayer.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/destroyLayer.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/didAppendToDocument.js +11 -8
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/findLayerInParentLayer.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/init.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/insertBefore.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/isVisible.js +28 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/isVisibleInWindow.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/keyboard.js +22 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/layer.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/layoutChildViews.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layoutDidChange.js +180 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layoutStyle.js +640 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/parentViewDidChange.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/prepareContext.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/removeChild.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/render.js +125 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/render_delegate_support.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/replaceChild.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/static_layout.js +21 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/theme.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/updateLayer.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/updateLayerLocation.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/view.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/viewDidResize.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/template/checkbox_support.js +20 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/template/collection.js +99 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/template/text_field_support.js +35 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/template.js +77 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/animation.js +187 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/base.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/cursor.js +41 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/enabled.js +57 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/keyboard.js +223 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout.js +1150 -0
- data/lib/frameworks/sproutcore/frameworks/{amber/views → core_foundation/views/view}/layout_style.js +93 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/manipulation.js +489 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/theming.js +362 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/touch.js +67 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/visibility.js +113 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view.js +1280 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/models/child_attribute.js +27 -53
- data/lib/frameworks/sproutcore/frameworks/datastore/models/children_attribute.js +13 -19
- data/lib/frameworks/sproutcore/frameworks/datastore/models/many_attribute.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record.js +183 -71
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +1 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/system/child_array.js +26 -46
- data/lib/frameworks/sproutcore/frameworks/datastore/system/nested_store.js +25 -4
- data/lib/frameworks/sproutcore/frameworks/datastore/system/store.js +139 -21
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/data_sources/fixtures.js +6 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/integration/cyclical_relationship.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/{parentless.js → data_store.js} +62 -16
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record.js +51 -17
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array.js +36 -10
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array_complex.js +11 -11
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_complex.js +8 -8
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/normalize.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/{foundation/english.lproj → datetime/resources}/strings.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → datetime}/system/datetime.js +5 -37
- data/lib/frameworks/sproutcore/frameworks/{foundation → datetime}/tests/system/datetime.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/debug/core.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/designer/controllers/designs.js +1 -2
- data/lib/frameworks/sproutcore/frameworks/designer/designers/object_designer.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/designer/designers/view_designer.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/designer/views/designer_drop_target.js +9 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/segmented.css +71 -70
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_row_delegate.js +10 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segment.js +4 -19
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segmented.js +33 -14
- data/lib/frameworks/sproutcore/frameworks/desktop/system/drag.js +25 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/date_field/ui.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/methods.js +25 -103
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/ui.js +102 -92
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/tab/ui.js +22 -25
- data/lib/frameworks/sproutcore/frameworks/desktop/views/collection.js +38 -25
- data/lib/frameworks/sproutcore/frameworks/desktop/views/date_field.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scroll.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/segment.js +42 -22
- data/lib/frameworks/sproutcore/frameworks/desktop/views/segmented.js +513 -230
- data/lib/frameworks/sproutcore/frameworks/desktop/views/select_field.js +0 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/README.md +23 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/device_motion/README.md +11 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/device_motion/device.js +215 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/device_motion/platform.js +67 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/README.md +34 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/models/polymorphic_single_attribute.js +183 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/models/record.js +23 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/tests/models/polymorphic/single.js +124 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_resize.js +0 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inner_frame.js +151 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/canvas_image.js +27 -17
- data/lib/frameworks/sproutcore/frameworks/foundation/system/image_queue.js +6 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/system/logger.js +163 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/system/user_defaults.js +6 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_text_field/beginEditing.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/logger.js +44 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/image/ui.js +200 -167
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/ui.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/views/image.js +52 -137
- data/lib/frameworks/sproutcore/frameworks/foundation/views/text_field.js +7 -11
- data/lib/frameworks/sproutcore/frameworks/handlebars/extensions.js +138 -0
- data/lib/frameworks/sproutcore/frameworks/handlebars/handlebars.js +1338 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/core.js +32 -26
- data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/base.js +162 -3
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/array.js +10 -5
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/enumerable.js +123 -3
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +12 -5
- data/lib/frameworks/sproutcore/frameworks/runtime/private/chain_observer.js +50 -13
- data/lib/frameworks/sproutcore/frameworks/runtime/system/logger.js +163 -333
- data/lib/frameworks/sproutcore/frameworks/runtime/system/object.js +58 -8
- data/lib/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +2 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/itemType.js +9 -6
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/makeArray.js +15 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/array.js +2 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/chained.js +31 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/observable.js +18 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/logger.js +31 -143
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/object/concatenated_properties.js +71 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/object/enhance.js +177 -0
- data/lib/frameworks/sproutcore/frameworks/table/views/table.js +5 -4
- data/lib/frameworks/sproutcore/frameworks/table/views/table_header.js +5 -3
- data/lib/frameworks/sproutcore/themes/ace/resources/button/button.js +8 -2
- data/lib/frameworks/sproutcore/themes/ace/resources/menu/menu.css +2 -3
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/18px/segmented.css +1 -1
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented.css +1 -1
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented.css +1 -1
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/44px/segmented.css +1 -1
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/segmented.css +2 -2
- data/lib/frameworks/sproutcore/themes/standard_theme/english.lproj/segmented.css +62 -62
- data/lib/gen/html_app/Buildfile +36 -0
- data/lib/gen/html_app/README +1 -0
- data/lib/gen/html_app/USAGE +15 -0
- data/lib/gen/html_app/templates/apps/@target_name@/@target_name@.js +14 -0
- data/lib/gen/html_app/templates/apps/@target_name@/resources/images/.gitkeep +0 -0
- data/lib/gen/html_app/templates/apps/@target_name@/resources/stylesheets/@target_name@.css +0 -0
- data/lib/gen/html_app/templates/apps/@target_name@/resources/templates/@target_name@.handlebars +1 -0
- data/lib/gen/html_project/Buildfile +45 -0
- data/lib/gen/html_project/INIT +3 -0
- data/lib/gen/html_project/README +1 -0
- data/lib/gen/html_project/USAGE +2 -0
- data/lib/gen/html_project/templates/@filename@/Buildfile +8 -0
- data/lib/gen/html_project/templates/@filename@/README +7 -0
- data/lib/sproutcore/builders/handlebars.rb +30 -0
- data/lib/sproutcore/builders.rb +1 -1
- data/lib/sproutcore/helpers/static_helper.rb +3 -3
- data/lib/sproutcore/tools/init.rb +25 -9
- data/spec/buildtasks/manifest/prepare_build_tasks/handlebars_spec.rb +39 -0
- data/spec/fixtures/builder_tests/apps/handlebars_test/template.handlebars +5 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/templates/demo.handlebars +4 -0
- data/spec/lib/builders/handlebars_spec.rb +29 -0
- data/vendor/chance/lib/chance/imagers/data_url.rb +20 -7
- data/vendor/chance/lib/chance/instance.rb +4 -1
- data/vendor/chance/lib/chance/parser.rb +31 -31
- data/vendor/chance/lib/chance/slicing.rb +38 -8
- metadata +195 -225
- data/lib/frameworks/sproutcore/frameworks/amber/system/device.js +0 -143
- data/lib/frameworks/sproutcore/frameworks/amber/system/utils.js +0 -174
- data/lib/frameworks/sproutcore/frameworks/amber/tests/views/main_pane.js +0 -31
- data/lib/frameworks/sproutcore/frameworks/amber/tests/views/pane/sendTouchEvent.js +0 -267
- data/lib/frameworks/sproutcore/frameworks/amber/tests/views/view/layoutDidChange.js +0 -149
- data/lib/frameworks/sproutcore/frameworks/amber/tests/views/view/layoutStyle.js +0 -602
- data/lib/frameworks/sproutcore/frameworks/amber/tests/views/view/render.js +0 -115
- data/lib/frameworks/sproutcore/frameworks/amber/views/base.js +0 -1
- data/lib/frameworks/sproutcore/frameworks/amber/views/view.js +0 -4003
- data/lib/frameworks/sproutcore/frameworks/datastore/models/child_record.js +0 -105
data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template_view/handlebars.js
ADDED
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
/**
|
|
2
|
+
This module specifically tests integration with Handlebars and SproutCore-specific
|
|
3
|
+
Handlebars extensions.
|
|
4
|
+
|
|
5
|
+
If you add additional template support to SC.TemplateView, you should create a new
|
|
6
|
+
file in which to test.
|
|
7
|
+
*/
|
|
8
|
+
module("SC.TemplateView - handlebars integration");
|
|
9
|
+
|
|
10
|
+
test("template view should call the function of the associated template", function() {
|
|
11
|
+
var view = SC.TemplateView.create({
|
|
12
|
+
templateName: 'test_template',
|
|
13
|
+
templates: SC.Object.create({
|
|
14
|
+
test_template: SC.Handlebars.compile("<h1 id='twas-called'>template was called</h1>")
|
|
15
|
+
})
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
view.createLayer();
|
|
19
|
+
|
|
20
|
+
ok(view.$('#twas-called').length, "the named template was called");
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
test("template view should call the function of the associated template with itself as the context", function() {
|
|
24
|
+
var view = SC.TemplateView.create({
|
|
25
|
+
templateName: 'test_template',
|
|
26
|
+
|
|
27
|
+
_personName: "Tom DAAAALE",
|
|
28
|
+
_i: 0,
|
|
29
|
+
|
|
30
|
+
personName: function() {
|
|
31
|
+
this._i++;
|
|
32
|
+
return this._personName + this._i;
|
|
33
|
+
}.property().cacheable(),
|
|
34
|
+
|
|
35
|
+
templates: SC.Object.create({
|
|
36
|
+
test_template: SC.Handlebars.compile("<h1 id='twas-called'>template was called for {{personName}}. Yea {{personName}}</h1>")
|
|
37
|
+
})
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
view.createLayer();
|
|
41
|
+
|
|
42
|
+
equals("template was called for Tom DAAAALE1. Yea Tom DAAAALE1", view.$('#twas-called').text(), "the named template was called with the view as the data source");
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
TemplateTests = {};
|
|
46
|
+
|
|
47
|
+
test("child views can be inserted using the {{view}} Handlebars helper", function() {
|
|
48
|
+
var templates = SC.Object.create({
|
|
49
|
+
nester: SC.Handlebars.compile("<h1 id='hello-world'>Hello {{world}}</h1>{{view \"TemplateTests.LabelView\"}}"),
|
|
50
|
+
nested: SC.Handlebars.compile("<div id='child-view'>Goodbye {{cruel}} {{world}}</div>")
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
TemplateTests.LabelView = SC.TemplateView.extend({
|
|
54
|
+
tagName: "aside",
|
|
55
|
+
cruel: "cruel",
|
|
56
|
+
world: "world?",
|
|
57
|
+
templateName: 'nested',
|
|
58
|
+
templates: templates
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
var view = SC.TemplateView.create({
|
|
62
|
+
world: "world!",
|
|
63
|
+
templateName: 'nester',
|
|
64
|
+
templates: templates
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
view.createLayer();
|
|
68
|
+
|
|
69
|
+
ok(view.$("#hello-world:contains('Hello world!')").length, "The parent view renders its contents");
|
|
70
|
+
ok(view.$("#child-view:contains('Goodbye cruel world?')").length === 1, "The child view renders its content once");
|
|
71
|
+
ok(view.$().html().match(/Hello world!.*<aside.*Goodbye cruel world?/), "parent view should appear before the child view");
|
|
72
|
+
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
test("child views can be inserted inside a bind block", function() {
|
|
76
|
+
var templates = SC.Object.create({
|
|
77
|
+
nester: SC.Handlebars.compile("<h1 id='hello-world'>Hello {{world}}</h1>{{view \"TemplateTests.LabelView\"}}"),
|
|
78
|
+
nested: SC.Handlebars.compile("<div id='child-view'>Goodbye {{#bind \"content\"}}{{blah}} {{view \"TemplateTests.OtherView\"}}{{/bind}} {{world}}</div>"),
|
|
79
|
+
other: SC.Handlebars.compile("cruel")
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
TemplateTests.LabelView = SC.TemplateView.extend({
|
|
83
|
+
tagName: "aside",
|
|
84
|
+
cruel: "cruel",
|
|
85
|
+
world: "world?",
|
|
86
|
+
content: SC.Object.create({ blah: "wot" }),
|
|
87
|
+
templateName: 'nested',
|
|
88
|
+
templates: templates
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
TemplateTests.OtherView = SC.TemplateView.extend({
|
|
92
|
+
templates: templates,
|
|
93
|
+
templateName: 'other'
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
var view = SC.TemplateView.create({
|
|
97
|
+
world: "world!",
|
|
98
|
+
templateName: 'nester',
|
|
99
|
+
templates: templates
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
view.createLayer();
|
|
103
|
+
|
|
104
|
+
ok(view.$("#hello-world:contains('Hello world!')").length, "The parent view renders its contents");
|
|
105
|
+
ok(view.$("aside:contains('Goodbye wot cruel world?')").length === 1, "The child view renders its content once");
|
|
106
|
+
ok(view.$().html().match(/Hello world!.*<aside.*Goodbye.*wot.*cruel.*world?/), "parent view should appear before the child view");
|
|
107
|
+
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
test("SC.TemplateView updates when a property changes", function() {
|
|
111
|
+
var templates = SC.Object.create({
|
|
112
|
+
foo: SC.Handlebars.compile('<h1 id="first">{{#with content}}{{bind "wham"}}{{/with}}</h1>')
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
var view = SC.TemplateView.create({
|
|
116
|
+
templateName: 'foo',
|
|
117
|
+
templates: templates,
|
|
118
|
+
|
|
119
|
+
content: SC.Object.create({
|
|
120
|
+
wham: 'bam',
|
|
121
|
+
thankYou: "ma'am"
|
|
122
|
+
})
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
view.createLayer();
|
|
126
|
+
|
|
127
|
+
equals(view.$('#first').text(), "bam", "precond - view renders Handlebars template");
|
|
128
|
+
|
|
129
|
+
SC.run(function() { view.get('content').set('wham', 'bazam'); });
|
|
130
|
+
|
|
131
|
+
equals(view.$('#first').text(), "bazam", "view updates when a bound property changes");
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
test("Handlebars templates update properties if a content object changes", function() {
|
|
136
|
+
var templates;
|
|
137
|
+
|
|
138
|
+
templates = SC.Object.create({
|
|
139
|
+
menu: SC.Handlebars.compile('<h1>Today\'s Menu</h1>{{#bind "coffee"}}<h2>{{color}} coffee</h2><span id="price">{{bind "price"}}</span>{{/bind}}')
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
var view = SC.TemplateView.create({
|
|
143
|
+
templateName: 'menu',
|
|
144
|
+
templates: templates,
|
|
145
|
+
|
|
146
|
+
coffee: SC.Object.create({
|
|
147
|
+
color: 'brown',
|
|
148
|
+
price: '$4'
|
|
149
|
+
})
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
view.createLayer();
|
|
153
|
+
|
|
154
|
+
equals(view.$('h2').text(), "brown coffee", "precond - renders color correctly");
|
|
155
|
+
equals(view.$('#price').text(), '$4', "precond - renders price correctly");
|
|
156
|
+
|
|
157
|
+
view.set('coffee', SC.Object.create({
|
|
158
|
+
color: "mauve",
|
|
159
|
+
price: "$4.50"
|
|
160
|
+
}));
|
|
161
|
+
|
|
162
|
+
equals(view.$('h2').text(), "mauve coffee", "should update name field when content changes");
|
|
163
|
+
equals(view.$('#price').text(), "$4.50", "should update price field when content changes");
|
|
164
|
+
|
|
165
|
+
view.set('coffee', SC.Object.create({
|
|
166
|
+
color: "mauve",
|
|
167
|
+
price: "$5.50"
|
|
168
|
+
}));
|
|
169
|
+
|
|
170
|
+
equals(view.$('h2').text(), "mauve coffee", "should update name field when content changes");
|
|
171
|
+
equals(view.$('#price').text(), "$5.50", "should update price field when content changes");
|
|
172
|
+
|
|
173
|
+
view.setPath('coffee.price', "$5");
|
|
174
|
+
|
|
175
|
+
equals(view.$('#price').text(), "$5", "should update price field when price property is changed");
|
|
176
|
+
});
|
|
177
|
+
|
|
178
|
+
test("Template views return a no-op function if their template cannot be found", function() {
|
|
179
|
+
var view = SC.TemplateView.create({
|
|
180
|
+
templateName: 'cantBeFound'
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
var template = view.get('template');
|
|
184
|
+
|
|
185
|
+
ok(SC.typeOf(template) === 'function', 'template should be a function');
|
|
186
|
+
equals(template(), '', 'should return an empty string');
|
|
187
|
+
});
|
|
188
|
+
|
|
189
|
+
test("Template views can belong to a pane and a parent view", function() {
|
|
190
|
+
var templates = SC.Object.create({
|
|
191
|
+
toDo: SC.Handlebars.compile('<h1>{{title}}</h1> (Created at {{createdAt}})')
|
|
192
|
+
});
|
|
193
|
+
|
|
194
|
+
var didCreateLayerWasCalled = NO;
|
|
195
|
+
|
|
196
|
+
var pane = SC.MainPane.design({
|
|
197
|
+
childViews: ['container'],
|
|
198
|
+
|
|
199
|
+
container: SC.View.design({
|
|
200
|
+
childViews: ['normalView', 'template'],
|
|
201
|
+
|
|
202
|
+
normalView: SC.View,
|
|
203
|
+
|
|
204
|
+
template: SC.TemplateView.design({
|
|
205
|
+
templates: templates,
|
|
206
|
+
|
|
207
|
+
templateName: 'toDo',
|
|
208
|
+
title: 'Do dishes',
|
|
209
|
+
createdAt: "Today",
|
|
210
|
+
|
|
211
|
+
didCreateLayer: function() {
|
|
212
|
+
didCreateLayerWasCalled = YES;
|
|
213
|
+
}
|
|
214
|
+
})
|
|
215
|
+
})
|
|
216
|
+
});
|
|
217
|
+
|
|
218
|
+
pane = pane.create().append();
|
|
219
|
+
|
|
220
|
+
equals(pane.$().children().length, 1, "pane has one child DOM element");
|
|
221
|
+
equals(pane.$().children().children().length, 2, "container view has two child DOM elements");
|
|
222
|
+
equals(pane.$().children().children().eq(1).html(), "<h1>Do dishes</h1> (Created at Today)", "renders template to the correct DOM element");
|
|
223
|
+
ok(didCreateLayerWasCalled, "didCreateLayer gets called on a template view after it gets rendered");
|
|
224
|
+
pane.remove();
|
|
225
|
+
});
|
|
226
|
+
|
|
227
|
+
test("Template views add a layerId to child views created using the view helper", function() {
|
|
228
|
+
var templates = SC.Object.create({
|
|
229
|
+
parent: SC.Handlebars.compile('<aside>{{view "TemplateTests.ChildView"}}</aside>'),
|
|
230
|
+
child: SC.Handlebars.compile("I can't believe it's not butter.")
|
|
231
|
+
});
|
|
232
|
+
|
|
233
|
+
TemplateTests.ChildView = SC.TemplateView.extend({
|
|
234
|
+
templates: templates,
|
|
235
|
+
templateName: 'child'
|
|
236
|
+
});
|
|
237
|
+
|
|
238
|
+
var view = SC.TemplateView.create({
|
|
239
|
+
templates: templates,
|
|
240
|
+
templateName: 'parent'
|
|
241
|
+
});
|
|
242
|
+
|
|
243
|
+
view.createLayer();
|
|
244
|
+
var childView = view.getPath('childViews.firstObject');
|
|
245
|
+
equals(view.$().children().first().children().first().attr('id'), childView.get('layerId'));
|
|
246
|
+
});
|
|
247
|
+
|
|
248
|
+
test("Template views set the template of their children to a passed block", function() {
|
|
249
|
+
var templates = SC.Object.create({
|
|
250
|
+
parent: SC.Handlebars.compile('<h1>{{#view "TemplateTests.NoTemplateView"}}<span>It worked!</span>{{/view}}')
|
|
251
|
+
});
|
|
252
|
+
|
|
253
|
+
TemplateTests.NoTemplateView = SC.TemplateView.extend();
|
|
254
|
+
|
|
255
|
+
var view = SC.TemplateView.create({
|
|
256
|
+
templates: templates,
|
|
257
|
+
templateName: 'parent'
|
|
258
|
+
});
|
|
259
|
+
|
|
260
|
+
view.createLayer();
|
|
261
|
+
ok(view.$().html().match(/<h1>.*<span>.*<\/span>.*<\/h1>/), "renders the passed template inside the parent template");
|
|
262
|
+
});
|
|
263
|
+
|
|
264
|
+
test("Child views created using the view helper should have their parent view set properly", function() {
|
|
265
|
+
TemplateTests = {};
|
|
266
|
+
|
|
267
|
+
var template = '{{#view "SC.TemplateView"}}{{#view "SC.TemplateView"}}{{view "SC.TemplateView"}}{{/view}}{{/view}}';
|
|
268
|
+
|
|
269
|
+
var view = SC.TemplateView.create({
|
|
270
|
+
template: SC.Handlebars.compile(template)
|
|
271
|
+
});
|
|
272
|
+
|
|
273
|
+
view.createLayer();
|
|
274
|
+
|
|
275
|
+
var childView = view.childViews[0].childViews[0];
|
|
276
|
+
equals(childView, childView.childViews[0].parentView, 'parent view is correct');
|
|
277
|
+
});
|
|
278
|
+
|
|
279
|
+
test("Collection views that specify an example view class have their children be of that class", function() {
|
|
280
|
+
TemplateTests.ExampleViewCollection = SC.TemplateCollectionView.create({
|
|
281
|
+
itemView: SC.TemplateView.extend({
|
|
282
|
+
isCustom: YES
|
|
283
|
+
}),
|
|
284
|
+
|
|
285
|
+
content: ['foo']
|
|
286
|
+
});
|
|
287
|
+
|
|
288
|
+
var parentView = SC.TemplateView.create({
|
|
289
|
+
template: SC.Handlebars.compile('{{#collection "TemplateTests.ExampleViewCollection"}}OHAI{{/collection}}')
|
|
290
|
+
});
|
|
291
|
+
|
|
292
|
+
parentView.createLayer();
|
|
293
|
+
|
|
294
|
+
ok(parentView.childViews[0].childViews[0].isCustom, "uses the example view class");
|
|
295
|
+
});
|
data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/animation.js
RENAMED
|
@@ -18,6 +18,7 @@ function transitionFor(view){
|
|
|
18
18
|
|
|
19
19
|
var commonSetup = {
|
|
20
20
|
setup: function() {
|
|
21
|
+
|
|
21
22
|
SC.RunLoop.begin();
|
|
22
23
|
|
|
23
24
|
pane = SC.Pane.create({
|
|
@@ -25,7 +26,7 @@ var commonSetup = {
|
|
|
25
26
|
layout: { top: 0, right: 0, width: 200, height: 200, zIndex: 100 }
|
|
26
27
|
});
|
|
27
28
|
pane.append();
|
|
28
|
-
|
|
29
|
+
|
|
29
30
|
view = SC.View.create({
|
|
30
31
|
backgroundColor: '#888',
|
|
31
32
|
layout: { left: 0, top: 0, height: 100, width: 100 }
|
|
@@ -56,15 +57,15 @@ if (SC.platform.supportsCSSTransitions) {
|
|
|
56
57
|
SC.RunLoop.begin();
|
|
57
58
|
view.animate('left', 100, 1);
|
|
58
59
|
SC.RunLoop.end();
|
|
59
|
-
equals(transitionFor(view), 'left 1s linear', 'add transition');
|
|
60
|
+
equals(transitionFor(view), 'left 1s linear', 'add transition');
|
|
60
61
|
});
|
|
61
62
|
|
|
62
63
|
test("callbacks work in general", function(){
|
|
63
|
-
stop(
|
|
64
|
+
stop(2000);
|
|
64
65
|
|
|
65
66
|
SC.RunLoop.begin();
|
|
66
67
|
// We shouldn't have to use invokeLater, but it's the only way to get this to work!
|
|
67
|
-
view.invokeLater('animate', 1, 'left', 100, .
|
|
68
|
+
view.invokeLater('animate', 1, 'left', 100, 0.500, function() {
|
|
68
69
|
start();
|
|
69
70
|
ok(true, "Callback was called.");
|
|
70
71
|
});
|
|
@@ -72,11 +73,11 @@ if (SC.platform.supportsCSSTransitions) {
|
|
|
72
73
|
});
|
|
73
74
|
|
|
74
75
|
test("callbacks should have appropriate data", function(){
|
|
75
|
-
stop(
|
|
76
|
+
stop(2000);
|
|
76
77
|
|
|
77
78
|
SC.RunLoop.begin();
|
|
78
79
|
// We shouldn't have to use invokeLater, but it's the only way to get this to work!
|
|
79
|
-
view.invokeLater('animate', 1, 'left', 100, .
|
|
80
|
+
view.invokeLater('animate', 1, 'left', 100, 0.500, function(data) {
|
|
80
81
|
start();
|
|
81
82
|
|
|
82
83
|
// TODO: Test this better
|
|
@@ -113,7 +114,7 @@ if (SC.platform.supportsCSSTransitions) {
|
|
|
113
114
|
|
|
114
115
|
// Pretty sure this does the job
|
|
115
116
|
test("callbacks should be called for each property", function(){
|
|
116
|
-
stop(
|
|
117
|
+
stop(2000);
|
|
117
118
|
var stopped = true;
|
|
118
119
|
|
|
119
120
|
expect(2);
|
|
@@ -121,7 +122,7 @@ if (SC.platform.supportsCSSTransitions) {
|
|
|
121
122
|
|
|
122
123
|
SC.RunLoop.begin();
|
|
123
124
|
// We shouldn't have to use invokeLater, but it's the only way to get this to work!
|
|
124
|
-
view.invokeLater('animate', 1, { top: 100, left: 100 }, .
|
|
125
|
+
view.invokeLater('animate', 1, { top: 100, left: 100 }, 0.500, function(data) {
|
|
125
126
|
if (stopped) {
|
|
126
127
|
start();
|
|
127
128
|
stopped = false;
|
|
@@ -144,10 +145,10 @@ if (SC.platform.supportsCSSTransitions) {
|
|
|
144
145
|
expect(2);
|
|
145
146
|
|
|
146
147
|
SC.RunLoop.begin();
|
|
147
|
-
view.invokeLater('animate', 1, 'top', 100,
|
|
148
|
+
view.invokeLater('animate', 1, 'top', 100, 0.250, function(){
|
|
148
149
|
ok(true, 'top finished');
|
|
149
150
|
});
|
|
150
|
-
view.invokeLater('animate',
|
|
151
|
+
view.invokeLater('animate', 2, 'left', 100, 0.500, function(){
|
|
151
152
|
ok(true, 'left finished');
|
|
152
153
|
start();
|
|
153
154
|
});
|
|
@@ -160,10 +161,10 @@ if (SC.platform.supportsCSSTransitions) {
|
|
|
160
161
|
expect(2);
|
|
161
162
|
|
|
162
163
|
SC.RunLoop.begin();
|
|
163
|
-
view.invokeLater('animate', 1, 'top', 100,
|
|
164
|
+
view.invokeLater('animate', 1, 'top', 100, 0.500, function(data){
|
|
164
165
|
equals(data.isCancelled, true, 'first cancelled');
|
|
165
166
|
});
|
|
166
|
-
view.invokeLater('animate',
|
|
167
|
+
view.invokeLater('animate', 250, 'top', 0, 0.500, function(data){
|
|
167
168
|
equals(data.isCancelled, false, 'second not cancelled');
|
|
168
169
|
start();
|
|
169
170
|
});
|
|
@@ -176,7 +177,7 @@ if (SC.platform.supportsCSSTransitions) {
|
|
|
176
177
|
SC.RunLoop.end();
|
|
177
178
|
equals(transitionFor(view), '-'+SC.platform.cssPrefix+'-transform 1s linear', 'add transition');
|
|
178
179
|
equals(styleFor(view)[SC.platform.domCSSPrefix+'Transform'], 'rotateX(45deg)', 'has both transforms');
|
|
179
|
-
equals(45, view.get('layout').rotateX, 'rotateX is 45deg');
|
|
180
|
+
equals(45, view.get('layout').rotateX, 'rotateX is 45deg');
|
|
180
181
|
});
|
|
181
182
|
|
|
182
183
|
test("should handle conflicting transform animations", function(){
|
|
@@ -202,12 +203,12 @@ if (SC.platform.supportsCSSTransitions) {
|
|
|
202
203
|
test("should properly handle callbacks from conflicting transforms");
|
|
203
204
|
|
|
204
205
|
test("removes animation property when done", function(){
|
|
205
|
-
stop(
|
|
206
|
+
stop(2000);
|
|
206
207
|
|
|
207
208
|
SC.RunLoop.begin();
|
|
208
|
-
view.invokeLater('animate',
|
|
209
|
+
view.invokeLater('animate', 1000, { top: 100, scale: 2 }, 0.500);
|
|
209
210
|
SC.RunLoop.end();
|
|
210
|
-
|
|
211
|
+
|
|
211
212
|
setTimeout(function(){
|
|
212
213
|
start();
|
|
213
214
|
equals(view.get('layout').animateTop, undefined, "animateTop is undefined");
|
|
@@ -263,7 +264,7 @@ if (SC.platform.supportsCSSTransitions) {
|
|
|
263
264
|
});
|
|
264
265
|
|
|
265
266
|
test("callbacks should work properly with acceleration", function(){
|
|
266
|
-
stop(
|
|
267
|
+
stop(2000);
|
|
267
268
|
var stopped = true;
|
|
268
269
|
|
|
269
270
|
expect(3);
|
|
@@ -271,7 +272,7 @@ if (SC.platform.supportsCSSTransitions) {
|
|
|
271
272
|
|
|
272
273
|
SC.RunLoop.begin();
|
|
273
274
|
// We shouldn't have to use invokeLater, but it's the only way to get this to work!
|
|
274
|
-
view.invokeLater('animate', 1, { top: 100, left: 100, scale: 2 }, .
|
|
275
|
+
view.invokeLater('animate', 1, { top: 100, left: 100, scale: 2 }, 0.500, function(data) {
|
|
275
276
|
if (stopped) {
|
|
276
277
|
start();
|
|
277
278
|
stopped = false;
|
data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/build.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
// ..........................................................
|
|
10
10
|
// createChildViews()
|
|
11
|
-
//
|
|
11
|
+
//
|
|
12
12
|
module("SC.View#createChildViews");
|
|
13
13
|
|
|
14
14
|
test("calls createChildView() for each class or string in childViews array", function() {
|
|
@@ -16,24 +16,27 @@ test("calls createChildView() for each class or string in childViews array", fun
|
|
|
16
16
|
var v = SC.View.create({
|
|
17
17
|
childViews: [
|
|
18
18
|
SC.View.extend({ key: 0 }), // class - should be called
|
|
19
|
-
SC.View.create({ key: 1 }), //
|
|
20
|
-
'customClassName' // string - should be called
|
|
19
|
+
SC.View.create({ key: 1 }), // instance - will be called
|
|
20
|
+
'customClassName' // string - should be called
|
|
21
21
|
],
|
|
22
22
|
|
|
23
23
|
// this shuld be used for the 'customClassName' item above
|
|
24
24
|
customClassName: SC.View.extend({ key: 2 }),
|
|
25
|
-
|
|
25
|
+
|
|
26
26
|
// patch to record results...
|
|
27
27
|
createChildView: function(childView) {
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
if(childView.isClass) {
|
|
29
|
+
called.push(childView.prototype.key);
|
|
30
|
+
} else {
|
|
31
|
+
called.push(childView.key);
|
|
32
|
+
}
|
|
30
33
|
return sc_super();
|
|
31
34
|
}
|
|
32
35
|
});
|
|
33
|
-
|
|
36
|
+
|
|
34
37
|
// createChildViews() is called automatically during create.
|
|
35
|
-
same(called, [0,2], 'called createChildView for correct children');
|
|
36
|
-
|
|
38
|
+
same(called, [0,1,2], 'called createChildView for correct children');
|
|
39
|
+
|
|
37
40
|
// make sure childViews array is correct now.
|
|
38
41
|
var cv = v.childViews, len = cv.length, idx;
|
|
39
42
|
for(idx=0;idx<len;idx++) {
|
|
@@ -51,7 +54,7 @@ test("should not error when there is a dud view name in childViews list.", funct
|
|
|
51
54
|
],
|
|
52
55
|
// this shuld be used for the 'customClassName' item above
|
|
53
56
|
customClassName: SC.View.extend({ key: 2 }),
|
|
54
|
-
|
|
57
|
+
|
|
55
58
|
// patch to record results...
|
|
56
59
|
createChildView: function(childView) {
|
|
57
60
|
called.push(childView.prototype.key);
|
|
@@ -59,7 +62,7 @@ test("should not error when there is a dud view name in childViews list.", funct
|
|
|
59
62
|
return sc_super();
|
|
60
63
|
}
|
|
61
64
|
});
|
|
62
|
-
|
|
65
|
+
|
|
63
66
|
// createChildViews() is called automatically during create.
|
|
64
67
|
same(called, [2], 'called createChildView for correct children');
|
|
65
68
|
});
|
|
@@ -72,9 +75,9 @@ test("should not throw error when there is an extra space in the childViews list
|
|
|
72
75
|
customClassName: SC.View.extend({ key: 2 }),
|
|
73
76
|
customKlassName: SC.View.extend({ key: 3 })
|
|
74
77
|
});
|
|
75
|
-
|
|
78
|
+
|
|
76
79
|
ok(true, "called awake without issue.");
|
|
77
|
-
|
|
80
|
+
|
|
78
81
|
});
|
|
79
82
|
|
|
80
83
|
test("should not create layer for created child views", function() {
|
|
@@ -87,12 +90,12 @@ test("should not create layer for created child views", function() {
|
|
|
87
90
|
|
|
88
91
|
// ..........................................................
|
|
89
92
|
// createChildView()
|
|
90
|
-
//
|
|
93
|
+
//
|
|
91
94
|
|
|
92
95
|
var view, myViewClass ;
|
|
93
96
|
module("SC.View#createChildView", {
|
|
94
97
|
setup: function() {
|
|
95
|
-
view = SC.View.create({ page: SC.Object.create() });
|
|
98
|
+
view = SC.View.create({ page: SC.Object.create() });
|
|
96
99
|
myViewClass = SC.View.extend({ isMyView: YES, foo: 'bar' });
|
|
97
100
|
}
|
|
98
101
|
});
|
data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/createLayer.js
RENAMED
|
File without changes
|
data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/destroyLayer.js
RENAMED
|
File without changes
|
|
@@ -26,14 +26,17 @@ test("Check that didAppendToDocument gets called at the right moment", function(
|
|
|
26
26
|
})
|
|
27
27
|
]
|
|
28
28
|
});
|
|
29
|
-
equals(counter, 0, "");
|
|
29
|
+
equals(counter, 0, "precond - has not been called yet");
|
|
30
30
|
pane.append(); // make sure there is a layer...
|
|
31
|
-
equals(counter, 1, "");
|
|
31
|
+
equals(counter, 1, "didAppendToDocument was called once");
|
|
32
32
|
view = pane.childViews[0];
|
|
33
|
-
|
|
34
|
-
SC.
|
|
35
|
-
|
|
36
|
-
|
|
33
|
+
|
|
34
|
+
SC.run(function() {
|
|
35
|
+
view.updateLayer();
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
equals(counter, 2, "didAppendToDocument is called every time a new DOM element is created");
|
|
39
|
+
|
|
37
40
|
var additionalView = SC.View.extend({
|
|
38
41
|
didAppendToDocument: function(){
|
|
39
42
|
counter++;
|
|
@@ -41,8 +44,8 @@ test("Check that didAppendToDocument gets called at the right moment", function(
|
|
|
41
44
|
});
|
|
42
45
|
additionalView = additionalView.create();
|
|
43
46
|
pane.appendChild(additionalView);
|
|
44
|
-
|
|
47
|
+
|
|
45
48
|
SC.RunLoop.begin().end();
|
|
46
|
-
equals(counter, 3, "");
|
|
49
|
+
equals(counter, 3, "");
|
|
47
50
|
pane.remove();
|
|
48
51
|
});
|
|
File without changes
|
data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/init.js
RENAMED
|
File without changes
|
data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/insertBefore.js
RENAMED
|
File without changes
|
data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/isVisible.js
RENAMED
|
@@ -49,3 +49,31 @@ test("adding a new view to a visible pane should make it visible", function() {
|
|
|
49
49
|
ok(!view.get('isVisible'), "after pane.appendChild(view), view.get('isVisible') === YES") ;
|
|
50
50
|
ok(view.$().hasClass('hidden'), "after view.set('isVisible', NO), view.$().hasClass('hidden') should be true") ;
|
|
51
51
|
});
|
|
52
|
+
|
|
53
|
+
test("a view with visibility can have a child view without visibility", function() {
|
|
54
|
+
var pane = SC.Pane.create({
|
|
55
|
+
childViews: ['visibleChild'],
|
|
56
|
+
|
|
57
|
+
visibleChild: SC.View.design({
|
|
58
|
+
childViews: ['noVisibilityChild'],
|
|
59
|
+
noVisibilityChild: SC.CoreView
|
|
60
|
+
})
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
var errored = false;
|
|
64
|
+
|
|
65
|
+
try {
|
|
66
|
+
pane.append();
|
|
67
|
+
pane.remove();
|
|
68
|
+
} catch(e) {
|
|
69
|
+
errored = true;
|
|
70
|
+
} finally {
|
|
71
|
+
try {
|
|
72
|
+
pane.remove();
|
|
73
|
+
} catch(e2) {
|
|
74
|
+
errored = true;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
ok(!errored, "Inserting a pane containing a child with visibility that itself has a child without visibility does not cause an error");
|
|
79
|
+
});
|
|
File without changes
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
module("SC.View - Keyboard support");
|
|
2
|
+
|
|
3
|
+
test("Views only attempt to call performKeyEquivalent on child views that support it", function() {
|
|
4
|
+
var performKeyEquivalentCalled = 0;
|
|
5
|
+
|
|
6
|
+
var view = SC.View.design({
|
|
7
|
+
childViews: ['unsupported', 'supported'],
|
|
8
|
+
|
|
9
|
+
unsupported: SC.CoreView,
|
|
10
|
+
supported: SC.View.design({
|
|
11
|
+
performKeyEquivalent: function(str) {
|
|
12
|
+
performKeyEquivalentCalled++;
|
|
13
|
+
return NO;
|
|
14
|
+
}
|
|
15
|
+
})
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
view = view.create();
|
|
19
|
+
view.performKeyEquivalent("ctrl_r");
|
|
20
|
+
|
|
21
|
+
ok(performKeyEquivalentCalled > 0, "performKeyEquivalent is called on the view that supports it");
|
|
22
|
+
});
|
data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/layer.js
RENAMED
|
File without changes
|
|
File without changes
|