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
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// ==========================================================================
|
|
2
|
+
// Project: Test
|
|
3
|
+
// Copyright: @2011 My Company, Inc.
|
|
4
|
+
// ==========================================================================
|
|
5
|
+
/*globals Test */
|
|
6
|
+
|
|
7
|
+
// This is the theme that defines how your app renders.
|
|
8
|
+
//
|
|
9
|
+
// Your app is given its own theme so it is easier and less
|
|
10
|
+
// messy for you to override specific things just for your
|
|
11
|
+
// app.
|
|
12
|
+
//
|
|
13
|
+
// You don't have to create the whole theme on your own, though:
|
|
14
|
+
// your app's theme is based on SproutCore's Ace theme.
|
|
15
|
+
//
|
|
16
|
+
// NOTE: if you want to change the theme this one is based on, don't
|
|
17
|
+
// forget to change the :css_theme property in your buildfile.
|
|
18
|
+
Test.Theme = SC.AceTheme.create({
|
|
19
|
+
name: 'test'
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
// SproutCore needs to know that your app's theme exists
|
|
23
|
+
SC.Theme.addTheme(Test.Theme);
|
|
24
|
+
|
|
25
|
+
// Setting it as the default theme makes every pane SproutCore
|
|
26
|
+
// creates default to this theme unless otherwise specified.
|
|
27
|
+
SC.defaultTheme = 'test';
|
|
@@ -15,7 +15,7 @@ TestRunner.targetsController = SC.ArrayController.create(
|
|
|
15
15
|
/** @scope TestRunner.targetsController.prototype */ {
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
|
-
Call this method whenever you want to
|
|
18
|
+
Call this method whenever you want to reload the targets from the server.
|
|
19
19
|
*/
|
|
20
20
|
reload: function() {
|
|
21
21
|
var targets = TestRunner.store.find(CoreTools.TARGETS_QUERY);
|
|
@@ -14,7 +14,7 @@ Welcome.targetsController = SC.ArrayController.create(
|
|
|
14
14
|
/** @scope Welcome.targetsController.prototype */ {
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
|
-
Call this method whenever you want to
|
|
17
|
+
Call this method whenever you want to reload the targets from the server.
|
|
18
18
|
*/
|
|
19
19
|
reload: function() {
|
|
20
20
|
var targets = Welcome.store.find(CoreTools.TARGETS_QUERY);
|
|
@@ -66,7 +66,7 @@ SC.Request = SC.Object.extend(SC.Copyable, SC.Freezable,
|
|
|
66
66
|
|
|
67
67
|
You may want to set this to NO if you are making simple CORS requests
|
|
68
68
|
in compatible browsers. See <a href="http://www.w3.org/TR/cors/">CORS
|
|
69
|
-
Spec for more
|
|
69
|
+
Spec for more information.</a>
|
|
70
70
|
|
|
71
71
|
TODO: Add unit tests for this feature
|
|
72
72
|
|
|
@@ -510,6 +510,19 @@ SC.Request.mixin(
|
|
|
510
510
|
var req = this.create().set('address', address).set('type', 'PUT');
|
|
511
511
|
if(body) { req.set('body', body) ; }
|
|
512
512
|
return req ;
|
|
513
|
+
},
|
|
514
|
+
|
|
515
|
+
/**
|
|
516
|
+
Helper method for quickly setting up a PATCH request.
|
|
517
|
+
|
|
518
|
+
@param {String} address url of request
|
|
519
|
+
@param {String} body
|
|
520
|
+
@returns {SC.Request} receiver
|
|
521
|
+
*/
|
|
522
|
+
patchUrl: function(address, body) {
|
|
523
|
+
var req = this.create().set('address', address).set('type', 'PATCH');
|
|
524
|
+
if(body) { req.set('body', body) ; }
|
|
525
|
+
return req ;
|
|
513
526
|
}
|
|
514
527
|
|
|
515
528
|
});
|
|
@@ -24,14 +24,14 @@ SC.Response = SC.Object.extend(
|
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
26
|
Walk like a duck
|
|
27
|
-
|
|
27
|
+
|
|
28
28
|
@type Boolean
|
|
29
29
|
*/
|
|
30
30
|
isResponse: YES,
|
|
31
|
-
|
|
31
|
+
|
|
32
32
|
/**
|
|
33
33
|
Becomes true if there was a failure. Makes this into an error object.
|
|
34
|
-
|
|
34
|
+
|
|
35
35
|
@type Boolean
|
|
36
36
|
@default NO
|
|
37
37
|
*/
|
|
@@ -67,7 +67,7 @@ SC.Response = SC.Object.extend(
|
|
|
67
67
|
@default null
|
|
68
68
|
*/
|
|
69
69
|
request: null,
|
|
70
|
-
|
|
70
|
+
|
|
71
71
|
/**
|
|
72
72
|
The request object that originated this request series. Mostly this is
|
|
73
73
|
useful if you are looking for a reference to the original request. To
|
|
@@ -83,7 +83,7 @@ SC.Response = SC.Object.extend(
|
|
|
83
83
|
return ret ;
|
|
84
84
|
}.property('request').cacheable(),
|
|
85
85
|
|
|
86
|
-
/**
|
|
86
|
+
/**
|
|
87
87
|
Type of request. Must be an HTTP method. Based on the request.
|
|
88
88
|
|
|
89
89
|
@field
|
|
@@ -106,7 +106,7 @@ SC.Response = SC.Object.extend(
|
|
|
106
106
|
}.property('request').cacheable(),
|
|
107
107
|
|
|
108
108
|
/**
|
|
109
|
-
If set then will attempt to automatically parse response as JSON
|
|
109
|
+
If set then will attempt to automatically parse response as JSON
|
|
110
110
|
regardless of headers.
|
|
111
111
|
|
|
112
112
|
@field
|
|
@@ -120,7 +120,7 @@ SC.Response = SC.Object.extend(
|
|
|
120
120
|
|
|
121
121
|
/**
|
|
122
122
|
If set, then will attempt to automatically parse response as XML
|
|
123
|
-
|
|
123
|
+
regardless of headers.
|
|
124
124
|
|
|
125
125
|
@field
|
|
126
126
|
@type Boolean
|
|
@@ -212,7 +212,7 @@ SC.Response = SC.Object.extend(
|
|
|
212
212
|
@default null
|
|
213
213
|
*/
|
|
214
214
|
timedOut: null,
|
|
215
|
-
|
|
215
|
+
|
|
216
216
|
/**
|
|
217
217
|
The timer tracking the timeout
|
|
218
218
|
|
|
@@ -224,7 +224,7 @@ SC.Response = SC.Object.extend(
|
|
|
224
224
|
|
|
225
225
|
// ..........................................................
|
|
226
226
|
// METHODS
|
|
227
|
-
//
|
|
227
|
+
//
|
|
228
228
|
|
|
229
229
|
/**
|
|
230
230
|
Called by the request manager when its time to actually run. This will
|
|
@@ -241,7 +241,7 @@ SC.Response = SC.Object.extend(
|
|
|
241
241
|
req.freeze();
|
|
242
242
|
|
|
243
243
|
// if the source did not cancel the request, then invoke the transport
|
|
244
|
-
// to actually trigger the request. This might receive a response
|
|
244
|
+
// to actually trigger the request. This might receive a response
|
|
245
245
|
// immediately if it is synchronous.
|
|
246
246
|
if (!this.get('isCancelled')) { this.invokeTransport(); }
|
|
247
247
|
|
|
@@ -410,10 +410,10 @@ SC.Response = SC.Object.extend(
|
|
|
410
410
|
handled = this._notifyListeners(listeners, status);
|
|
411
411
|
if (!handled && baseStat !== status) { handled = this._notifyListeners(listeners, baseStat); }
|
|
412
412
|
if (!handled && status !== 0) { handled = this._notifyListeners(listeners, 0); }
|
|
413
|
-
|
|
413
|
+
|
|
414
414
|
return this ;
|
|
415
415
|
},
|
|
416
|
-
|
|
416
|
+
|
|
417
417
|
/**
|
|
418
418
|
String representation of the response object
|
|
419
419
|
|
|
@@ -513,7 +513,7 @@ SC.XHRResponse = SC.Response.extend(
|
|
|
513
513
|
async = !!this.getPath('request.isAsynchronous');
|
|
514
514
|
|
|
515
515
|
if (async) {
|
|
516
|
-
if (!SC.browser.
|
|
516
|
+
if (!SC.browser.isIE && !SC.browser.isOpera) {
|
|
517
517
|
SC.Event.add(rawRequest, 'readystatechange', this,
|
|
518
518
|
this.finishRequest, rawRequest);
|
|
519
519
|
} else {
|
|
@@ -609,12 +609,12 @@ SC.XHRResponse = SC.Response.extend(
|
|
|
609
609
|
this.set('errorObject', error);
|
|
610
610
|
}
|
|
611
611
|
|
|
612
|
-
// set the status - this will trigger changes on
|
|
612
|
+
// set the status - this will trigger changes on related properties
|
|
613
613
|
this.set('status', status);
|
|
614
614
|
}, this);
|
|
615
615
|
|
|
616
616
|
// Avoid memory leaks
|
|
617
|
-
if (!SC.browser.
|
|
617
|
+
if (!SC.browser.isIE && !SC.browser.isOpera) {
|
|
618
618
|
SC.Event.remove(rawRequest, 'readystatechange', this, this.finishRequest);
|
|
619
619
|
} else {
|
|
620
620
|
rawRequest.onreadystatechange = null;
|
|
@@ -223,7 +223,7 @@ test("Timeouts - SC.Request didReceive callback", function() {
|
|
|
223
223
|
ok(elapsed >= 10,
|
|
224
224
|
'timeout must not fire earlier than 10msec - actual %@'.fmt(elapsed));
|
|
225
225
|
} else {
|
|
226
|
-
// We received a response from
|
|
226
|
+
// We received a response from the server, which should never happen
|
|
227
227
|
ok(false, 'timeout did not fire before response was received. should have fired after 10msec. response time: %@msec'.fmt(Date.now() - now));
|
|
228
228
|
}
|
|
229
229
|
});
|
|
@@ -7,7 +7,8 @@
|
|
|
7
7
|
// ==========================================================================
|
|
8
8
|
/*globals */
|
|
9
9
|
|
|
10
|
-
/** @
|
|
10
|
+
/** @deprecated
|
|
11
|
+
@namespace
|
|
11
12
|
A simple mixin called Animatable is provided. What does it do?
|
|
12
13
|
It makes CSS transitions for you, and if they aren't available,
|
|
13
14
|
implements them in JavaScript.
|
|
@@ -19,7 +20,7 @@
|
|
|
19
20
|
- display, in a way. All animating display does is delay setting display:none
|
|
20
21
|
until <em>after</em> the transition duration has passed. This allows you
|
|
21
22
|
to set display:none after fading out. If mixing with CSS transitions, you will
|
|
22
|
-
need to set the delay a tad longer to
|
|
23
|
+
need to set the delay a tad longer to accommodate any delays in beginning the
|
|
23
24
|
transition.
|
|
24
25
|
|
|
25
26
|
## Example Usage:
|
|
@@ -32,6 +33,8 @@
|
|
|
32
33
|
}
|
|
33
34
|
})
|
|
34
35
|
*/
|
|
36
|
+
SC.warn("SC.Animatable is deprecated and will be removed in the next release. Animation can be achieved by using the .animate method on SC.View.");
|
|
37
|
+
|
|
35
38
|
SC.Animatable = {
|
|
36
39
|
/** @scope SC.Animatable.prototype */
|
|
37
40
|
|
|
@@ -255,7 +258,7 @@ SC.Animatable = {
|
|
|
255
258
|
var propertyName = evt.originalEvent.propertyName,
|
|
256
259
|
callback = this._transitionCallbacks[propertyName];
|
|
257
260
|
|
|
258
|
-
// only callback is animation is not disabled; assume if anim was
|
|
261
|
+
// only callback is animation is not disabled; assume if anim was
|
|
259
262
|
// disabled we already invoked the callback..
|
|
260
263
|
if(callback && this._disableAnimation<=0) {
|
|
261
264
|
SC.Animatable.runCallback(callback);
|
|
@@ -754,7 +757,7 @@ SC.Animatable = {
|
|
|
754
757
|
},
|
|
755
758
|
|
|
756
759
|
/**
|
|
757
|
-
|
|
760
|
+
Overridden to support animation.
|
|
758
761
|
|
|
759
762
|
Works by copying the styles to the object's "style" property.
|
|
760
763
|
*/
|
|
@@ -1079,7 +1082,7 @@ SC.mixin(SC.Animatable, {
|
|
|
1079
1082
|
_ticks: 0,
|
|
1080
1083
|
_timer_start_time: null,
|
|
1081
1084
|
|
|
1082
|
-
// the global
|
|
1085
|
+
// the global timer interval
|
|
1083
1086
|
interval: 10,
|
|
1084
1087
|
|
|
1085
1088
|
// the current time (a placeholder, really)
|
|
@@ -7,189 +7,403 @@
|
|
|
7
7
|
|
|
8
8
|
window.SC = window.SC || { MODULE_INFO: {}, LAZY_INSTANTIATION: {} };
|
|
9
9
|
|
|
10
|
-
SC._detectBrowser = function(userAgent, language) {
|
|
11
|
-
var version, webkitVersion, browser = {};
|
|
12
10
|
|
|
11
|
+
/**
|
|
12
|
+
The list of browsers that are automatically identified.
|
|
13
|
+
|
|
14
|
+
@static
|
|
15
|
+
@constant
|
|
16
|
+
*/
|
|
17
|
+
SC.BROWSER = {
|
|
18
|
+
android: 'android',
|
|
19
|
+
blackberry: 'blackberry',
|
|
20
|
+
chrome: 'chrome',
|
|
21
|
+
firefox: 'firefox',
|
|
22
|
+
ie: 'ie',
|
|
23
|
+
opera: 'opera',
|
|
24
|
+
safari: 'safari',
|
|
25
|
+
unknown: 'unknown'
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
The list of devices that are automatically identified.
|
|
30
|
+
|
|
31
|
+
@static
|
|
32
|
+
@constant
|
|
33
|
+
*/
|
|
34
|
+
SC.DEVICE = {
|
|
35
|
+
android: 'android',
|
|
36
|
+
blackberry: 'blackberry',
|
|
37
|
+
desktop: 'desktop',
|
|
38
|
+
ipad: 'ipad',
|
|
39
|
+
iphone: 'iphone',
|
|
40
|
+
ipod: 'ipod',
|
|
41
|
+
mobile: 'mobile'
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
The list of browser engines that are automatically identified.
|
|
46
|
+
|
|
47
|
+
@static
|
|
48
|
+
@constant
|
|
49
|
+
*/
|
|
50
|
+
SC.ENGINE = {
|
|
51
|
+
gecko: 'gecko',
|
|
52
|
+
opera: 'opera',
|
|
53
|
+
presto: 'presto',
|
|
54
|
+
trident: 'trident',
|
|
55
|
+
webkit: 'webkit'
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
The list of operating systems that are automatically identified.
|
|
60
|
+
|
|
61
|
+
@static
|
|
62
|
+
@constant
|
|
63
|
+
*/
|
|
64
|
+
SC.OS = {
|
|
65
|
+
android: 'android',
|
|
66
|
+
blackberry: 'blackberry',
|
|
67
|
+
ios: 'ios',
|
|
68
|
+
linux: 'linux',
|
|
69
|
+
mac: 'mac',
|
|
70
|
+
win: 'windows'
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
Detects browser properties based on the given userAgent and language.
|
|
76
|
+
|
|
77
|
+
@private
|
|
78
|
+
*/
|
|
79
|
+
SC.detectBrowser = function(userAgent, language) {
|
|
80
|
+
var browser = {},
|
|
81
|
+
device,
|
|
82
|
+
engineAndVersion,
|
|
83
|
+
isIOSDevice,
|
|
84
|
+
conExp = '(?:[\\/:\\::\\s:;])', // Match the connecting character
|
|
85
|
+
numExp = '(\\S+[^\\s:;:\\)]|)', // Match the "number"
|
|
86
|
+
nameAndVersion,
|
|
87
|
+
osAndVersion,
|
|
88
|
+
override;
|
|
89
|
+
|
|
90
|
+
// Use the current values if none are provided.
|
|
13
91
|
userAgent = (userAgent || navigator.userAgent).toLowerCase();
|
|
14
92
|
language = language || navigator.language || navigator.browserLanguage;
|
|
15
93
|
|
|
16
|
-
//
|
|
17
|
-
|
|
18
|
-
|
|
94
|
+
// Calculations to determine the device. See SC.DEVICE.
|
|
95
|
+
device =
|
|
96
|
+
userAgent.match( new RegExp('(android|ipad|iphone|ipod|blackberry)') ) ||
|
|
97
|
+
userAgent.match( new RegExp('(mobile)') ) ||
|
|
98
|
+
['', SC.DEVICE.desktop];
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
@name SC.browser.device
|
|
102
|
+
@type {SC.DEVICE}
|
|
103
|
+
*/
|
|
104
|
+
browser.device = device[1];
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
// It simplifies further matching by recognizing this group of devices.
|
|
108
|
+
isIOSDevice =
|
|
109
|
+
browser.device === SC.DEVICE.ipad ||
|
|
110
|
+
browser.device === SC.DEVICE.iphone ||
|
|
111
|
+
browser.device === SC.DEVICE.ipod;
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
// Calculations to determine the name and version. See SC.BROWSER.
|
|
115
|
+
|
|
116
|
+
nameAndVersion =
|
|
117
|
+
// Match the specific names first, avoiding commonly spoofed browsers.
|
|
118
|
+
userAgent.match( new RegExp('(opera|chrome|firefox|android|blackberry)' + conExp + numExp) ) ||
|
|
119
|
+
userAgent.match( new RegExp('(ie|safari)' + conExp + numExp) ) ||
|
|
120
|
+
['', SC.BROWSER.unknown, '0'];
|
|
121
|
+
|
|
122
|
+
// If the device is an iOS device, use SC.BROWSER.safari for browser.name.
|
|
123
|
+
if (isIOSDevice) { nameAndVersion[1] = SC.BROWSER.safari; }
|
|
124
|
+
|
|
125
|
+
// If a `Version` number is found, use that over the `Name` number
|
|
126
|
+
override = userAgent.match( new RegExp('(version)' + conExp + numExp) );
|
|
127
|
+
if (override) { nameAndVersion[2] = override[2]; }
|
|
128
|
+
// If there is no `Version` in Safari, don't use the Safari number since it is
|
|
129
|
+
// the Webkit number.
|
|
130
|
+
else if (nameAndVersion[1] === SC.BROWSER.safari) { nameAndVersion[2] = '0'; }
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
@name SC.browser.name
|
|
135
|
+
@type {SC.BROWSER}
|
|
136
|
+
*/
|
|
137
|
+
browser.name = nameAndVersion[1];
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
@name SC.browser.version
|
|
141
|
+
@type String
|
|
142
|
+
*/
|
|
143
|
+
browser.version = nameAndVersion[2];
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
// Calculations to determine the engine and version. See SC.ENGINE.
|
|
147
|
+
engineAndVersion =
|
|
148
|
+
// Match the specific engines first, avoiding commonly spoofed browsers.
|
|
149
|
+
userAgent.match( new RegExp('(presto)' + conExp + numExp) ) ||
|
|
150
|
+
userAgent.match( new RegExp('(opera|trident|webkit|gecko)' + conExp + numExp) ) ||
|
|
151
|
+
['', SC.BROWSER.unknown, '0'];
|
|
152
|
+
|
|
153
|
+
// If the browser is SC.BROWSER.ie, use SC.ENGINE.trident.
|
|
154
|
+
override = browser.name === SC.BROWSER.ie ? SC.ENGINE.trident : false;
|
|
155
|
+
if (override) { engineAndVersion[1] = override; }
|
|
156
|
+
|
|
157
|
+
// If the engineVersion is unknown and the browser is SC.BROWSER.ie, use
|
|
158
|
+
// browser.version for browser.engineVersion.
|
|
159
|
+
override = browser.name === SC.BROWSER.ie && engineAndVersion[2] === '0';
|
|
160
|
+
if (override) { engineAndVersion[2] = browser.version; }
|
|
161
|
+
|
|
162
|
+
// If a `rv` number is found, use that over the engine number.
|
|
163
|
+
override = userAgent.match( new RegExp('(rv)' + conExp + numExp) );
|
|
164
|
+
if (override) { engineAndVersion[2] = override[2]; }
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
@name SC.browser.engine
|
|
169
|
+
@type {SC.ENGINE}
|
|
170
|
+
@type {SC.BROWSER.unknown}
|
|
171
|
+
*/
|
|
172
|
+
browser.engine = engineAndVersion[1];
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
@name SC.browser.engineVersion
|
|
176
|
+
@type String
|
|
177
|
+
*/
|
|
178
|
+
browser.engineVersion = engineAndVersion[2];
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
// If we don't know the name of the browser, use the name of the engine.
|
|
182
|
+
if (browser.name === SC.BROWSER.unknown) { browser.name = browser.engine; }
|
|
183
|
+
|
|
184
|
+
// Calculations to determine the os and version. See SC.OS.
|
|
185
|
+
osAndVersion =
|
|
186
|
+
// Match the specific names first, avoiding commonly spoofed os's.
|
|
187
|
+
userAgent.match( new RegExp('(blackberry)') ) ||
|
|
188
|
+
userAgent.match( new RegExp('(android|iphone(?: os)|windows(?: nt))' + conExp + numExp) ) ||
|
|
189
|
+
userAgent.match( new RegExp('(os|mac(?: os)(?: x))' + conExp + numExp) ) ||
|
|
190
|
+
userAgent.match( new RegExp('(linux)') ) ||
|
|
191
|
+
[null, SC.BROWSER.unknown, '0'];
|
|
192
|
+
|
|
193
|
+
// Normalize the os name.
|
|
194
|
+
if (isIOSDevice) { osAndVersion[1] = SC.OS.ios; }
|
|
195
|
+
else if (osAndVersion[1] === 'mac os x' || osAndVersion[1] === 'mac os') { osAndVersion[1] = SC.OS.mac; }
|
|
196
|
+
else if (osAndVersion[1] === 'windows nt') { osAndVersion[1] = SC.OS.windows; }
|
|
197
|
+
|
|
198
|
+
// Normalize the os version.
|
|
199
|
+
osAndVersion[2] = osAndVersion[2] ? osAndVersion[2].replace(/_/g, '.') : '0';
|
|
200
|
+
|
|
19
201
|
|
|
20
202
|
/**
|
|
203
|
+
@name SC.browser.os
|
|
204
|
+
@type {SC.OS}
|
|
205
|
+
@type {SC.BROWSER.unknown}
|
|
206
|
+
*/
|
|
207
|
+
browser.os = osAndVersion[1];
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
@name SC.browser.osVersion
|
|
211
|
+
@type String
|
|
212
|
+
*/
|
|
213
|
+
browser.osVersion = osAndVersion[2];
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
// The following long list of properties have all been deprecated. While they
|
|
217
|
+
// are a bit less verbose then the above constants, they lack standardization
|
|
218
|
+
// and can be prone to failure. Rather than continuing to expand this list
|
|
219
|
+
// with more and more one-off comparisons, which often muddle the line between
|
|
220
|
+
// the browser, the engine, the os and the device, it seems more practical to
|
|
221
|
+
// only maintain the 7 identifiable properties listed above: device, name,
|
|
222
|
+
// version, os, osVersion, engine and engineVersion.
|
|
223
|
+
|
|
224
|
+
/** @deprecated Since version 1.7. Use browser.os === SC.OS.windows.
|
|
21
225
|
@name SC.browser.isWindows
|
|
22
226
|
@type Boolean
|
|
23
227
|
*/
|
|
24
|
-
browser.windows = browser.isWindows =
|
|
228
|
+
browser.windows = browser.isWindows = browser.os === SC.OS.windows;
|
|
25
229
|
|
|
26
|
-
/**
|
|
230
|
+
/** @deprecated Since version 1.7. Use browser.os === SC.OS.mac.
|
|
27
231
|
@name SC.browser.isMac
|
|
28
232
|
@type Boolean
|
|
29
233
|
*/
|
|
30
|
-
browser.mac = browser.isMac =
|
|
234
|
+
browser.mac = browser.isMac = browser.os === SC.OS.mac;
|
|
31
235
|
|
|
32
|
-
/**
|
|
236
|
+
/** @deprecated Since version 1.7. Use browser.os === SC.OS.mac && browser.compare(browser.osVersion, '10.7') == 0
|
|
237
|
+
@name SC.browser.isLion
|
|
238
|
+
@type Boolean
|
|
239
|
+
*/
|
|
240
|
+
browser.lion = browser.isLion = !!(/mac os x 10_7/.test(userAgent) && !/like mac os x 10_7/.test(userAgent));
|
|
241
|
+
|
|
242
|
+
/** @deprecated Since version 1.7. Use browser.device === SC.DEVICE.iphone.
|
|
33
243
|
@name SC.browser.isiPhone
|
|
34
244
|
@type Boolean
|
|
35
245
|
*/
|
|
36
|
-
browser.iPhone = browser.isiPhone =
|
|
246
|
+
browser.iPhone = browser.isiPhone = browser.device === SC.DEVICE.iphone;
|
|
37
247
|
|
|
38
|
-
/**
|
|
248
|
+
/** @deprecated Since version 1.7. Use browser.device === SC.DEVICE.ipod.
|
|
39
249
|
@name SC.browser.isiPod
|
|
40
250
|
@type Boolean
|
|
41
251
|
*/
|
|
42
|
-
browser.iPod = browser.isiPod =
|
|
252
|
+
browser.iPod = browser.isiPod = browser.device === SC.DEVICE.ipod;
|
|
43
253
|
|
|
44
|
-
/**
|
|
254
|
+
/** @deprecated Since version 1.7. Use browser.device === SC.DEVICE.ipad.
|
|
45
255
|
@name SC.browser.isiPad
|
|
46
256
|
@type Boolean
|
|
47
257
|
*/
|
|
48
|
-
browser.iPad = browser.isiPad =
|
|
258
|
+
browser.iPad = browser.isiPad = browser.device === SC.DEVICE.ipad;
|
|
49
259
|
|
|
50
|
-
/**
|
|
260
|
+
/** @deprecated Since version 1.7. Use browser.os === SC.OS.ios.
|
|
51
261
|
@name SC.browser.isiOS
|
|
52
262
|
@type Boolean
|
|
53
263
|
*/
|
|
54
|
-
browser.iOS = browser.isiOS = browser.
|
|
264
|
+
browser.iOS = browser.isiOS = browser.os === SC.OS.ios;
|
|
55
265
|
|
|
56
|
-
/**
|
|
266
|
+
/** @deprecated Since version 1.7. Use browser.os === SC.OS.android or browser.name === SC.BROWSER.android or browser.device === SC.DEVICE.android.
|
|
57
267
|
@name SC.browser.isAndroid
|
|
58
268
|
@type Boolean
|
|
59
269
|
*/
|
|
60
|
-
browser.android = browser.isAndroid =
|
|
270
|
+
browser.android = browser.isAndroid = browser.os === SC.OS.android;
|
|
61
271
|
|
|
62
|
-
/**
|
|
272
|
+
/** @deprecated Since version 1.7. Use browser.version or browser.engineVersion.
|
|
63
273
|
@name SC.browser.opera
|
|
64
274
|
@type String
|
|
65
275
|
*/
|
|
66
|
-
browser.opera =
|
|
276
|
+
browser.opera = browser.name === SC.BROWSER.opera ? browser.version : '0';
|
|
67
277
|
|
|
68
|
-
/**
|
|
278
|
+
/** @deprecated Since version 1.7. Use browser.name === SC.BROWSER.opera.
|
|
69
279
|
@name SC.browser.isOpera
|
|
70
280
|
@type Boolean
|
|
71
281
|
*/
|
|
72
|
-
browser.isOpera =
|
|
282
|
+
browser.isOpera = browser.name === SC.BROWSER.opera;
|
|
73
283
|
|
|
74
|
-
/**
|
|
284
|
+
/** @deprecated Since version 1.7. Use browser.version or browser.engineVersion.
|
|
75
285
|
@name SC.browser.msie
|
|
76
286
|
@type String
|
|
77
287
|
*/
|
|
78
|
-
browser.msie =
|
|
288
|
+
browser.msie = browser.name === SC.BROWSER.ie ? browser.version : '0';
|
|
79
289
|
|
|
80
|
-
/**
|
|
290
|
+
/** @deprecated Since version 1.7. Use browser.engine === SC.ENGINE.trident.
|
|
81
291
|
@name SC.browser.isIE
|
|
82
292
|
@type Boolean
|
|
83
293
|
*/
|
|
84
|
-
browser.isIE =
|
|
294
|
+
browser.isIE = browser.engine === SC.ENGINE.trident;
|
|
85
295
|
|
|
86
|
-
/**
|
|
296
|
+
/** @deprecated Since version 1.7. Use browser.compare(browser.version, '8') <= 0.
|
|
87
297
|
@name SC.browser.isIE8OrLower
|
|
88
298
|
@type Boolean
|
|
89
299
|
*/
|
|
90
|
-
browser.isIE8OrLower =
|
|
300
|
+
browser.isIE8OrLower = browser.name === SC.BROWSER.ie && browser.version <= 8;
|
|
91
301
|
|
|
92
|
-
/**
|
|
302
|
+
/** @deprecated Since version 1.7. Use browser.version or browser.engineVersion.
|
|
93
303
|
@name SC.browser.mozilla
|
|
94
304
|
@type String
|
|
95
305
|
*/
|
|
96
|
-
browser.mozilla =
|
|
306
|
+
browser.mozilla = browser.engine === SC.ENGINE.gecko ? browser.version : '0';
|
|
97
307
|
|
|
98
|
-
/**
|
|
308
|
+
/** @deprecated Since version 1.7. Use browser.name === SC.BROWSER.firefox or browser.engine === SC.ENGINE.gecko.
|
|
99
309
|
@name SC.browser.isMozilla
|
|
100
310
|
@type Boolean
|
|
101
311
|
*/
|
|
102
|
-
browser.isMozilla =
|
|
312
|
+
browser.isMozilla = browser.engine === SC.ENGINE.gecko;
|
|
103
313
|
|
|
104
|
-
/**
|
|
314
|
+
/** @deprecated Since version 1.7. Use browser.engineVersion.
|
|
105
315
|
@name SC.browser.webkit
|
|
106
316
|
@type String
|
|
107
317
|
*/
|
|
108
|
-
browser.webkit =
|
|
318
|
+
browser.webkit = browser.engine === SC.ENGINE.webkit ? browser.engineVersion : '0';
|
|
109
319
|
|
|
110
|
-
/**
|
|
320
|
+
/** @deprecated Since version 1.7. Use browser.engine === SC.ENGINE.webkit.
|
|
111
321
|
@name SC.browser.isWebkit
|
|
112
322
|
@type Boolean
|
|
113
323
|
*/
|
|
114
|
-
browser.isWebkit =
|
|
324
|
+
browser.isWebkit = browser.engine === SC.ENGINE.webkit;
|
|
115
325
|
|
|
116
|
-
/**
|
|
326
|
+
/** @deprecated Since version 1.7. Use browser.version.
|
|
117
327
|
@name SC.browser.chrome
|
|
118
328
|
@type String
|
|
119
329
|
*/
|
|
120
|
-
browser.chrome =
|
|
330
|
+
browser.chrome = browser.name === SC.BROWSER.chrome ? browser.version : '0';
|
|
121
331
|
|
|
122
|
-
/**
|
|
332
|
+
/** @deprecated Since version 1.7. Use browser.name === SC.BROWSER.chrome.
|
|
123
333
|
@name SC.browser.isChrome
|
|
124
334
|
@type Boolean
|
|
125
335
|
*/
|
|
126
|
-
browser.isChrome =
|
|
336
|
+
browser.isChrome = browser.name === SC.BROWSER.chrome;
|
|
127
337
|
|
|
128
|
-
/**
|
|
338
|
+
/** @deprecated Since version 1.7. Use browser.version.
|
|
129
339
|
@name SC.browser.mobileSafari
|
|
130
340
|
@type String
|
|
131
341
|
*/
|
|
132
|
-
browser.mobileSafari =
|
|
342
|
+
browser.mobileSafari = browser.os === SC.OS.ios ? browser.version : '0';
|
|
133
343
|
|
|
134
|
-
/**
|
|
344
|
+
/** @deprecated Since version 1.7. Use browser.name === SC.BROWSER.safari && browser.os === SC.OS.ios
|
|
135
345
|
@name SC.browser.isMobileSafari
|
|
136
346
|
@type Boolean
|
|
137
347
|
*/
|
|
138
|
-
browser.isMobileSafari =
|
|
348
|
+
browser.isMobileSafari = browser.name === SC.BROWSER.safari && browser.os === SC.OS.ios;
|
|
139
349
|
|
|
140
|
-
/**
|
|
350
|
+
/** @deprecated Since version 1.7. Use browser.version.
|
|
141
351
|
@name SC.browser.iPadSafari
|
|
142
352
|
@type String
|
|
143
353
|
*/
|
|
144
|
-
browser.iPadSafari = browser.
|
|
354
|
+
browser.iPadSafari = browser.device === SC.DEVICE.ipad && browser.name === SC.BROWSER.safari ?
|
|
355
|
+
browser.version : 0;
|
|
145
356
|
|
|
146
|
-
/**
|
|
357
|
+
/** @deprecated Since version 1.7. Use browser.device === SC.DEVICE.ipad && browser.name === SC.BROWSER.safari
|
|
147
358
|
@name SC.browser.isiPadSafari
|
|
148
359
|
@type Boolean
|
|
149
360
|
*/
|
|
150
|
-
browser.isiPadSafari =
|
|
361
|
+
browser.isiPadSafari = browser.device === SC.DEVICE.ipad && browser.name === SC.BROWSER.safari;
|
|
151
362
|
|
|
152
|
-
/**
|
|
363
|
+
/** @deprecated Since version 1.7. Use browser.version.
|
|
153
364
|
@name SC.browser.iPhoneSafari
|
|
154
365
|
@type String
|
|
155
366
|
*/
|
|
156
|
-
browser.iPhoneSafari = browser.
|
|
367
|
+
browser.iPhoneSafari = browser.device === SC.DEVICE.iphone && browser.name === SC.BROWSER.safari ?
|
|
368
|
+
browser.version : 0;
|
|
157
369
|
|
|
158
|
-
/**
|
|
370
|
+
/** @deprecated Since version 1.7. Use browser.device === SC.DEVICE.iphone && browser.name === SC.BROWSER.safari
|
|
159
371
|
@name SC.browser.isiPhoneSafari
|
|
160
372
|
@type Boolean
|
|
161
373
|
*/
|
|
162
|
-
browser.isiPhoneSafari =
|
|
374
|
+
browser.isiPhoneSafari = browser.device === SC.DEVICE.iphone && browser.name === SC.BROWSER.safari;
|
|
163
375
|
|
|
164
|
-
/**
|
|
376
|
+
/** @deprecated Since version 1.7. Use browser.version.
|
|
165
377
|
@name SC.browser.iPodSafari
|
|
166
378
|
@type String
|
|
167
379
|
*/
|
|
168
|
-
browser.iPodSafari = browser.
|
|
380
|
+
browser.iPodSafari = browser.device === SC.DEVICE.ipod && browser.name === SC.BROWSER.safari ?
|
|
381
|
+
browser.version : 0;
|
|
169
382
|
|
|
170
|
-
/**
|
|
383
|
+
/** @deprecated Since version 1.7. Use browser.device === SC.DEVICE.ipod && browser.name === SC.BROWSER.safari
|
|
171
384
|
@name SC.browser.isiPodSafari
|
|
172
385
|
@type Boolean
|
|
173
386
|
*/
|
|
174
|
-
browser.isiPodSafari =
|
|
387
|
+
browser.isiPodSafari = browser.device === SC.DEVICE.ipod && browser.name === SC.BROWSER.safari;
|
|
175
388
|
|
|
176
|
-
/**
|
|
389
|
+
/** @deprecated Since version 1.7. Use SC.platform.standalone.
|
|
177
390
|
@name SC.browser.isiOSHomeScreen
|
|
178
391
|
@type Boolean
|
|
179
392
|
*/
|
|
180
|
-
browser.isiOSHomeScreen = browser.isMobileSafari &&
|
|
393
|
+
browser.isiOSHomeScreen = browser.isMobileSafari && !(/apple.*mobile.*safari/.test(userAgent));
|
|
181
394
|
|
|
182
|
-
/**
|
|
395
|
+
/** @deprecated Since version 1.7. Use browser.version.
|
|
183
396
|
@name SC.browser.safari
|
|
184
397
|
@type String
|
|
185
398
|
*/
|
|
186
|
-
browser.safari = browser.
|
|
399
|
+
browser.safari = browser.name === SC.BROWSER.safari && browser.os === SC.OS.mac ?
|
|
400
|
+
browser.version : 0;
|
|
187
401
|
|
|
188
|
-
/**
|
|
402
|
+
/** @deprecated Since version 1.7. Use browser.name === SC.BROWSER.safari && browser.os === SC.OS.mac.
|
|
189
403
|
@name SC.browser.isSafari
|
|
190
404
|
@type Boolean
|
|
191
405
|
*/
|
|
192
|
-
browser.isSafari =
|
|
406
|
+
browser.isSafari = browser.name === SC.BROWSER.safari && browser.os === SC.OS.mac;
|
|
193
407
|
|
|
194
408
|
/**
|
|
195
409
|
@name SC.browser.language
|
|
@@ -198,6 +412,12 @@ SC._detectBrowser = function(userAgent, language) {
|
|
|
198
412
|
browser.language = language.split('-', 1)[0];
|
|
199
413
|
|
|
200
414
|
/**
|
|
415
|
+
@name SC.browser.countryCode
|
|
416
|
+
@type String
|
|
417
|
+
*/
|
|
418
|
+
browser.countryCode = language.split('-')[1] ? language.split('-')[1].toLowerCase() : undefined;
|
|
419
|
+
|
|
420
|
+
/** @deprecated Since version 1.7. Use browser.name. See SC.BROWSER for possible values.
|
|
201
421
|
Possible values:
|
|
202
422
|
|
|
203
423
|
- 'msie'
|
|
@@ -212,20 +432,32 @@ SC._detectBrowser = function(userAgent, language) {
|
|
|
212
432
|
@type String
|
|
213
433
|
@default 'unknown'
|
|
214
434
|
*/
|
|
215
|
-
browser.current = browser.
|
|
435
|
+
browser.current = browser.name;
|
|
436
|
+
|
|
216
437
|
return browser;
|
|
217
438
|
};
|
|
218
439
|
|
|
219
440
|
|
|
220
441
|
/** @class
|
|
221
442
|
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
443
|
+
This object contains information about the browser environment SproutCore is
|
|
444
|
+
running in. This includes the following properties:
|
|
445
|
+
|
|
446
|
+
- browser.device ex. SC.DEVICE.ipad
|
|
447
|
+
- browser.name ex. SC.BROWSER.chrome
|
|
448
|
+
- browser.version ex. '16.0.2.34'
|
|
449
|
+
- browser.os ex. SC.OS.mac
|
|
450
|
+
- browser.osVersion ex. '10.6'
|
|
451
|
+
- browser.engine ex. SC.ENGINE.webkit
|
|
452
|
+
- browser.engineVersion ex. '533.29'
|
|
453
|
+
|
|
454
|
+
Note: User agent sniffing does not provide guaranteed results and spoofing may
|
|
455
|
+
affect the accuracy. Therefore, as a general rule, it is much better
|
|
456
|
+
to rely on the browser's verified capabilities in SC.platform.
|
|
457
|
+
|
|
458
|
+
Based on the unit test samples, the most stable browser properties appear to
|
|
459
|
+
be `engine` and `engineVersion`.
|
|
228
460
|
|
|
229
461
|
@since SproutCore 1.0
|
|
230
462
|
*/
|
|
231
|
-
SC.browser = SC.
|
|
463
|
+
SC.browser = SC.detectBrowser();
|