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
|
@@ -59,3 +59,19 @@ test("Issue a pushError and check if there is conflicts", function() {
|
|
|
59
59
|
ok(!res, "There is a conflict, because of the state, this is expected.");
|
|
60
60
|
});
|
|
61
61
|
|
|
62
|
+
test("A pushRetrieve updating the id of an existing record should update the primary Key cache", function(){
|
|
63
|
+
var tmpid, recFirst, recSecond, sK;
|
|
64
|
+
|
|
65
|
+
tmpid = "@2345235asddsgfd";
|
|
66
|
+
recFirst = { firstname: 'me', lastname: 'too', guid: tmpid };
|
|
67
|
+
recSecond = { firstname: 'me', lastname: 'too', guid: 1 };
|
|
68
|
+
SC.RunLoop.begin();
|
|
69
|
+
var sK = store.loadRecord(SC.Record, recFirst, tmpid);
|
|
70
|
+
SC.RunLoop.end();
|
|
71
|
+
equals(store.idFor(sK),tmpid); //check whether the id is indeed tmpid
|
|
72
|
+
SC.RunLoop.begin();
|
|
73
|
+
store.pushRetrieve(SC.Record,1,recSecond,sK);
|
|
74
|
+
SC.RunLoop.end();
|
|
75
|
+
equals(store.idFor(sK),1); // id should now have been updated
|
|
76
|
+
});
|
|
77
|
+
|
|
@@ -252,7 +252,7 @@ test("A slave does NOT update a relationship [one(slave) to *]", function () {
|
|
|
252
252
|
ok(SC.none(s1.get('relative')), 'precond2 - s1 has no relative');
|
|
253
253
|
equals(r1.get('slave'), s1, 'test1- r1 is related to s1');
|
|
254
254
|
|
|
255
|
-
// case - create slave WITH
|
|
255
|
+
// case - create slave WITH relationship
|
|
256
256
|
SC.RunLoop.begin();
|
|
257
257
|
MyApp.store.loadRecords(MyApp.Relative, [
|
|
258
258
|
{ guid: 'r2'}
|
|
@@ -814,7 +814,7 @@ test("pushDestroy record doesn't create a slave when it's been destroyed [*(mast
|
|
|
814
814
|
|
|
815
815
|
/**
|
|
816
816
|
Standard Sproutcore Behaviors
|
|
817
|
-
|
|
817
|
+
|
|
818
818
|
This is data showing up from the server- after pushing in changes,
|
|
819
819
|
all records should have status READY_CLEAN.
|
|
820
820
|
*/
|
|
@@ -926,6 +926,43 @@ test("Record Attribute can reference renamed attribute key", function () {
|
|
|
926
926
|
equals(s1.get('master'), m1, 's1 should have master of m1');
|
|
927
927
|
});
|
|
928
928
|
|
|
929
|
+
test("Record Attribute can reference renamed attribute key (1 to many)", function () {
|
|
930
|
+
MyApp.Master = SC.Record.extend({
|
|
931
|
+
slave: SC.Record.toOne('MyApp.Slave', {
|
|
932
|
+
inverse: 'masters',
|
|
933
|
+
isMaster: YES
|
|
934
|
+
})
|
|
935
|
+
});
|
|
936
|
+
|
|
937
|
+
MyApp.Slave = SC.Record.extend({
|
|
938
|
+
masters: SC.Record.toMany('MyApp.Master', {
|
|
939
|
+
inverse: 'slave',
|
|
940
|
+
isMaster: NO,
|
|
941
|
+
key: 'master_ids'
|
|
942
|
+
})
|
|
943
|
+
});
|
|
944
|
+
|
|
945
|
+
SC.RunLoop.begin();
|
|
946
|
+
MyApp.store.loadRecords(MyApp.Slave, [
|
|
947
|
+
{ guid: 's1' }
|
|
948
|
+
]);
|
|
949
|
+
SC.RunLoop.end();
|
|
950
|
+
|
|
951
|
+
var s1 = MyApp.store.find(MyApp.Slave, 's1');
|
|
952
|
+
ok(s1.get('status') & SC.Record.READY_CLEAN, 'precond - s1 should be ready clean');
|
|
953
|
+
|
|
954
|
+
SC.RunLoop.begin();
|
|
955
|
+
MyApp.store.loadRecords(MyApp.Master, [
|
|
956
|
+
{ guid: 'm1', slave: 's1' }
|
|
957
|
+
]);
|
|
958
|
+
SC.RunLoop.end();
|
|
959
|
+
|
|
960
|
+
var m1 = MyApp.store.find(MyApp.Master, 'm1');
|
|
961
|
+
|
|
962
|
+
equals(m1.get('slave'), s1, 'm1 should be master of s1');
|
|
963
|
+
same(s1.get('masters').toArray(), [m1], 's1 should have m1 in masters');
|
|
964
|
+
same(s1.get('attributes').master_ids, [m1.get('id')], 's1.attributes should have master_ids key');
|
|
965
|
+
});
|
|
929
966
|
|
|
930
967
|
test("Record Attribute can reference renamed attribute key (on remote side)", function () {
|
|
931
968
|
MyApp.Master = SC.Record.extend({
|
|
@@ -1050,7 +1087,7 @@ test("RecordAttribute flag 'lazilyInstantiate' tests", function () {
|
|
|
1050
1087
|
equals(m1.get('slave'), s1, 'm1 should be master of s1');
|
|
1051
1088
|
|
|
1052
1089
|
// test lazy creation fails on isMaster => NO
|
|
1053
|
-
ok(SC.none(m2), 'm2 should NOT have been
|
|
1090
|
+
ok(SC.none(m2), 'm2 should NOT have been created');
|
|
1054
1091
|
ok(!s2.get('master') ||
|
|
1055
1092
|
s2.get('master').get('status') & SC.Record.ERROR, 's2 should have no master record');
|
|
1056
1093
|
});
|
|
@@ -1096,7 +1133,7 @@ test("RecordAttribute flag 'lazilyInstantiate' can be a function", function () {
|
|
|
1096
1133
|
ok(!s1, 's1 should NOT be created lazily');
|
|
1097
1134
|
|
|
1098
1135
|
// test lazy creation fails on isMaster => NO
|
|
1099
|
-
ok(SC.none(m2), 'm2 should NOT have been
|
|
1136
|
+
ok(SC.none(m2), 'm2 should NOT have been created');
|
|
1100
1137
|
ok(!s2.get('master') ||
|
|
1101
1138
|
s2.get('master').get('status') & SC.Record.ERROR, 's2 should have no master record');
|
|
1102
1139
|
});
|
|
@@ -1175,3 +1212,4 @@ test("RecordAttribute flag 'lazilyInstantiate' will create chains of records pro
|
|
|
1175
1212
|
ok(ss, 'ss should be created lazily');
|
|
1176
1213
|
equals(ss.get('slave'), s, 's should be master of ss');
|
|
1177
1214
|
});
|
|
1215
|
+
|
|
@@ -68,7 +68,7 @@ test("data state=EDITABLE", function() {
|
|
|
68
68
|
});
|
|
69
69
|
|
|
70
70
|
test("should return null when accessing an unknown storeKey", function() {
|
|
71
|
-
equals(store.readDataHash(20000000), null, '
|
|
71
|
+
equals(store.readDataHash(20000000), null, 'should return null for non-existent store key');
|
|
72
72
|
equals(store.storeKeyEditState(storeKey), SC.Store.LOCKED, 'should put into locked edit state');
|
|
73
73
|
});
|
|
74
74
|
|
|
@@ -259,7 +259,7 @@ SC.DateTime = SC.Object.extend(SC.Freezable, SC.Copyable,
|
|
|
259
259
|
|
|
260
260
|
/**
|
|
261
261
|
Returns a new `SC.DateTime` object advanced according the the given parameters.
|
|
262
|
-
Don't use floating point values, it might give
|
|
262
|
+
Don't use floating point values, it might give unpredictable results.
|
|
263
263
|
|
|
264
264
|
@see SC.DateTime#create for the list of options you can pass
|
|
265
265
|
@param {Hash} options the amount of date/time to advance the receiver
|
|
@@ -384,7 +384,7 @@ SC.DateTime = SC.Object.extend(SC.Freezable, SC.Copyable,
|
|
|
384
384
|
@returns {Boolean}
|
|
385
385
|
*/
|
|
386
386
|
isEqual: function(aDateTime) {
|
|
387
|
-
return
|
|
387
|
+
return this.constructor.compare(this, aDateTime) === 0;
|
|
388
388
|
},
|
|
389
389
|
|
|
390
390
|
/**
|
|
@@ -469,6 +469,12 @@ SC.DateTime.mixin(SC.Comparable,
|
|
|
469
469
|
*/
|
|
470
470
|
abbreviatedMonthNames: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
|
|
471
471
|
|
|
472
|
+
/**
|
|
473
|
+
@type Array
|
|
474
|
+
@default ['AM', 'PM']
|
|
475
|
+
*/
|
|
476
|
+
AMPMNames:['AM', 'PM'],
|
|
477
|
+
|
|
472
478
|
/**
|
|
473
479
|
@private
|
|
474
480
|
|
|
@@ -522,7 +528,7 @@ SC.DateTime.mixin(SC.Comparable,
|
|
|
522
528
|
/**
|
|
523
529
|
@private
|
|
524
530
|
|
|
525
|
-
The index of the
|
|
531
|
+
The index of the latest cached value. Used with `_DT_CACHE_MAX_LENGTH` to
|
|
526
532
|
limit the size of the cache.
|
|
527
533
|
|
|
528
534
|
@type Integer
|
|
@@ -851,7 +857,7 @@ SC.DateTime.mixin(SC.Comparable,
|
|
|
851
857
|
local timezone. If you want to create a UTC+2 (CEST) date, for example,
|
|
852
858
|
then you should pass a timezone of -120.
|
|
853
859
|
|
|
854
|
-
@param options one of the three kind of parameters
|
|
860
|
+
@param options one of the three kind of parameters described above
|
|
855
861
|
@returns {SC.DateTime} the SC.DateTime instance that corresponds to the
|
|
856
862
|
passed parameters, possibly fetched from cache
|
|
857
863
|
*/
|
|
@@ -944,7 +950,7 @@ SC.DateTime.mixin(SC.Comparable,
|
|
|
944
950
|
case 'j': throw "%j is not implemented";
|
|
945
951
|
case 'm': opts.month = scanner.scanInt(1, 2); break;
|
|
946
952
|
case 'M': opts.minute = scanner.scanInt(1, 2); break;
|
|
947
|
-
case 'p': opts.meridian = scanner.scanArray(
|
|
953
|
+
case 'p': opts.meridian = scanner.scanArray(this.AMPMNames); break;
|
|
948
954
|
case 'S': opts.second = scanner.scanInt(1, 2); break;
|
|
949
955
|
case 's': opts.millisecond = scanner.scanInt(1, 3); break;
|
|
950
956
|
case 'U': throw "%U is not implemented";
|
|
@@ -982,7 +988,7 @@ SC.DateTime.mixin(SC.Comparable,
|
|
|
982
988
|
delete opts.meridian;
|
|
983
989
|
}
|
|
984
990
|
|
|
985
|
-
d =
|
|
991
|
+
d = this.create(opts);
|
|
986
992
|
|
|
987
993
|
if (!SC.none(check.dayOfWeek) && d.get('dayOfWeek') !== check.dayOfWeek) {
|
|
988
994
|
return null;
|
|
@@ -1042,7 +1048,7 @@ SC.DateTime.mixin(SC.Comparable,
|
|
|
1042
1048
|
case 'j': return this._pad(this._get('dayOfYear'), 3);
|
|
1043
1049
|
case 'm': return this._pad(this._get('month'));
|
|
1044
1050
|
case 'M': return this._pad(this._get('minute'));
|
|
1045
|
-
case 'p': return this._get('hour') > 11 ?
|
|
1051
|
+
case 'p': return this._get('hour') > 11 ? this.AMPMNames[1] : this.AMPMNames[0];
|
|
1046
1052
|
case 'S': return this._pad(this._get('second'));
|
|
1047
1053
|
case 's': return this._pad(this._get('millisecond'), 3);
|
|
1048
1054
|
case 'u': return this._pad(this._get('utc')); //utc
|
|
@@ -394,3 +394,11 @@ test('timezones', function() {
|
|
|
394
394
|
timeShouldBeEqualToHash(dt.toTimezone(-120), {year: o.year, month: o.month, day: o.day, hour: 6, minute: o.minute, second: o.second, millisecond: o.millisecond, timezone: -120 });
|
|
395
395
|
timeShouldBeEqualToHash(dt.toTimezone(-330), {year: o.year, month: o.month, day: o.day, hour: 9, minute: 30, second: o.second, millisecond: o.millisecond, timezone: -330 });
|
|
396
396
|
});
|
|
397
|
+
|
|
398
|
+
test('extend', function() {
|
|
399
|
+
var dateTimeExt = SC.DateTime.extend();
|
|
400
|
+
|
|
401
|
+
// Should parse and produce a date object that is an instance of 'dateTimeExt'
|
|
402
|
+
var parsedDateTimeExt = dateTimeExt.parse('2011-10-15T21:30:00Z');
|
|
403
|
+
ok(SC.instanceOf(parsedDateTimeExt, dateTimeExt), 'Correctly produced an instance of the extended type.');
|
|
404
|
+
});
|
data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/resources/strings.js
CHANGED
|
@@ -9,6 +9,7 @@ SC.stringsFor('English', {
|
|
|
9
9
|
'_SC.DateTime.dayNames': 'Sunday Monday Tuesday Wednesday Thursday Friday Saturday',
|
|
10
10
|
'_SC.DateTime.abbreviatedDayNames': 'Sun Mon Tue Wed Thu Fri Sat',
|
|
11
11
|
'_SC.DateTime.monthNames': 'January February March April May June July August September October November December',
|
|
12
|
-
'_SC.DateTime.abbreviatedMonthNames': 'Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec'
|
|
12
|
+
'_SC.DateTime.abbreviatedMonthNames': 'Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec',
|
|
13
|
+
'_SC.DateTime.AMPMNames':'AM PM'
|
|
13
14
|
}) ;
|
|
14
15
|
|
|
@@ -21,6 +21,7 @@ SC.DateTime.mixin(
|
|
|
21
21
|
SC.DateTime.abbreviatedDayNames = SC.String.w(SC.String.loc('_SC.DateTime.abbreviatedDayNames'));
|
|
22
22
|
SC.DateTime.monthNames = SC.String.w(SC.String.loc('_SC.DateTime.monthNames'));
|
|
23
23
|
SC.DateTime.abbreviatedMonthNames = SC.String.w(SC.String.loc('_SC.DateTime.abbreviatedMonthNames'));
|
|
24
|
+
SC.DateTime.AMPMNames = SC.String.w(SC.String.loc('_SC.DateTime.AMPMNames'));
|
|
24
25
|
}
|
|
25
26
|
|
|
26
27
|
});
|
|
@@ -14,7 +14,7 @@ SC._mapDisplayNamesUseHashForSeenTypes = ['object', 'number', 'boolean', 'array'
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
SC.mapDisplayNames = function(obj, level, path, seenHash, seenArray) {
|
|
17
|
-
if (
|
|
17
|
+
if (SC.browser.engine !== SC.ENGINE.webkit) return ;
|
|
18
18
|
|
|
19
19
|
// Lazily instantiate the hash of types we'll use a hash for the "have we
|
|
20
20
|
// seen this before?" structure. (Some types are not safe to put in a hash
|
|
@@ -51,9 +51,9 @@ SC.mapDisplayNames = function(obj, level, path, seenHash, seenArray) {
|
|
|
51
51
|
else {
|
|
52
52
|
arrayToCheck = seenArray;
|
|
53
53
|
}
|
|
54
|
-
|
|
54
|
+
|
|
55
55
|
if (arrayToCheck && arrayToCheck.indexOf(obj) !== -1) return ;
|
|
56
|
-
|
|
56
|
+
|
|
57
57
|
if (arrayToCheck) {
|
|
58
58
|
arrayToCheck.push(obj) ;
|
|
59
59
|
}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
page in the browser history, which is the default behavior in most browsers.
|
|
12
12
|
|
|
13
13
|
Usually it is best to leave this property set to `NO` in order to prevent the
|
|
14
|
-
user from
|
|
14
|
+
user from inadvertently losing data by pressing the backspace key.
|
|
15
15
|
|
|
16
16
|
@static
|
|
17
17
|
@type Boolean
|
|
@@ -71,7 +71,7 @@ SC.CollectionRowDelegate = {
|
|
|
71
71
|
|
|
72
72
|
/**
|
|
73
73
|
Index set of rows that should have a custom row height. If you need
|
|
74
|
-
|
|
74
|
+
certain rows to have a custom row height, then set this property to a
|
|
75
75
|
non-null value. Otherwise leave it blank to disable custom row heights.
|
|
76
76
|
|
|
77
77
|
@type SC.IndexSet
|
|
@@ -157,7 +157,7 @@ SC.CollectionViewDelegate = {
|
|
|
157
157
|
The default implementation always returns `YES`.
|
|
158
158
|
|
|
159
159
|
@param {SC.CollectionView} view the collection view
|
|
160
|
-
@returns {Boolean} YES to
|
|
160
|
+
@returns {Boolean} YES to allow, NO to prevent it
|
|
161
161
|
*/
|
|
162
162
|
collectionViewShouldBeginDrag: function(view) {
|
|
163
163
|
return YES;
|
|
@@ -214,7 +214,7 @@ SC.AlertPane = SC.PanelPane.extend(
|
|
|
214
214
|
}.property('message').cacheable(),
|
|
215
215
|
|
|
216
216
|
/**
|
|
217
|
-
An optional detailed
|
|
217
|
+
An optional detailed description. Use this string to provide further
|
|
218
218
|
explanation of the condition and, optionally, ways the user can resolve
|
|
219
219
|
the problem.
|
|
220
220
|
|
|
@@ -331,7 +331,6 @@ SC.AlertPane = SC.PanelPane.extend(
|
|
|
331
331
|
useStaticLayout: YES,
|
|
332
332
|
actionKey: SC.BUTTON2_STATUS,
|
|
333
333
|
localize: YES,
|
|
334
|
-
titleMinWidth: 64,
|
|
335
334
|
layout: { right: 5, height: 'auto', width: 'auto', bottom: 0 },
|
|
336
335
|
isCancel: YES,
|
|
337
336
|
action: "dismiss",
|
|
@@ -342,7 +341,6 @@ SC.AlertPane = SC.PanelPane.extend(
|
|
|
342
341
|
useStaticLayout: YES,
|
|
343
342
|
actionKey: SC.BUTTON1_STATUS,
|
|
344
343
|
localize: YES,
|
|
345
|
-
titleMinWidth: 64,
|
|
346
344
|
layout: { left: 0, height: 'auto', width: 'auto', bottom: 0 },
|
|
347
345
|
isDefault: YES,
|
|
348
346
|
action: "dismiss",
|
|
@@ -357,7 +355,6 @@ SC.AlertPane = SC.PanelPane.extend(
|
|
|
357
355
|
useStaticLayout: YES,
|
|
358
356
|
actionKey: SC.BUTTON3_STATUS,
|
|
359
357
|
localize: YES,
|
|
360
|
-
titleMinWidth: 64,
|
|
361
358
|
layout: { left: 0, height: 'auto', width: 'auto', bottom: 0 },
|
|
362
359
|
action: "dismiss",
|
|
363
360
|
isVisible: NO
|
|
@@ -274,11 +274,15 @@ SC.MenuPane = SC.PickerPane.extend(
|
|
|
274
274
|
popup: function(anchorViewOrElement, preferMatrix) {
|
|
275
275
|
var anchor;
|
|
276
276
|
this.beginPropertyChanges();
|
|
277
|
-
if
|
|
278
|
-
|
|
277
|
+
if(anchorViewOrElement){
|
|
278
|
+
if (anchorViewOrElement.isView) {
|
|
279
|
+
this._anchorView = anchorViewOrElement;
|
|
280
|
+
this._setupScrollObservers(anchorViewOrElement);
|
|
281
|
+
} else {
|
|
282
|
+
this._anchorHTMLElement = anchorViewOrElement;
|
|
283
|
+
}
|
|
279
284
|
}
|
|
280
|
-
|
|
281
|
-
this.set('anchor',anchorViewOrElement);
|
|
285
|
+
// this.set('anchor',anchorViewOrElement);
|
|
282
286
|
if (preferMatrix) this.set('preferMatrix',preferMatrix) ;
|
|
283
287
|
|
|
284
288
|
this.adjust('height', this.get('menuHeight'));
|
|
@@ -544,7 +548,16 @@ SC.MenuPane = SC.PickerPane.extend(
|
|
|
544
548
|
controlSize: this.get('controlSize')
|
|
545
549
|
});
|
|
546
550
|
|
|
547
|
-
menuView = this._menuView = SC.View.create(
|
|
551
|
+
menuView = this._menuView = SC.View.create({
|
|
552
|
+
parentViewDidResize: function() {
|
|
553
|
+
this.notifyPropertyChange('frame');
|
|
554
|
+
},
|
|
555
|
+
|
|
556
|
+
viewDidResize: function() {
|
|
557
|
+
|
|
558
|
+
}
|
|
559
|
+
});
|
|
560
|
+
|
|
548
561
|
menuItemViews = this.get('menuItemViews');
|
|
549
562
|
menuView.set('layout', { top: 0, left: 0, height : this.get('menuHeight')});
|
|
550
563
|
menuView.replaceAllChildren(menuItemViews);
|
|
@@ -893,7 +906,7 @@ SC.MenuPane = SC.PickerPane.extend(
|
|
|
893
906
|
}
|
|
894
907
|
|
|
895
908
|
// Scroll to the selected menu item if it's not visible on screen.
|
|
896
|
-
// This is useful for keyboard navigation and
|
|
909
|
+
// This is useful for keyboard navigation and programmatically selecting
|
|
897
910
|
// the selected menu item, as in `SelectButtonView`.
|
|
898
911
|
if (currentMenuItem && currentMenuItem.get('isEnabled')) {
|
|
899
912
|
currentMenuItem.scrollToVisible();
|
|
@@ -42,10 +42,19 @@ SC.ModalPane = SC.Pane.extend(
|
|
|
42
42
|
@returns {SC.ModalPane} receiver
|
|
43
43
|
*/
|
|
44
44
|
paneWillAppend: function(pane) {
|
|
45
|
+
var _tmpPane;
|
|
45
46
|
this._openPaneCount++;
|
|
46
47
|
if (!this.get('isVisibleInWindow')) this.append();
|
|
48
|
+
var panes = SC.RootResponder.responder.panes;
|
|
49
|
+
for(var i=0, iLen=panes.length; i<iLen; i++ ){
|
|
50
|
+
_tmpPane = panes[i];
|
|
51
|
+
if(_tmpPane!==pane) {
|
|
52
|
+
//_tmpPane.set('ariaHidden', YES);
|
|
53
|
+
this._hideShowTextfields(_tmpPane, NO);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
47
56
|
return this ;
|
|
48
|
-
},
|
|
57
|
+
},
|
|
49
58
|
|
|
50
59
|
/** @private
|
|
51
60
|
Called by a pane just after it removes itself. The modal pane can remove
|
|
@@ -56,13 +65,33 @@ SC.ModalPane = SC.Pane.extend(
|
|
|
56
65
|
@returns {SC.ModalPane} receiver
|
|
57
66
|
*/
|
|
58
67
|
paneDidRemove: function(pane) {
|
|
68
|
+
var _tmpPane;
|
|
59
69
|
this._openPaneCount--;
|
|
70
|
+
var panes = SC.RootResponder.responder.panes;
|
|
71
|
+
for(var i=0, iLen=panes.length; i<iLen; i++ ){
|
|
72
|
+
_tmpPane = panes[i];
|
|
73
|
+
if(_tmpPane!==pane) {
|
|
74
|
+
//_tmpPane.set('ariaHidden', NO);
|
|
75
|
+
this._hideShowTextfields(_tmpPane, YES);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
60
78
|
if (this._openPaneCount <= 0) {
|
|
61
79
|
this._openPaneCount = 0 ;
|
|
62
80
|
if (this.get('isVisibleInWindow')) this.remove();
|
|
63
81
|
}
|
|
64
82
|
},
|
|
65
83
|
|
|
84
|
+
/** @private */
|
|
85
|
+
_hideShowTextfields: function(pane, focusable){
|
|
86
|
+
var view;
|
|
87
|
+
for(view in SC.View.views){
|
|
88
|
+
view = SC.View.views[view];
|
|
89
|
+
if (view!==pane && view.get('pane')===pane && view.get('isTextField')){
|
|
90
|
+
view.set('isBrowserFocusable', focusable);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
|
|
66
95
|
/** @private */
|
|
67
96
|
mouseDown: function(evt) {
|
|
68
97
|
var owner = this.get('owner');
|
|
@@ -22,7 +22,7 @@ sc_require('panes/panel');
|
|
|
22
22
|
|
|
23
23
|
Palette pane is a simple way to provide non-modal messaging that won't
|
|
24
24
|
blocks the user's interaction with your application. Palette panes are
|
|
25
|
-
useful for showing important detail
|
|
25
|
+
useful for showing important detail information with flexible position.
|
|
26
26
|
They provide a better user experience than modal panel.
|
|
27
27
|
|
|
28
28
|
@extends SC.PanelPane
|
|
@@ -29,6 +29,12 @@ sc_require('panes/modal');
|
|
|
29
29
|
SC.PanelPane = SC.Pane.extend(
|
|
30
30
|
/** @scope SC.PanelPane.prototype */ {
|
|
31
31
|
|
|
32
|
+
/**
|
|
33
|
+
Walk like a duck.
|
|
34
|
+
@type {Boolean}
|
|
35
|
+
*/
|
|
36
|
+
isPanelPane: YES,
|
|
37
|
+
|
|
32
38
|
/**
|
|
33
39
|
@type Array
|
|
34
40
|
@default ['sc-panel']
|
|
@@ -60,6 +66,23 @@ SC.PanelPane = SC.Pane.extend(
|
|
|
60
66
|
*/
|
|
61
67
|
ariaLabel: null,
|
|
62
68
|
|
|
69
|
+
/**
|
|
70
|
+
The WAI-ARIA labelledby for the panel. Screen readers will use this to tell
|
|
71
|
+
the header or name of your panel if there is no label. This should be an id
|
|
72
|
+
to an element inside the panel.
|
|
73
|
+
|
|
74
|
+
@type String
|
|
75
|
+
*/
|
|
76
|
+
ariaLabelledBy: null,
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
The WAI-ARIA describedby text. Screen readers will use this to speak the description
|
|
80
|
+
of the panel. This should be an id to an element inside the panel.
|
|
81
|
+
|
|
82
|
+
@type String
|
|
83
|
+
*/
|
|
84
|
+
ariaDescribedBy: null,
|
|
85
|
+
|
|
63
86
|
/**
|
|
64
87
|
Indicates that a pane is modal and should not allow clicks to pass
|
|
65
88
|
though to panes underneath it. This will usually cause the pane to show
|
|
@@ -198,5 +221,5 @@ SC.PanelPane = SC.Pane.extend(
|
|
|
198
221
|
return ret ;
|
|
199
222
|
},
|
|
200
223
|
|
|
201
|
-
displayProperties: ['ariaLabel']
|
|
224
|
+
displayProperties: ['ariaLabel', 'ariaLabelledBy', 'ariaDescribedBy']
|
|
202
225
|
});
|