sproutcore 1.7.1.beta → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +44 -0
- data/README.rdoc +20 -20
- data/VERSION.yml +3 -3
- data/lib/Buildfile +1 -1
- data/lib/buildtasks/build.rake +5 -0
- data/lib/buildtasks/manifest.rake +19 -1
- data/lib/frameworks/sproutcore/Buildfile +19 -17
- data/lib/frameworks/sproutcore/CHANGELOG.md +163 -29
- data/lib/frameworks/sproutcore/README.md +29 -8
- data/lib/frameworks/sproutcore/apps/statechart_routing/Buildfile +12 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/controllers/login_controller.js +11 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/controllers/main_controller.js +7 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/controllers/statechart_controller.js +17 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/core.js +25 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/main.js +15 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/resources/_theme.css +18 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/resources/bar_page.js +14 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/resources/foo_page.js +14 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/resources/loading.rhtml +9 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/resources/login_page.js +61 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/resources/main_page.js +46 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/statechart.js +76 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/theme.js +27 -0
- data/lib/frameworks/sproutcore/apps/tests/controllers/targets.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/states/no_targets.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/states/ready_detail.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/states/ready_empty.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/states/ready_list.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/states/ready_no_tests.js +1 -1
- data/lib/frameworks/sproutcore/apps/welcome/controllers/targets.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/ajax/system/request.js +14 -1
- data/lib/frameworks/sproutcore/frameworks/ajax/system/response.js +15 -15
- data/lib/frameworks/sproutcore/frameworks/ajax/tests/system/request.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/animation/core.js +8 -5
- data/lib/frameworks/sproutcore/frameworks/bootstrap/system/browser.js +302 -70
- data/lib/frameworks/sproutcore/frameworks/bootstrap/system/loader.js +19 -14
- data/lib/frameworks/sproutcore/frameworks/bootstrap/tests/system/browser.js +471 -149
- data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/array.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/object.js +42 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/run_loop.js +3 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/string.js +7 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/action_support.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/delegate_support.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/responder_context.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/selection_support.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/body_overflow.js +63 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/keyboard.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/layout.js +37 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/main.js +28 -6
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/pane.js +10 -3
- data/lib/frameworks/sproutcore/frameworks/core_foundation/protocols/sparse_array_delegate.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/browser.js +66 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/builder.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/cursor.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/event.js +58 -57
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/locale.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/locale.js.orig +445 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/platform.js +51 -31
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/ready.js +5 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/render_context.js +53 -69
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/responder.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/root_responder.js +98 -72
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/string.js +37 -3
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/timer.js +7 -4
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/array_case.js +21 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/object/content_destroyed.js +7 -7
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/string.js +23 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/browser.js +66 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/event.js +22 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/locale.js +11 -11
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/end.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/escape_html.js +41 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_className.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_style.js +8 -8
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/update.js +17 -16
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/selection_set/remove.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/build_children.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/class_name_bindings_test.js +15 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/createChildViews.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view.js +50 -30
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/acceleration.js +46 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/animation.js +1 -43
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/keyboard.js +8 -34
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout.js +3 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout_style.js +10 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/manipulation.js +6 -5
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/theming.js +22 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/data_source.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/mixins/relationship_support.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/models/child_attribute.js +0 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/models/children_attribute.js +35 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record.js +46 -19
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +23 -9
- data/lib/frameworks/sproutcore/frameworks/datastore/models/single_attribute.js +2 -3
- data/lib/frameworks/sproutcore/frameworks/datastore/system/many_array.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/system/nested_store.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/system/query.js +294 -302
- data/lib/frameworks/sproutcore/frameworks/datastore/system/query.js.orig +1531 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/system/record_array.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/system/store.js +14 -11
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/integration/many_array.js +63 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/many_attribute.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array.js +50 -10
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array_complex.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_complex.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/destroy.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/refresh.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record_attribute.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/single_attribute.js +114 -67
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/commitChangesFromNestedStore.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/readDataHash.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/compare.js +54 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/evaluation.js +29 -9
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/parse.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/core_methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/flush.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/cancelRecord.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/commitChangesFromNestedStore.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/commitRecord.js +37 -45
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/find.js +127 -127
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/pushChanges.js +16 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/pushRelationships.js +42 -4
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/readDataHash.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/system/datetime.js +13 -7
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/tests/system/datetime.js +8 -0
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/resources/strings.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/system/datetime.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/debug/core.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/core.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_row_delegate.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_view_delegate.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/alert.js +1 -4
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/menu.js +19 -6
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/modal.js +30 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/palette.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/panel.js +24 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/picker.js +121 -28
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/sheet.js +15 -15
- data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drag_data_source.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drop_target.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/protocols/responder.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/button.js +39 -15
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/collection.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/image_button.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/panel.js +14 -6
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/popup_button.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/progress.js +11 -11
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segment.js +4 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segmented.js +1 -51
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/slider.js +11 -16
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-error-48.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/slider.css +0 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/system/drag.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/system/undo_manager.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/alert/ui.js +9 -9
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/content.js +11 -11
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/ui.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/reload.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/date_field/ui.js +107 -81
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/rowDelegate.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/progress/ui.js +68 -60
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/radio/methods.js +57 -12
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/integration.js +21 -19
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroller.js +5 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/ui.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select/ui.js +32 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/split/methods.js +12 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/stacked/ui_comments.js +12 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/tab/methods.js +0 -8
- data/lib/frameworks/sproutcore/frameworks/desktop/views/button.js +77 -132
- data/lib/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +5 -6
- data/lib/frameworks/sproutcore/frameworks/desktop/views/collection.js +16 -15
- data/lib/frameworks/sproutcore/frameworks/desktop/views/date_field.js +52 -52
- data/lib/frameworks/sproutcore/frameworks/desktop/views/disclosure.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/grid.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/list.js +147 -147
- data/lib/frameworks/sproutcore/frameworks/desktop/views/list_item.js +11 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_scroll.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/views/popup_button.js +22 -12
- data/lib/frameworks/sproutcore/frameworks/desktop/views/radio.js +13 -7
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scene.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scroll.js +462 -441
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scroller.js +48 -62
- data/lib/frameworks/sproutcore/frameworks/desktop/views/segment.js +22 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/segmented.js +150 -32
- data/lib/frameworks/sproutcore/frameworks/desktop/views/select.js +104 -45
- data/lib/frameworks/sproutcore/frameworks/desktop/views/select_button.js +42 -20
- data/lib/frameworks/sproutcore/frameworks/desktop/views/slider.js +24 -24
- data/lib/frameworks/sproutcore/frameworks/desktop/views/split.js +148 -154
- data/lib/frameworks/sproutcore/frameworks/desktop/views/stacked.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/static_content.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/tab.js +8 -7
- data/lib/frameworks/sproutcore/frameworks/desktop/views/web.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/Buildfile +2 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/controllers/files.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/controllers/library.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/controllers/targets.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/controllers/view_configs.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/mixins/drop_down.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/states/ready.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/views/plist_item.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/views/web.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/controllers/page_design.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/css/css_style_sheet.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/designers/object_designer.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/designers/view_designer.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/mixins/snap_lines.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/views/designer_drop_target.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/views/drawing.js +21 -21
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/views/page_item_view.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/views/form.js +59 -53
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/menu/views/menu/scroll.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/tests/models/polymorphism/simple.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/core_scroll.js +6 -6
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/desktop/scroll.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/touch/scroll.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/ext/menu.js +14 -10
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/ext/menu_item.js +17 -6
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/views/popup_button.js +38 -14
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/views/select.js +5 -13
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/mixins/split_child.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/mixins/split_thumb.js +5 -3
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/tests/children.js +19 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/tests/methods.js +20 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/tests/split_thumb.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/views/split.js +35 -12
- data/lib/frameworks/sproutcore/frameworks/formatters/README +6 -0
- data/lib/frameworks/sproutcore/frameworks/formatters/english.lproj/strings.js +174 -0
- data/lib/frameworks/sproutcore/frameworks/formatters/formatters/date_formatter.js +351 -0
- data/lib/frameworks/sproutcore/frameworks/formatters/tests/date_formatter.js +517 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/core.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_resize.js +345 -138
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/button.js +5 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/content_value_support.js +176 -42
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/editable.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/flowed_layout.js +137 -105
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/gestureable.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editable.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editor.js +16 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/static_layout.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/validatable.js +47 -47
- data/lib/frameworks/sproutcore/frameworks/foundation/private/tree_item_observer.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/helpers/sizing.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/label.js +28 -6
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/render_delegate.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/benchmark.css +0 -5
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/bootstrap.rhtml +34 -19
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/button_view.css +0 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/label.css +1 -5
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/text_field.css +8 -9
- data/lib/frameworks/sproutcore/frameworks/foundation/system/benchmark.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/system/module.js +179 -47
- data/lib/frameworks/sproutcore/frameworks/foundation/system/task_queue.js +34 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/system/text_selection.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/system/user_defaults.js +26 -12
- data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/misc.js +7 -7
- data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/string_measurement.js +12 -4
- data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/string_metric_optimization.js +202 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/content_value_support/content.js +77 -8
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/flowed_layout/tests.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editable/beginEditing.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editable/commitEditing.js +4 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editable/discardEditing.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editor/beginEditing.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editor/commitEditing.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editor/discardEditing.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/utils/pointInElement.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/label/ui.js +0 -8
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/ui.js +163 -149
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/credit_card.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/date.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/date_time.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/password.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/validator.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/views/field.js +16 -43
- data/lib/frameworks/sproutcore/frameworks/foundation/views/image.js +4 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/views/inline_text_field.js +67 -54
- data/lib/frameworks/sproutcore/frameworks/foundation/views/label.js +49 -38
- data/lib/frameworks/sproutcore/frameworks/foundation/views/text_field.js +285 -242
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffer.js +13 -13
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffered.js +19 -22
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery-sc.js +9 -3
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery.js +231 -186
- data/lib/frameworks/sproutcore/frameworks/media/views/audio.js +145 -143
- data/lib/frameworks/sproutcore/frameworks/media/views/video.js +156 -154
- data/lib/frameworks/sproutcore/frameworks/qunit/qunit/qunit.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/routing/system/routes.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/routing/system/routes.js.orig +540 -0
- data/lib/frameworks/sproutcore/frameworks/routing/tests/system/routes.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/core.js +15 -8
- data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/base.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/replace.js +12 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/ext/function.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/array.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/copyable.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/enumerable.js +7 -7
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +98 -32
- data/lib/frameworks/sproutcore/frameworks/runtime/private/chain_observer.js +7 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_queue.js +14 -3
- data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_set.js +98 -13
- data/lib/frameworks/sproutcore/frameworks/runtime/system/binding.js +8 -14
- data/lib/frameworks/sproutcore/frameworks/runtime/system/enumerator.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/system/error.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/system/index_set.js +23 -6
- data/lib/frameworks/sproutcore/frameworks/runtime/system/logger.js +69 -18
- data/lib/frameworks/sproutcore/frameworks/runtime/system/object.js +57 -31
- data/lib/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +189 -14
- data/lib/frameworks/sproutcore/frameworks/runtime/system/string.js +82 -22
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/chained.js +20 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/observable.js +125 -4
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/binding.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/rangeStartForIndex.js +37 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/remove.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/logger.js +16 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/run_loop.js +75 -4
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/string.js +41 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/mixins/statechart_delegate.js +113 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/private/state_path_matcher.js +312 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/system/async.js +18 -22
- data/lib/frameworks/sproutcore/frameworks/statechart/system/state.js +508 -131
- data/lib/frameworks/sproutcore/frameworks/statechart/system/state_route_handler_context.js +78 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/system/statechart.js +265 -44
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/event_handling/basic/with_concurrent_states.js +16 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/event_handling/responder/responder_chain.js +11 -3
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/private/state_path_matcher.js +116 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/add_substate.js +108 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/find_first_relative_current_state/with_concurrent.js +179 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/find_first_relative_current_state/without_concurrent.js +74 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/get_state.js +141 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/get_substate.js +340 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/route_triggered.js +161 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/try_to_handle_event.js +288 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/history_state/standard/without_concurrent_states/context.js +5 -33
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/routing/with_concurrent_states/basic.js +213 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/routing/without_concurrent_states/basic.js +212 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/standard/without_concurrent_states/core.js +8 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/{state/namespacing.js → statechart/methods/get_state.js} +3 -41
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/statechart/{invoke_state_method.js → methods/invoke_state_method.js} +1 -1
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/{event_handling/advanced → statechart}/respond_to_event.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/system/state_route_handler_context/methods/retry.js +64 -0
- data/lib/frameworks/sproutcore/frameworks/table/core.js +2 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/controls/button.js +0 -1
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/ext/handlebars.js +29 -5
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/ext/handlebars/bind.js +4 -3
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/ext/handlebars/collection.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/ext/handlebars/localization.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/ext/handlebars/view.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{handlebars → template_view}/handlebars.js +493 -357
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/mixins/template_helpers/checkbox_support.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/mixins/template_helpers/text_field_support.js +13 -2
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/panes/template.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/controls/button.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/mixins/template_helpers/checkbox_support.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/mixins/template_helpers/text_field_support.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/panes/template.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/views/template/collection.js +39 -14
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/views/template/core.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/views/template/handlebars.js +57 -6
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/views/bindable_span.js +21 -6
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/views/template.js +9 -3
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/views/template_collection.js +55 -26
- data/lib/frameworks/sproutcore/frameworks/testing/system/equiv.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/testing/system/plan.js +122 -122
- data/lib/frameworks/sproutcore/frameworks/testing/system/runner.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/testing/system/suite.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/yuireset/resources/base.css +1 -1
- data/lib/frameworks/sproutcore/frameworks/yuireset/resources/reset.css +0 -1
- data/lib/frameworks/sproutcore/frameworks/yuireset/resources/view.css +4 -4
- data/lib/frameworks/sproutcore/lib/index.rhtml +55 -32
- data/lib/frameworks/sproutcore/license.js +2 -4
- data/lib/frameworks/sproutcore/themes/ace/resources/body.css +5 -1
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/18px/button.css +2 -2
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/button.css +21 -13
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/button.css +17 -10
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/button.css +4 -3
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/button.css +20 -12
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/button.css +16 -8
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/jumbo/button.css +17 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/small/button.css +17 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/disclosure/ace/disclosure.css +2 -2
- data/lib/frameworks/sproutcore/themes/ace/resources/master-detail/master-detail.css +2 -2
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover.css +5 -3
- data/lib/frameworks/sproutcore/themes/iphone_theme/english.lproj/core.css +1 -1
- data/lib/frameworks/sproutcore/themes/legacy_theme/english.lproj/toolbar.css +1 -1
- data/lib/gen/app/USAGE +17 -4
- data/lib/gen/language/Buildfile +4 -4
- data/lib/gen/language/USAGE +4 -4
- data/lib/gen/page/templates/pages/@target_name@/Buildfile +7 -7
- data/lib/gen/{html_app → statechart_app}/Buildfile +0 -0
- data/lib/gen/{html_app → statechart_app}/README +0 -0
- data/lib/gen/statechart_app/USAGE +21 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/Buildfile +9 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/core.js +24 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/main.js +26 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/resources/_theme.css +18 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/resources/loading.rhtml +9 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/resources/main_page.js +21 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/statechart.js +8 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/states/ready_state.js +12 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/theme.js +24 -0
- data/lib/sproutcore/builders.rb +1 -0
- data/lib/sproutcore/builders/base.rb +19 -1
- data/lib/sproutcore/builders/chance_file.rb +6 -1
- data/lib/sproutcore/builders/handlebars.rb +1 -9
- data/lib/sproutcore/builders/javascript.rb +1 -10
- data/lib/sproutcore/builders/json.rb +25 -0
- data/lib/sproutcore/builders/less.rb +1 -1
- data/lib/sproutcore/builders/sass.rb +1 -1
- data/lib/sproutcore/builders/stylesheet.rb +1 -9
- data/lib/sproutcore/helpers/html5_manifest.rb +1 -1
- data/lib/sproutcore/helpers/static_helper.rb +42 -0
- data/lib/sproutcore/rack/proxy.rb +21 -3
- data/lib/sproutcore/rack/service.rb +3 -2
- data/lib/sproutcore/tools.rb +18 -25
- data/lib/sproutcore/tools/gen.rb +10 -3
- data/lib/sproutcore/tools/init.rb +11 -10
- data/spec/buildtasks/manifest/prepare_build_tasks/json_spec.rb +62 -0
- data/spec/fixtures/builder_tests/apps/handlebars_test/Buildfile +1 -1
- data/spec/fixtures/builder_tests/apps/json_test/sc_static.json +2 -0
- data/spec/lib/builders/json_spec.rb +53 -0
- data/sproutcore.gemspec +2 -2
- data/vendor/chance/lib/chance/parser.rb +1 -1
- metadata +222 -177
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/datetime.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/debug/invoke_once_last_debugging.js +0 -259
- data/lib/frameworks/sproutcore/frameworks/documentation/core.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/system/chance.js +0 -69
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/editable/ui.js +0 -44
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_text_field/ui.js +0 -64
- data/lib/frameworks/sproutcore/frameworks/mini/license.js +0 -30
- data/lib/gen/html_app/USAGE +0 -15
- data/lib/gen/html_app/templates/apps/@target_name@/@target_name@.js +0 -11
- 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 -6
- data/lib/gen/html_app/templates/apps/@target_name@/resources/templates/@target_name@.handlebars +0 -1
- data/lib/gen/html_project/Buildfile +0 -45
- data/lib/gen/html_project/INIT +0 -3
- data/lib/gen/html_project/README +0 -1
- data/lib/gen/html_project/USAGE +0 -2
- data/lib/gen/html_project/templates/@filename@/Buildfile +0 -5
- data/lib/gen/html_project/templates/@filename@/README +0 -4
|
@@ -136,47 +136,5 @@ SC.View.reopen(
|
|
|
136
136
|
transitionDidEnd: function(evt){
|
|
137
137
|
// WARNING: Sometimes this will get called more than once for a property. Not sure why.
|
|
138
138
|
this.get('layoutStyleCalculator').transitionDidEnd(evt);
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
/**
|
|
142
|
-
Setting wantsAcceleratedLayer to YES will use transforms to move the
|
|
143
|
-
layer when available. On some platforms transforms are hardware accelerated.
|
|
144
|
-
*/
|
|
145
|
-
wantsAcceleratedLayer: NO,
|
|
146
|
-
|
|
147
|
-
/**
|
|
148
|
-
Specifies whether transforms can be used to move the layer.
|
|
149
|
-
*/
|
|
150
|
-
hasAcceleratedLayer: function(){
|
|
151
|
-
if (this.get('wantsAcceleratedLayer') && SC.platform.supportsAcceleratedLayers) {
|
|
152
|
-
var layout = this.get('layout'),
|
|
153
|
-
animations = layout.animate,
|
|
154
|
-
AUTO = SC.LAYOUT_AUTO,
|
|
155
|
-
key;
|
|
156
|
-
|
|
157
|
-
if (animations && (animations.top || animations.left)) {
|
|
158
|
-
for (key in animations) {
|
|
159
|
-
// If we're animating other transforms at different speeds, don't use acceleratedLayer
|
|
160
|
-
if (
|
|
161
|
-
SC.CSS_TRANSFORM_MAP[key] &&
|
|
162
|
-
((animations.top && animations.top.duration !== animations[key].duration) ||
|
|
163
|
-
(animations.left && animations.left.duration !== animations[key].duration))
|
|
164
|
-
) {
|
|
165
|
-
return NO;
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
// loose comparison used instead of (layout.X === null || layout.X === undefined)
|
|
171
|
-
if (
|
|
172
|
-
layout.left != null && !SC.isPercentage(layout.left) && layout.left !== AUTO &&
|
|
173
|
-
layout.top != null && !SC.isPercentage(layout.top) && layout.top !== AUTO &&
|
|
174
|
-
layout.width != null && !SC.isPercentage(layout.width) && layout.width !== AUTO &&
|
|
175
|
-
layout.height != null && !SC.isPercentage(layout.height) && layout.height !== AUTO
|
|
176
|
-
) {
|
|
177
|
-
return YES;
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
return NO;
|
|
181
|
-
}.property('wantsAcceleratedLayer').cacheable()
|
|
139
|
+
}
|
|
182
140
|
});
|
|
@@ -50,34 +50,7 @@ SC.View.reopen(
|
|
|
50
50
|
|
|
51
51
|
@param {SC.Responder} responder
|
|
52
52
|
*/
|
|
53
|
-
didBecomeKeyResponderFrom: function(responder) {
|
|
54
|
-
|
|
55
|
-
// Hack!!!
|
|
56
|
-
// If we try to execute the focus code right now, the iPad will take this as an opportunity to break
|
|
57
|
-
// execution of the current Run Loop (if that Run Loop was started by a timer expiring) to execute
|
|
58
|
-
// any touch event code that is waiting at this time.
|
|
59
|
-
//
|
|
60
|
-
// This becomes a problem in particular for ScrollView's that use a timer to pass touches to their content,
|
|
61
|
-
// because the touchend event can come in while the timer code is executing and pause here to complete
|
|
62
|
-
// the touchend code and then continue the timer code afterward. However, the timer code's
|
|
63
|
-
// execution context will then be out-of-date and will cause a crash in RootResponder's assignTouch().
|
|
64
|
-
//
|
|
65
|
-
// To verify this, use the branch sproutcore/timer_touch_debug in any SproutCore project. Then visit
|
|
66
|
-
// the app launcher http://my.local.machine.ip:4020 on an iPad 1 and simply press one of the app's
|
|
67
|
-
// in the list. The app should crash on the first touch (depending slightly on the speed at which you
|
|
68
|
-
// touch the selection; presses will crash it, taps generally won't). It should occur on the first
|
|
69
|
-
// touch or else try reloading the app until you get the proper touch speed figured out.
|
|
70
|
-
//
|
|
71
|
-
// Using the debug branch, when it crashes, notice how the console statements aren't in order according
|
|
72
|
-
// to the timestamps and notice how there is a big gap in timestamps around this.$().focus() where the
|
|
73
|
-
// touchend block of code runs.
|
|
74
|
-
//
|
|
75
|
-
// -Tyler Keating : tyler@sproutcore.com
|
|
76
|
-
|
|
77
|
-
this.invokeLater(function() {
|
|
78
|
-
this.$().focus();
|
|
79
|
-
});
|
|
80
|
-
},
|
|
53
|
+
didBecomeKeyResponderFrom: function(responder) {},
|
|
81
54
|
|
|
82
55
|
/**
|
|
83
56
|
This method will process a key input event, attempting to convert it to
|
|
@@ -291,7 +264,6 @@ SC.View.reopen(
|
|
|
291
264
|
*/
|
|
292
265
|
nextValidKeyView: function() {
|
|
293
266
|
var cur = this, next;
|
|
294
|
-
|
|
295
267
|
while(next !== this) {
|
|
296
268
|
next = null;
|
|
297
269
|
|
|
@@ -303,8 +275,10 @@ SC.View.reopen(
|
|
|
303
275
|
|
|
304
276
|
// if we have no children or siblings, unroll up closest parent that has a
|
|
305
277
|
// next sibling
|
|
306
|
-
if(!next)
|
|
307
|
-
|
|
278
|
+
if(!next) {
|
|
279
|
+
while(cur = cur.get('parentView')) {
|
|
280
|
+
if(next = cur._getNextKeyView()) break;
|
|
281
|
+
}
|
|
308
282
|
}
|
|
309
283
|
|
|
310
284
|
// if no parents have a next sibling, start over from the beginning
|
|
@@ -314,12 +288,12 @@ SC.View.reopen(
|
|
|
314
288
|
}
|
|
315
289
|
|
|
316
290
|
// if it's a valid firstResponder, we're done!
|
|
317
|
-
if(next.get('isVisibleInWindow') && next.get('acceptsFirstResponder'))
|
|
318
|
-
|
|
291
|
+
if(next.get('isVisibleInWindow') && next.get('acceptsFirstResponder')) {
|
|
292
|
+
return next;
|
|
293
|
+
}
|
|
319
294
|
// otherwise keep looking
|
|
320
295
|
cur = next;
|
|
321
296
|
}
|
|
322
|
-
|
|
323
297
|
// this will only happen if no views are visible and accept first responder
|
|
324
298
|
return null;
|
|
325
299
|
}.property('nextKeyView'),
|
|
@@ -230,7 +230,8 @@ SC.View.reopen(
|
|
|
230
230
|
ret = (
|
|
231
231
|
((layout.width !== undefined) && (layout.height !== undefined)) &&
|
|
232
232
|
((layout.width !== SC.LAYOUT_AUTO) && (layout.height !== SC.LAYOUT_AUTO)) &&
|
|
233
|
-
((layout.left !== undefined) && (layout.top !== undefined))
|
|
233
|
+
((layout.left !== undefined) && (layout.top !== undefined)) &&
|
|
234
|
+
((layout.left !== SC.LAYOUT_AUTO) && (layout.top !== SC.LAYOUT_AUTO))
|
|
234
235
|
);
|
|
235
236
|
|
|
236
237
|
// The layout may appear fixed, but only if none of the values are percentages
|
|
@@ -838,7 +839,7 @@ SC.View.reopen(
|
|
|
838
839
|
|
|
839
840
|
/**
|
|
840
841
|
One of two methods that are invoked whenever one of your childViews
|
|
841
|
-
layout changes. This method is invoked
|
|
842
|
+
layout changes. This method is invoked every time a child view's layout
|
|
842
843
|
changes to give you a chance to record the information about the view.
|
|
843
844
|
|
|
844
845
|
Since this method may be called many times during a single run loop, you
|
|
@@ -446,7 +446,16 @@ SC.View.LayoutStyleCalculator = SC.Object.extend({
|
|
|
446
446
|
|
|
447
447
|
ret.zIndex = this.zIndex;
|
|
448
448
|
ret.opacity = this.opacity;
|
|
449
|
-
|
|
449
|
+
|
|
450
|
+
// for ie, we will NOT use alpha. It is just a source of pain.
|
|
451
|
+
// a) it will not affect absolutely positioned child elements, and is therefore
|
|
452
|
+
// useless for most SC purposes.
|
|
453
|
+
//
|
|
454
|
+
// b) It completely breaks semitransparent background images (PNGs with opacity)
|
|
455
|
+
//
|
|
456
|
+
// If users want to use alpha, they should do it on their own.
|
|
457
|
+
|
|
458
|
+
// if(!SC.none(this.opacity)) ret.filter = "alpha(opacity=%@)".fmt(this.opacity * 100);
|
|
450
459
|
|
|
451
460
|
ret.backgroundPosition = this.backgroundPosition;
|
|
452
461
|
|
|
@@ -137,12 +137,13 @@ SC.View.reopen(
|
|
|
137
137
|
if(pane && pane.get('isPaneAttached')) {
|
|
138
138
|
view._notifyDidAppendToDocument();
|
|
139
139
|
}
|
|
140
|
-
|
|
141
|
-
// notify views
|
|
142
|
-
if (this.didAddChild) { this.didAddChild(view, beforeView) ; }
|
|
143
|
-
if (view.didAddToParent) { view.didAddToParent(this, beforeView) ; }
|
|
144
140
|
});
|
|
145
141
|
|
|
142
|
+
// Even though its layer has not necessarily been created, the child views
|
|
143
|
+
// are added immediately. Hence notify views immediately.
|
|
144
|
+
if (this.didAddChild) { this.didAddChild(view, beforeView) ; }
|
|
145
|
+
if (view.didAddToParent) { view.didAddToParent(this, beforeView) ; }
|
|
146
|
+
|
|
146
147
|
return this ;
|
|
147
148
|
},
|
|
148
149
|
|
|
@@ -280,7 +281,7 @@ SC.View.reopen(
|
|
|
280
281
|
},
|
|
281
282
|
|
|
282
283
|
/**
|
|
283
|
-
Implement this, and call
|
|
284
|
+
Implement this, and call didFinishBuildOut when you are done.
|
|
284
285
|
*/
|
|
285
286
|
buildOut: function() {
|
|
286
287
|
this.buildOutDidFinish();
|
|
@@ -246,7 +246,27 @@ SC.View.reopen(
|
|
|
246
246
|
SC.Logger.error("Name '%@' will be ignored.", renderDelegate.name);
|
|
247
247
|
}
|
|
248
248
|
// @endif
|
|
249
|
-
}.enhance()
|
|
249
|
+
}.enhance(),
|
|
250
|
+
|
|
251
|
+
|
|
252
|
+
/**
|
|
253
|
+
Invokes a method on the render delegate, if one is present and it implements
|
|
254
|
+
that method.
|
|
255
|
+
|
|
256
|
+
@param {String} method The name of the method to call.
|
|
257
|
+
@param arg One or more arguments.
|
|
258
|
+
*/
|
|
259
|
+
invokeRenderDelegateMethod: function(method, args) {
|
|
260
|
+
var renderDelegate = this.get('renderDelegate');
|
|
261
|
+
if (!renderDelegate) return undefined;
|
|
262
|
+
|
|
263
|
+
if (SC.typeOf(renderDelegate[method]) !== SC.T_FUNCTION) return undefined;
|
|
264
|
+
|
|
265
|
+
args = SC.$A(arguments);
|
|
266
|
+
args.shift();
|
|
267
|
+
args.unshift(this.get('renderDelegateProxy'));
|
|
268
|
+
return renderDelegate[method].apply(renderDelegate, args);
|
|
269
|
+
}
|
|
250
270
|
});
|
|
251
271
|
|
|
252
272
|
/**
|
|
@@ -358,7 +378,7 @@ SC.View._RenderDelegateProxy = {
|
|
|
358
378
|
the view's render delegate, if present. You may specify a default value to
|
|
359
379
|
return if there is no such property or is no render delegate.
|
|
360
380
|
|
|
361
|
-
The generated property is read+write, so it may be
|
|
381
|
+
The generated property is read+write, so it may be overridden.
|
|
362
382
|
|
|
363
383
|
@param {String} propertyName The name of the property to get from the render delegate..
|
|
364
384
|
@param {Value} def The default value to use if the property is not present.
|
|
@@ -260,7 +260,7 @@ SC.DataSource = SC.Object.extend( /** @scope SC.DataSource.prototype */ {
|
|
|
260
260
|
queries, you can do so by passing a SC.SparseArray instance instead of
|
|
261
261
|
a regular array of storeKeys and then populate the sparse array on demand.
|
|
262
262
|
|
|
263
|
-
### Handling Errors and
|
|
263
|
+
### Handling Errors and Cancellations
|
|
264
264
|
|
|
265
265
|
If you encounter an error while trying to fetch the results for a query
|
|
266
266
|
you can call SC.Store#dataSourceDidErrorQuery() instead. This will put
|
|
@@ -424,7 +424,7 @@ SC.DataSource = SC.Object.extend( /** @scope SC.DataSource.prototype */ {
|
|
|
424
424
|
},
|
|
425
425
|
|
|
426
426
|
/**
|
|
427
|
-
Called from `commitRecords()` to commit
|
|
427
|
+
Called from `commitRecords()` to commit destroyed records to the
|
|
428
428
|
store. You can override this method to actually send the destroyed
|
|
429
429
|
records to your store. The default version will simply call
|
|
430
430
|
`destroyRecord()` for each storeKey.
|
|
@@ -189,7 +189,7 @@ SC.RelationshipSupport = {
|
|
|
189
189
|
} else if (SC.instanceOf(proto[key], SC.ManyAttribute)) {
|
|
190
190
|
dataHash[hashKey] = dataHash[hashKey] || [];
|
|
191
191
|
|
|
192
|
-
if (dataHash[
|
|
192
|
+
if (dataHash[hashKey].indexOf(relativeID) < 0) {
|
|
193
193
|
dataHash[hashKey].push(relativeID);
|
|
194
194
|
}
|
|
195
195
|
}
|
|
@@ -84,9 +84,7 @@ SC.ChildAttribute = SC.RecordAttribute.extend(
|
|
|
84
84
|
var attrKey = this.get('key') || key, cRef,
|
|
85
85
|
cacheKey = SC.keyFor('__kid__', SC.guidFor(this));
|
|
86
86
|
if (value !== undefined) {
|
|
87
|
-
// this.orphan(record, cacheKey, value);
|
|
88
87
|
value = this.fromType(record, key, value) ; // convert to attribute.
|
|
89
|
-
// record[cacheKey] = value;
|
|
90
88
|
} else {
|
|
91
89
|
value = record.readAttribute(attrKey);
|
|
92
90
|
if (SC.none(value) && (value = this.get('defaultValue'))) {
|
|
@@ -68,7 +68,42 @@ SC.ChildrenAttribute = SC.ChildAttribute.extend(
|
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
return ret;
|
|
71
|
+
},
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
The core handler. Called from the property.
|
|
75
|
+
@param {SC.Record} record the record instance
|
|
76
|
+
@param {String} key the key used to access this attribute on the record
|
|
77
|
+
@param {Object} value the property value if called as a setter
|
|
78
|
+
@returns {Object} property value
|
|
79
|
+
*/
|
|
80
|
+
call: function(record, key, value) {
|
|
81
|
+
var attrKey = this.get('key') || key, cRef,
|
|
82
|
+
cacheKey = SC.keyFor('__kid__', SC.guidFor(this));
|
|
83
|
+
if (value !== undefined) {
|
|
84
|
+
value = this.fromType(record, key, value) ; // convert to attribute.
|
|
85
|
+
} else {
|
|
86
|
+
value = record.readAttribute(attrKey);
|
|
87
|
+
if (SC.none(value) && (value = this.get('defaultValue'))) {
|
|
88
|
+
if (typeof value === SC.T_FUNCTION) {
|
|
89
|
+
value = this.defaultValue(record, key, this);
|
|
90
|
+
// write default value so it doesn't have to be executed again
|
|
91
|
+
if (record.attributes()) {
|
|
92
|
+
// Check for an array
|
|
93
|
+
if (value instanceof Array) {
|
|
94
|
+
// Instantiate the construct and replace all of the content.
|
|
95
|
+
value = this.toType(record, key, value).replace(0, value.length, value);
|
|
96
|
+
} else {
|
|
97
|
+
record.writeAttribute(attrKey, value, true);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
} else value = this.toType(record, key, value);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
return value ;
|
|
71
105
|
}
|
|
106
|
+
|
|
72
107
|
});
|
|
73
108
|
|
|
74
109
|
|
|
@@ -336,7 +336,7 @@ SC.Record = SC.Object.extend(
|
|
|
336
336
|
|
|
337
337
|
/**
|
|
338
338
|
You can invoke this method anytime you need to make the record as dirty.
|
|
339
|
-
This will cause the record to be
|
|
339
|
+
This will cause the record to be committed when you `commitChanges()`
|
|
340
340
|
on the underlying store.
|
|
341
341
|
|
|
342
342
|
If you use the `writeAttribute()` primitive, this method will be called
|
|
@@ -466,23 +466,22 @@ SC.Record = SC.Object.extend(
|
|
|
466
466
|
Should not have to be called manually.
|
|
467
467
|
*/
|
|
468
468
|
propagateToAggregates: function() {
|
|
469
|
-
var storeKey
|
|
469
|
+
var storeKey = this.get('storeKey'),
|
|
470
470
|
recordType = SC.Store.recordTypeFor(storeKey),
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
var aggregates = recordType.aggregates;
|
|
471
|
+
aggregates = recordType.__sc_aggregate_keys,
|
|
472
|
+
idx, len, key, prop, val, recs;
|
|
474
473
|
|
|
475
474
|
// if recordType aggregates are not set up yet, make sure to
|
|
476
475
|
// create the cache first
|
|
477
476
|
if (!aggregates) {
|
|
478
|
-
var dataHash = this.get('store').readDataHash(storeKey);
|
|
479
477
|
aggregates = [];
|
|
480
|
-
for(
|
|
481
|
-
|
|
482
|
-
|
|
478
|
+
for (key in this) {
|
|
479
|
+
prop = this[key];
|
|
480
|
+
if (prop && prop.isRecordAttribute && prop.aggregate === YES) {
|
|
481
|
+
aggregates.push(key);
|
|
483
482
|
}
|
|
484
483
|
}
|
|
485
|
-
recordType.
|
|
484
|
+
recordType.__sc_aggregate_keys = aggregates;
|
|
486
485
|
}
|
|
487
486
|
|
|
488
487
|
// now loop through all aggregate properties and mark their related
|
|
@@ -505,13 +504,19 @@ SC.Record = SC.Object.extend(
|
|
|
505
504
|
@param {SC.Record} record to propagate to
|
|
506
505
|
*/
|
|
507
506
|
iter = function(rec) {
|
|
508
|
-
var childStatus, parentStatus;
|
|
507
|
+
var childStatus, parentStore, parentStoreKey, parentStatus;
|
|
509
508
|
|
|
510
509
|
if (rec) {
|
|
511
510
|
childStatus = this.get('status');
|
|
512
511
|
if ((childStatus & dirty) ||
|
|
513
512
|
(childStatus & readyNew) || (childStatus & destroyed)) {
|
|
514
|
-
|
|
513
|
+
|
|
514
|
+
// Since the parent can cache 'status', and we might be called before
|
|
515
|
+
// it has been invalidated, we'll read the status directly rather than
|
|
516
|
+
// trusting the cache.
|
|
517
|
+
parentStore = rec.get('store');
|
|
518
|
+
parentStoreKey = rec.get('storeKey');
|
|
519
|
+
parentStatus = parentStore.peekStatus(parentStoreKey);
|
|
515
520
|
if (parentStatus === readyClean) {
|
|
516
521
|
// Note: storeDidChangeProperties() won't put it in the
|
|
517
522
|
// changelog!
|
|
@@ -583,6 +588,7 @@ SC.Record = SC.Object.extend(
|
|
|
583
588
|
recordId = this.get('id'),
|
|
584
589
|
store = this.get('store'),
|
|
585
590
|
storeKey = this.get('storeKey'),
|
|
591
|
+
keysToKeep = {},
|
|
586
592
|
key, valueForKey, typeClass, recHash, attrValue, normChild, isRecord,
|
|
587
593
|
isChild, defaultVal, keyForDataHash, attr;
|
|
588
594
|
|
|
@@ -597,11 +603,17 @@ SC.Record = SC.Object.extend(
|
|
|
597
603
|
typeClass = valueForKey.typeClass;
|
|
598
604
|
if (typeClass) {
|
|
599
605
|
keyForDataHash = valueForKey.get('key') || key; // handle alt keys
|
|
606
|
+
|
|
607
|
+
// As we go, we'll build up a key —> attribute mapping table that we
|
|
608
|
+
// can use when purging keys from the data hash that are not defined
|
|
609
|
+
// in the schema, below.
|
|
610
|
+
keysToKeep[keyForDataHash] = YES;
|
|
611
|
+
|
|
600
612
|
isRecord = SC.typeOf(typeClass.call(valueForKey))===SC.T_CLASS;
|
|
601
613
|
isChild = valueForKey.isNestedRecordTransform;
|
|
602
614
|
if (!isRecord && !isChild) {
|
|
603
615
|
attrValue = this.get(key);
|
|
604
|
-
if(attrValue!==undefined
|
|
616
|
+
if(attrValue!==undefined && (attrValue!==null || includeNull)) {
|
|
605
617
|
attr = this[key];
|
|
606
618
|
// if record attribute, make sure we transform with the fromType
|
|
607
619
|
if(SC.instanceOf(attr, SC.RecordAttribute)) {
|
|
@@ -609,6 +621,9 @@ SC.Record = SC.Object.extend(
|
|
|
609
621
|
}
|
|
610
622
|
dataHash[keyForDataHash] = attrValue;
|
|
611
623
|
}
|
|
624
|
+
else if(!includeNull) {
|
|
625
|
+
keysToKeep[keyForDataHash] = NO;
|
|
626
|
+
}
|
|
612
627
|
|
|
613
628
|
} else if (isChild) {
|
|
614
629
|
attrValue = this.get(key);
|
|
@@ -640,6 +655,18 @@ SC.Record = SC.Object.extend(
|
|
|
640
655
|
}
|
|
641
656
|
}
|
|
642
657
|
|
|
658
|
+
// Finally, we'll go through the underlying data hash and remove anything
|
|
659
|
+
// for which no appropriate attribute is defined. We can do this using
|
|
660
|
+
// the mapping table we prepared above.
|
|
661
|
+
for (key in dataHash) {
|
|
662
|
+
if (!keysToKeep[key]) {
|
|
663
|
+
// Deleting a key doesn't seem too common unless it's a mistake, so
|
|
664
|
+
// we'll log it in debug mode.
|
|
665
|
+
SC.debug("%@: Deleting key from underlying data hash due to normalization: %@", this, key);
|
|
666
|
+
delete dataHash[key];
|
|
667
|
+
}
|
|
668
|
+
}
|
|
669
|
+
|
|
643
670
|
return this;
|
|
644
671
|
},
|
|
645
672
|
|
|
@@ -691,7 +718,7 @@ SC.Record = SC.Object.extend(
|
|
|
691
718
|
Lets you commit this specific record to the store which will trigger
|
|
692
719
|
the appropriate methods in the data source for you.
|
|
693
720
|
|
|
694
|
-
@param {Hash} params optional
|
|
721
|
+
@param {Hash} params optional additional params that will passed down
|
|
695
722
|
to the data source
|
|
696
723
|
@param {boolean} recordOnly optional param if you want to only commit a single
|
|
697
724
|
record if it has a parent.
|
|
@@ -913,7 +940,7 @@ SC.Record = SC.Object.extend(
|
|
|
913
940
|
|
|
914
941
|
if (!id && (pk = recordType.prototype.primaryKey)) {
|
|
915
942
|
id = hash[pk];
|
|
916
|
-
// In case there
|
|
943
|
+
// In case there is not a primary key supplied then we create on
|
|
917
944
|
// on the fly
|
|
918
945
|
sk = id ? store.storeKeyExists(recordType, id) : null;
|
|
919
946
|
if (sk){
|
|
@@ -1336,9 +1363,9 @@ SC.Record.mixin( /** @scope SC.Record */ {
|
|
|
1336
1363
|
opts = opts || {};
|
|
1337
1364
|
var isNested = opts.nested || opts.isNested;
|
|
1338
1365
|
var attr;
|
|
1339
|
-
|
|
1366
|
+
|
|
1340
1367
|
this._throwUnlessRecordTypeDefined(recordType, 'toMany');
|
|
1341
|
-
|
|
1368
|
+
|
|
1342
1369
|
if(isNested){
|
|
1343
1370
|
attr = SC.ChildrenAttribute.attr(recordType, opts);
|
|
1344
1371
|
}
|
|
@@ -1352,7 +1379,7 @@ SC.Record.mixin( /** @scope SC.Record */ {
|
|
|
1352
1379
|
Will return one of the following:
|
|
1353
1380
|
|
|
1354
1381
|
1. `SC.SingleAttribute` that converts the underlying ID to a single
|
|
1355
|
-
record. If you modify this property, it will rewrite the
|
|
1382
|
+
record. If you modify this property, it will rewrite the underlying
|
|
1356
1383
|
ID. It will also modify the inverse of the relationship, if you set it.
|
|
1357
1384
|
2. `SC.ChildAttribute` that you can edit the contents
|
|
1358
1385
|
of this relationship.
|
|
@@ -1376,7 +1403,7 @@ SC.Record.mixin( /** @scope SC.Record */ {
|
|
|
1376
1403
|
}
|
|
1377
1404
|
return attr;
|
|
1378
1405
|
},
|
|
1379
|
-
|
|
1406
|
+
|
|
1380
1407
|
_throwUnlessRecordTypeDefined: function(recordType, relationshipType) {
|
|
1381
1408
|
if (!recordType) {
|
|
1382
1409
|
throw "Attempted to create " + relationshipType + " attribute with " +
|