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
|
@@ -223,7 +223,7 @@ SC.ArrayController = SC.Controller.extend(SC.Array, SC.SelectionSupport,
|
|
|
223
223
|
},
|
|
224
224
|
|
|
225
225
|
/**
|
|
226
|
-
Removes the passed object from the array. If the
|
|
226
|
+
Removes the passed object from the array. If the underlying content
|
|
227
227
|
is a single object, then this simply sets the content to null. Otherwise
|
|
228
228
|
it will call removeObject() on the content.
|
|
229
229
|
|
|
@@ -410,12 +410,12 @@ SC.ArrayController = SC.Controller.extend(SC.Array, SC.SelectionSupport,
|
|
|
410
410
|
},
|
|
411
411
|
|
|
412
412
|
_scac_arrayContentDidChange: function(start, removed, added) {
|
|
413
|
+
this._scac_cached = NO;
|
|
413
414
|
this.arrayContentDidChange(start, removed, added);
|
|
414
415
|
if (this._kvo_enumerable_property_chains) {
|
|
415
416
|
var addedObjects = this.slice(start, start+added);
|
|
416
417
|
this.setupEnumerablePropertyChains(addedObjects);
|
|
417
418
|
}
|
|
418
|
-
this._scac_cached = NO;
|
|
419
419
|
this.updateSelectionAfterContentChange();
|
|
420
420
|
},
|
|
421
421
|
|
|
@@ -524,7 +524,7 @@ SC.ArrayController = SC.Controller.extend(SC.Array, SC.SelectionSupport,
|
|
|
524
524
|
}.observes('orderBy'),
|
|
525
525
|
|
|
526
526
|
/** @private
|
|
527
|
-
|
|
527
|
+
Whenever the content "status" property changes, relay out.
|
|
528
528
|
*/
|
|
529
529
|
_scac_contentStatusDidChange: function() {
|
|
530
530
|
this.notifyPropertyChange('status');
|
|
@@ -39,6 +39,48 @@ SC.mixin(SC.Object.prototype, /** @scope SC.Object.prototype */ {
|
|
|
39
39
|
// schedule the timer
|
|
40
40
|
return SC.Timer.schedule({ target: this, action: f, interval: interval });
|
|
41
41
|
},
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
A convenience method which makes it easy to coalesce invocations to ensure
|
|
45
|
+
that the method is only called once. This is useful if you need to schedule
|
|
46
|
+
a call but only want it to trigger once after some defined interval has
|
|
47
|
+
passed.
|
|
48
|
+
|
|
49
|
+
@param {Function|String} method reference or method name
|
|
50
|
+
@param {Number} interval
|
|
51
|
+
*/
|
|
52
|
+
invokeOnceLater: function(method, interval) {
|
|
53
|
+
if (interval === undefined) { interval = 1 ; }
|
|
54
|
+
|
|
55
|
+
var timers = this._sc_invokeOnceLaterTimers,
|
|
56
|
+
methodGuid, existingTimer, f, newTimer;
|
|
57
|
+
|
|
58
|
+
// ensure we always deal with real functions
|
|
59
|
+
if (SC.typeOf(method) === SC.T_STRING) {
|
|
60
|
+
method = this[method];
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
methodGuid = SC.guidFor(method);
|
|
64
|
+
|
|
65
|
+
if(!timers) {
|
|
66
|
+
this._sc_invokeOnceLaterTimers = timers = {};
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
existingTimer = timers[methodGuid];
|
|
70
|
+
if(existingTimer) existingTimer.invalidate();
|
|
71
|
+
|
|
72
|
+
f = function() {
|
|
73
|
+
// GC assistance for IE
|
|
74
|
+
delete timers[methodGuid];
|
|
75
|
+
return method.apply(this, arguments);
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
// schedule the timer
|
|
79
|
+
newTimer = SC.Timer.schedule({ target: this, action: f, interval: interval });
|
|
80
|
+
timers[methodGuid] = newTimer;
|
|
81
|
+
|
|
82
|
+
return newTimer;
|
|
83
|
+
},
|
|
42
84
|
|
|
43
85
|
/**
|
|
44
86
|
Lookup the named property path and then invoke the passed function,
|
|
@@ -29,12 +29,12 @@ SC.RunLoop = SC.RunLoop.extend(
|
|
|
29
29
|
|
|
30
30
|
Note that timers should fire only once per run loop to avoid the
|
|
31
31
|
situation where a timer might cause an infinite loop by constantly
|
|
32
|
-
rescheduling itself
|
|
32
|
+
rescheduling itself every time it is fired.
|
|
33
33
|
*/
|
|
34
34
|
endRunLoop: function() {
|
|
35
35
|
this.fireExpiredTimers(); // fire them timers!
|
|
36
36
|
var ret = sc_super(); // do everything else
|
|
37
|
-
this.scheduleNextTimeout(); // schedule a
|
|
37
|
+
this.scheduleNextTimeout(); // schedule a timeout if timers remain
|
|
38
38
|
return ret;
|
|
39
39
|
},
|
|
40
40
|
|
|
@@ -161,3 +161,4 @@ SC.RunLoop = SC.RunLoop.extend(
|
|
|
161
161
|
|
|
162
162
|
// Recreate the currentRunLoop with the new methods
|
|
163
163
|
SC.RunLoop.currentRunLoop = SC.RunLoop.create();
|
|
164
|
+
SC.RunLoop.runLoopClass = SC.RunLoop;
|
|
@@ -54,6 +54,13 @@ SC.supplement(String.prototype,
|
|
|
54
54
|
var args = SC.$A(arguments);
|
|
55
55
|
args.unshift(this);
|
|
56
56
|
return SC.String.locWithDefault.apply(SC.String, args);
|
|
57
|
+
},
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
@see SC.String.mult
|
|
61
|
+
*/
|
|
62
|
+
mult: function(value) {
|
|
63
|
+
return SC.String.mult(this, value);
|
|
57
64
|
}
|
|
58
65
|
|
|
59
66
|
});
|
|
@@ -56,7 +56,7 @@ SC.ActionSupport =
|
|
|
56
56
|
actionContext: null,
|
|
57
57
|
|
|
58
58
|
/**
|
|
59
|
-
Perform the action. If an action
|
|
59
|
+
Perform the action. If an action parameter is not provided, then
|
|
60
60
|
the action defaults to the `action` property.
|
|
61
61
|
|
|
62
62
|
@param {String} [action] The action to fire.
|
|
@@ -99,12 +99,12 @@ SC.DelegateSupport = {
|
|
|
99
99
|
|
|
100
100
|
while(idx<len) {
|
|
101
101
|
ret = arguments[idx++];
|
|
102
|
-
if (ret && ret[key]
|
|
102
|
+
if (ret && ret[key] != undefined) {
|
|
103
103
|
return ret.get ? ret.get(key) : ret[key] ;
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
106
|
|
|
107
|
-
return (this[key]
|
|
107
|
+
return (this[key] != undefined) ? this.get(key) : undefined ;
|
|
108
108
|
}
|
|
109
109
|
|
|
110
110
|
};
|
|
@@ -183,7 +183,7 @@ SC.ResponderContext = {
|
|
|
183
183
|
},
|
|
184
184
|
|
|
185
185
|
_notifyWillLoseFirstResponder: function(responder, cur, root, evt) {
|
|
186
|
-
if (cur === root) return ; // nothing to do
|
|
186
|
+
if (!cur || cur === root) return ; // nothing to do
|
|
187
187
|
|
|
188
188
|
cur.willLoseFirstResponder(responder, evt);
|
|
189
189
|
cur.set('hasFirstResponder', NO);
|
|
@@ -193,7 +193,7 @@ SC.ResponderContext = {
|
|
|
193
193
|
},
|
|
194
194
|
|
|
195
195
|
_notifyDidBecomeFirstResponder: function(responder, cur, root) {
|
|
196
|
-
if (cur === root) return ; // nothing to do
|
|
196
|
+
if (!cur || cur === root) return ; // nothing to do
|
|
197
197
|
|
|
198
198
|
var next = this.nextResponderFor(cur);
|
|
199
199
|
if (next) this._notifyDidBecomeFirstResponder(responder, next, root);
|
|
@@ -220,7 +220,7 @@ SC.ResponderContext = {
|
|
|
220
220
|
|
|
221
221
|
@param {String} action name of action
|
|
222
222
|
@param {Object} sender object sending the action
|
|
223
|
-
@param {Object} context optional
|
|
223
|
+
@param {Object} context optional additional context info
|
|
224
224
|
@returns {SC.Responder} the responder that handled it or null
|
|
225
225
|
*/
|
|
226
226
|
sendAction: function(action, sender, context) {
|
|
@@ -65,7 +65,7 @@ SC.SelectionSupport = {
|
|
|
65
65
|
have groups or want to otherwise limit the kinds of objects that can be
|
|
66
66
|
selected.
|
|
67
67
|
|
|
68
|
-
the default
|
|
68
|
+
the default implementation returns firstObject property.
|
|
69
69
|
|
|
70
70
|
@returns {Object} first selectable object
|
|
71
71
|
*/
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
SC.bodyOverflowArbitrator is a central object responsible for controlling the overflow on the body element.
|
|
3
|
+
|
|
4
|
+
Use it from views that would otherwise set the body overflow style directly; call requestHidden to ask for
|
|
5
|
+
the body to have overflow:hidden, and call requestVisible to ask for the body to be visible.
|
|
6
|
+
|
|
7
|
+
Call withdrawRequest to register that you no longer have any interest in the body overflow setting. Don't
|
|
8
|
+
forget to do this, or your object could be affecting the body overflow long after it's no longer relevant.
|
|
9
|
+
|
|
10
|
+
When calling requestHidden, requestVisible, and withdrawRequest, pass your object as the first argument so
|
|
11
|
+
that its request can be associated with its GUID.
|
|
12
|
+
|
|
13
|
+
When calling requestHidden or requestVisible, you may optionally pass true as a second argument to signify
|
|
14
|
+
that your desire for hidden or visible overflow is important. An important visible-request will override
|
|
15
|
+
any other, but an important hidden-request will override a normal visible-request. A normal visible-request
|
|
16
|
+
will in turn override a normal hidden-request.
|
|
17
|
+
*/
|
|
18
|
+
SC.bodyOverflowArbitrator = SC.Object.create(/**@scope SC.bodyOverflowArbitrator.prototype */{
|
|
19
|
+
/** Request that the body be given overflow:hidden;. Pass your object, then (optionally) true to confer importance. */
|
|
20
|
+
requestHidden: function(from,important) { this._makeRequest(from,-1-9*!!important); },
|
|
21
|
+
|
|
22
|
+
/** Request that the body be given overflow:visible;. Pass your object, then (optionally) true to confer importance. */
|
|
23
|
+
requestVisible: function(from,important) { this._makeRequest(from,1+9*!!important); },
|
|
24
|
+
|
|
25
|
+
/** State that your object no longer cares about the body overflow. */
|
|
26
|
+
withdrawRequest: function(from) {
|
|
27
|
+
if(!from) return;
|
|
28
|
+
var guid = SC.guidFor(from);
|
|
29
|
+
if(this._requests[guid]) delete this._requests[guid];
|
|
30
|
+
this.setOverflow();
|
|
31
|
+
},
|
|
32
|
+
|
|
33
|
+
/** Perform the action of setting the overflow depending on what requests are currently registered. Does nothing if there are no requests. */
|
|
34
|
+
setOverflow: function() {
|
|
35
|
+
var overflow = this._decideOverflow();
|
|
36
|
+
if(overflow!==undefined) document.body.style.overflow = overflow ? "auto" : "hidden";
|
|
37
|
+
// console.log("Body Overflow Arbitrator now decides "+(overflow===undefined?"that overflow is unimportant.":"to use overflow:"+(overflow===true?'visible':"hidden")+";")+" Requests are:",this._requests);
|
|
38
|
+
},
|
|
39
|
+
|
|
40
|
+
_makeRequest: function(from,value) {
|
|
41
|
+
if(!from) return;
|
|
42
|
+
var guid = SC.guidFor(from);
|
|
43
|
+
this._requests[guid] = value;
|
|
44
|
+
this.setOverflow();
|
|
45
|
+
},
|
|
46
|
+
|
|
47
|
+
_requests: {},
|
|
48
|
+
_decideOverflow: function() {
|
|
49
|
+
var haveHidden, haveVisible, haveImportantHidden, haveImportantVisible,
|
|
50
|
+
reqs = this._requests, req;
|
|
51
|
+
for(var i in reqs) {
|
|
52
|
+
if((req=reqs[i])<0) haveHidden=YES;
|
|
53
|
+
if(req<-1) haveImportantHidden=YES;
|
|
54
|
+
if(req>0) haveVisible=YES;
|
|
55
|
+
if(req>1) haveImportantVisible=YES;
|
|
56
|
+
}
|
|
57
|
+
if(haveImportantVisible) return YES; //important-visible takes all.
|
|
58
|
+
if(haveVisible && haveImportantHidden) return NO; //important-hidden beats regular-visible.
|
|
59
|
+
if(haveVisible) return YES; //regular-visible beats regular-hidden
|
|
60
|
+
if(haveHidden) return NO; //if there is a hidden, it can win now.
|
|
61
|
+
return undefined; //if nobody cared, return undefined to prevent work.
|
|
62
|
+
}
|
|
63
|
+
});
|
|
@@ -41,7 +41,7 @@ SC.Pane.reopen(
|
|
|
41
41
|
var nextValidKeyView;
|
|
42
42
|
|
|
43
43
|
// Handle tab key presses if we don't have a first responder already
|
|
44
|
-
if (
|
|
44
|
+
if (evt.keyCode === 9 && !this.get('firstResponder')) {
|
|
45
45
|
// Cycle forwards by default, backwards if the shift key is held
|
|
46
46
|
if (evt.shiftKey) {
|
|
47
47
|
nextValidKeyView = this.get('previousValidKeyView');
|
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
// License: Licensed under MIT license (see license.js)
|
|
6
6
|
// ==========================================================================
|
|
7
7
|
sc_require("panes/pane");
|
|
8
|
-
|
|
9
8
|
SC.Pane.reopen(
|
|
10
9
|
/** @scope SC.Pane.prototype */ {
|
|
11
10
|
|
|
@@ -37,7 +36,9 @@ SC.Pane.reopen(
|
|
|
37
36
|
wDim.height = document.body.clientHeight;
|
|
38
37
|
|
|
39
38
|
// IE7 is the only browser which reports clientHeight _including_ scrollbar.
|
|
40
|
-
if (SC.browser.
|
|
39
|
+
if (SC.browser.name === SC.BROWSER.ie &&
|
|
40
|
+
SC.browser.compareVersion(SC.browser.version, "7") === 0) {
|
|
41
|
+
|
|
41
42
|
var scrollbarSize = SC.platform.get('scrollbarSize');
|
|
42
43
|
if (document.body.scrollWidth > wDim.width) {
|
|
43
44
|
wDim.width -= scrollbarSize;
|
|
@@ -79,13 +80,47 @@ SC.Pane.reopen(
|
|
|
79
80
|
*/
|
|
80
81
|
windowSizeDidChange: function(oldSize, newSize) {
|
|
81
82
|
this.set('currentWindowSize', newSize) ;
|
|
83
|
+
this.setBodyOverflowIfNeeded();
|
|
82
84
|
this.parentViewDidResize(); // start notifications.
|
|
83
85
|
return this ;
|
|
84
86
|
},
|
|
85
87
|
|
|
88
|
+
/**
|
|
89
|
+
Changes the body overflow according to whether minWidth or minHeight
|
|
90
|
+
are present in the layout hash. If there are no minimums, nothing
|
|
91
|
+
is done unless true is passed as the first argument. If so, then
|
|
92
|
+
overflow:hidden; will be used.
|
|
93
|
+
|
|
94
|
+
It's possible to call this manually and pass YES to remove overflow
|
|
95
|
+
if setting layout to a hash without minWidth and minHeight, but it's
|
|
96
|
+
probably not a good idea to do so unless you're doing it from the main
|
|
97
|
+
pane. There's only one body tag, after all, and if this is called from
|
|
98
|
+
multiple different panes, the panes could fight over whether it gets
|
|
99
|
+
an overflow if care isn't taken!
|
|
100
|
+
|
|
101
|
+
@param {Boolean} [force] force a style to be set even if there are
|
|
102
|
+
no minimums.
|
|
103
|
+
*/
|
|
104
|
+
setBodyOverflowIfNeeded: function(force) {
|
|
105
|
+
//Code to get rid of Lion rubberbanding.
|
|
106
|
+
var layout = this.get('layout'),
|
|
107
|
+
size = this.get('currentWindowSize');
|
|
108
|
+
if(!layout || !size || !size.width || !size.height) return;
|
|
109
|
+
var minW = layout.minWidth,
|
|
110
|
+
minH = layout.minHeight;
|
|
111
|
+
if(force===true || minW || minH) {
|
|
112
|
+
if( (minH && size.height<minH) || (minW && size.width<minW) ) {
|
|
113
|
+
SC.bodyOverflowArbitrator.requestVisible(this);
|
|
114
|
+
} else {
|
|
115
|
+
SC.bodyOverflowArbitrator.requestHidden(this);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
|
|
86
120
|
/** @private */
|
|
87
121
|
paneLayoutDidChange: function() {
|
|
88
122
|
this.invokeOnce(this.updateLayout);
|
|
123
|
+
this.setBodyOverflowIfNeeded();
|
|
89
124
|
}.observes('layout'),
|
|
90
125
|
|
|
91
126
|
recomputeDependentProperties: function(original) {
|
|
@@ -6,6 +6,10 @@
|
|
|
6
6
|
// ==========================================================================
|
|
7
7
|
|
|
8
8
|
sc_require('panes/pane');
|
|
9
|
+
sc_require('panes/keyboard');
|
|
10
|
+
sc_require('panes/layout');
|
|
11
|
+
sc_require('panes/manipulation');
|
|
12
|
+
sc_require('panes/visibility');
|
|
9
13
|
|
|
10
14
|
/** @class
|
|
11
15
|
|
|
@@ -30,10 +34,31 @@ SC.MainPane = SC.Pane.extend({
|
|
|
30
34
|
/** @private */
|
|
31
35
|
layout: { top: 0, left: 0, bottom: 0, right: 0, minHeight:200, minWidth:200 },
|
|
32
36
|
|
|
37
|
+
init:function(){
|
|
38
|
+
var wDim = {x: 0, y: 0, width: 1000, height: 1000},
|
|
39
|
+
layout = this.get('layout'), isOverflowing = false;
|
|
40
|
+
|
|
41
|
+
//Initial computation to get ride of Lion rubberbanding.
|
|
42
|
+
if (document && document.body) {
|
|
43
|
+
wDim.width = document.body.clientWidth;
|
|
44
|
+
wDim.height = document.body.clientHeight;
|
|
45
|
+
|
|
46
|
+
if( layout.minHeight || layout.minWidth ) {
|
|
47
|
+
if( (layout.minHeight && wDim.height<layout.minHeight) || (layout.minWidth && wDim.width<layout.minWidth) ) {
|
|
48
|
+
SC.bodyOverflowArbitrator.requestVisible(this);
|
|
49
|
+
} else {
|
|
50
|
+
// to avoid Lion rubberbanding
|
|
51
|
+
SC.bodyOverflowArbitrator.requestHidden(this);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
sc_super();
|
|
56
|
+
},
|
|
57
|
+
|
|
33
58
|
/** @private - extends SC.Pane's method */
|
|
34
59
|
paneDidAttach: function() {
|
|
35
|
-
var ret = sc_super()
|
|
36
|
-
|
|
60
|
+
var ret = sc_super(),
|
|
61
|
+
responder = this.rootResponder;
|
|
37
62
|
responder.makeMainPane(this);
|
|
38
63
|
if (!responder.get('keyRootView')) responder.makeKeyPane(this);
|
|
39
64
|
return ret ;
|
|
@@ -43,8 +68,5 @@ SC.MainPane = SC.Pane.extend({
|
|
|
43
68
|
acceptsKeyPane: YES,
|
|
44
69
|
|
|
45
70
|
/** @private */
|
|
46
|
-
classNames: ['sc-main']
|
|
47
|
-
|
|
48
|
-
ariaRole: 'application'
|
|
49
|
-
|
|
71
|
+
classNames: ['sc-main']
|
|
50
72
|
});
|
|
@@ -6,8 +6,18 @@
|
|
|
6
6
|
// ==========================================================================
|
|
7
7
|
|
|
8
8
|
sc_require('views/view');
|
|
9
|
+
sc_require('views/view/acceleration');
|
|
10
|
+
sc_require('views/view/cursor');
|
|
11
|
+
sc_require('views/view/enabled');
|
|
12
|
+
sc_require('views/view/keyboard');
|
|
13
|
+
sc_require('views/view/layout');
|
|
14
|
+
sc_require('views/view/manipulation');
|
|
15
|
+
sc_require('views/view/theming');
|
|
16
|
+
sc_require('views/view/touch');
|
|
17
|
+
sc_require('views/view/visibility');
|
|
9
18
|
sc_require('mixins/responder_context');
|
|
10
19
|
|
|
20
|
+
|
|
11
21
|
/**
|
|
12
22
|
Indicates a value has a mixed state of both on and off.
|
|
13
23
|
|
|
@@ -439,9 +449,6 @@ SC.Pane = SC.View.extend(SC.ResponderContext,
|
|
|
439
449
|
if (dom && dom.parentNode) dom.parentNode.removeChild(dom) ;
|
|
440
450
|
dom = null ;
|
|
441
451
|
|
|
442
|
-
// layer is cached by SC.View in this._view_layer, remove it so that the DOM node can be freed
|
|
443
|
-
this.destroyLayer();
|
|
444
|
-
|
|
445
452
|
// remove intercept
|
|
446
453
|
this._removeIntercept();
|
|
447
454
|
|
data/lib/frameworks/sproutcore/frameworks/core_foundation/protocols/sparse_array_delegate.js
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
array content as needed.
|
|
14
14
|
|
|
15
15
|
Your object does not need to implement all of these methods, but it should
|
|
16
|
-
at least
|
|
16
|
+
at least implement the sparseArrayDidRequestIndex() method.
|
|
17
17
|
|
|
18
18
|
@since SproutCore 1.0
|
|
19
19
|
*/
|
|
@@ -43,7 +43,7 @@ SC.SparseArrayDelegate = {
|
|
|
43
43
|
/**
|
|
44
44
|
Invoked when an object requests an index on the sparse array that has not
|
|
45
45
|
yet been set. You should implement this method to set the object at the
|
|
46
|
-
index using
|
|
46
|
+
index using provideObjectAtIndex() or provideObjectsInRange() on the
|
|
47
47
|
sparse array. You can call these methods immediately during this handler
|
|
48
48
|
or you can wait and call them at a later time once you have loaded any
|
|
49
49
|
data.
|
|
@@ -5,16 +5,81 @@
|
|
|
5
5
|
// License: Licensed under MIT license (see license.js)
|
|
6
6
|
// ==========================================================================
|
|
7
7
|
|
|
8
|
+
|
|
8
9
|
SC.mixin(SC.browser,
|
|
9
10
|
/** @scope SC.browser */ {
|
|
10
11
|
|
|
11
12
|
/**
|
|
13
|
+
Version Strings should not be compared against Numbers. For example,
|
|
14
|
+
the version "1.20" is greater than "1.2" and less than "1.200", but as
|
|
15
|
+
Numbers, they are all 1.2.
|
|
16
|
+
|
|
17
|
+
Pass in one of the browser versions: SC.browser.version,
|
|
18
|
+
SC.browser.engineVersion or SC.browser.osVersion and a String to compare
|
|
19
|
+
against. The function will split each version on the decimals and compare
|
|
20
|
+
the parts numerically.
|
|
21
|
+
|
|
22
|
+
Examples:
|
|
23
|
+
|
|
24
|
+
SC.browser.compare('1.20', '1.2') == 18
|
|
25
|
+
SC.browser.compare('1.08', '1.8') == 0
|
|
26
|
+
SC.browser.compare('1.1.1', '1.1.004') == -3
|
|
27
|
+
|
|
28
|
+
@param version {String} One of SC.browser.version, SC.browser.engineVersion or SC.browser.osVersion
|
|
29
|
+
@param other {String} The version to compare against.
|
|
30
|
+
@return {Number} The difference between the versions at the first difference.
|
|
31
|
+
*/
|
|
32
|
+
compare: function(version, other) {
|
|
33
|
+
var coerce,
|
|
34
|
+
parts,
|
|
35
|
+
tests;
|
|
36
|
+
|
|
37
|
+
// Ensure that the versions are Strings.
|
|
38
|
+
if (typeof version === 'number' || typeof other === 'number') {
|
|
39
|
+
SC.warn('SC.browser.compare(): Versions compared against Numbers may not provide accurate results. Use a String of decimal separated Numbers instead.')
|
|
40
|
+
version = String(version);
|
|
41
|
+
other = String(other);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// This function transforms the String to a Number or NaN
|
|
45
|
+
coerce = function (part) {
|
|
46
|
+
return Number(part.match(/^[0-9]+/));
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
parts = SC.A(version.split('.')).map(coerce);
|
|
50
|
+
tests = SC.A(other.split('.')).map(coerce);
|
|
51
|
+
|
|
52
|
+
// Test each part stopping when there is a difference.
|
|
53
|
+
for (var i = 0; i < tests.length; i++) {
|
|
54
|
+
var check = parts[i] - tests[i];
|
|
55
|
+
if (isNaN(check)) return 0;
|
|
56
|
+
if (check !== 0) return check;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
return 0;
|
|
60
|
+
},
|
|
61
|
+
|
|
62
|
+
/** @deprecated Since 1.7. Use SC.browser.compare(version, otherVersion) instead.
|
|
63
|
+
|
|
12
64
|
Pass any number of arguments, and this will check them against the browser
|
|
13
65
|
version split on ".". If any of them are not equal, return the inequality.
|
|
14
66
|
If as many arguments as were passed in are equal, return 0. If something
|
|
15
67
|
is NaN, return 0.
|
|
16
68
|
*/
|
|
69
|
+
|
|
70
|
+
// Deprecation Note:
|
|
71
|
+
//
|
|
72
|
+
// This function forces the comparison against the value of
|
|
73
|
+
// SC.browser.version, but the old value of SC.browser.version would
|
|
74
|
+
// occasionally be the browser's version or the layout engine's version,
|
|
75
|
+
// which could cause unexpected results. As well, there was no way to
|
|
76
|
+
// compare the actual browser version or OS version.
|
|
17
77
|
compareVersion: function () {
|
|
78
|
+
SC.warn('SC.browser.compareVersion() has been deprecated. Please ' +
|
|
79
|
+
'use SC.browser.compare() instead. Example: ' +
|
|
80
|
+
'SC.browser.compareVersion(16,0,912) < 0 becomes ' +
|
|
81
|
+
'SC.browser.compare(SC.browser.engineVersion, \'16.0.912\').');
|
|
82
|
+
|
|
18
83
|
if (this._versionSplit === undefined) {
|
|
19
84
|
var coerce = function (part) {
|
|
20
85
|
return Number(part.match(/^[0-9]+/));
|
|
@@ -28,9 +93,8 @@ SC.mixin(SC.browser,
|
|
|
28
93
|
if (isNaN(check)) return 0;
|
|
29
94
|
if (check !== 0) return check;
|
|
30
95
|
}
|
|
31
|
-
|
|
96
|
+
|
|
32
97
|
return 0;
|
|
33
98
|
}
|
|
34
99
|
|
|
35
100
|
});
|
|
36
|
-
|