sproutcore 1.7.1.beta → 1.8.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
@@ -1,8 +1,8 @@
|
|
1
1
|
/* SC.LabelView */
|
2
2
|
|
3
3
|
.sc-label-view {
|
4
|
-
font-weight: normal;
|
5
4
|
text-align: left;
|
5
|
+
white-space: pre-line; /* Allow strings to include '\n' characters, etc., like many other UI frameworks */
|
6
6
|
|
7
7
|
&.icon {
|
8
8
|
position: relative;
|
@@ -27,21 +27,17 @@
|
|
27
27
|
|
28
28
|
&.sc-large-size {
|
29
29
|
font-size: 18px;
|
30
|
-
line-height: 24px;
|
31
30
|
}
|
32
31
|
|
33
32
|
&.sc-regular-size {
|
34
33
|
font-size: 12px;
|
35
|
-
line-height: 19px;
|
36
34
|
}
|
37
35
|
|
38
36
|
&.sc-small-size {
|
39
37
|
font-size: 11px;
|
40
|
-
line-height: 14px;
|
41
38
|
}
|
42
39
|
|
43
40
|
&.sc-tiny-size {
|
44
41
|
font-size: 9px;
|
45
|
-
line-height: 12px;
|
46
42
|
}
|
47
43
|
}
|
@@ -2,7 +2,6 @@
|
|
2
2
|
|
3
3
|
.sc-text-field-view {
|
4
4
|
border:none;
|
5
|
-
z-index:100;
|
6
5
|
overflow: visible;
|
7
6
|
background :white;
|
8
7
|
.border {
|
@@ -54,9 +53,11 @@
|
|
54
53
|
-webkit-appearance:none;
|
55
54
|
}
|
56
55
|
|
57
|
-
|
58
56
|
.sc-hint {
|
59
|
-
|
57
|
+
z-index: 1;
|
58
|
+
}
|
59
|
+
|
60
|
+
.sc-hint, .hint {
|
60
61
|
position: absolute;
|
61
62
|
top: 3px;
|
62
63
|
left: 1px;
|
@@ -67,7 +68,8 @@
|
|
67
68
|
font-size: 12px;
|
68
69
|
}
|
69
70
|
|
70
|
-
&.text-area .sc-hint
|
71
|
+
&.text-area .sc-hint,
|
72
|
+
&.text-area .hint {
|
71
73
|
top: 2px;
|
72
74
|
left: 3px;
|
73
75
|
right: 3px;
|
@@ -83,7 +85,7 @@
|
|
83
85
|
color: #B3B3B3 !important;
|
84
86
|
}
|
85
87
|
|
86
|
-
.
|
88
|
+
.webkit &{
|
87
89
|
&.focus {
|
88
90
|
outline: auto 7px -webkit-focus-ring-color;
|
89
91
|
outline-offset: -2px;
|
@@ -115,11 +117,8 @@
|
|
115
117
|
.border {
|
116
118
|
border:1px inset;
|
117
119
|
}
|
118
|
-
input.field {
|
119
|
-
padding-bottom: 1px;
|
120
|
-
}
|
121
120
|
textarea.field {
|
122
121
|
height: 100%;
|
123
122
|
}
|
124
|
-
}
|
123
|
+
}
|
125
124
|
}
|
@@ -12,12 +12,12 @@ sc_require('core') ;
|
|
12
12
|
|
13
13
|
This bit of meta-programming magic can install a benchmark handler on any
|
14
14
|
object method. When a benchmark is installed, the time required to execute
|
15
|
-
the method will be printed to the console log
|
15
|
+
the method will be printed to the console log every time the method is
|
16
16
|
called.
|
17
17
|
|
18
18
|
This class can be used to implement benchmarking. To use this object, just
|
19
19
|
call start() with a key name and end() with a keyname. The benchmark will
|
20
|
-
be logged. If you set verbose = true, then benchmark will log
|
20
|
+
be logged. If you set verbose = true, then benchmark will log every time it
|
21
21
|
saves a bench. Otherwise, it just keeps stats. You can get the stats by
|
22
22
|
calling report().
|
23
23
|
|
@@ -6,7 +6,7 @@
|
|
6
6
|
// ==========================================================================
|
7
7
|
|
8
8
|
/*jslint evil:true */
|
9
|
-
|
9
|
+
sc_require('tasks/task');
|
10
10
|
SC.LOG_MODULE_LOADING = YES;
|
11
11
|
|
12
12
|
/**
|
@@ -50,10 +50,10 @@ SC.Module = SC.Object.create(/** @scope SC.Module */ {
|
|
50
50
|
@returns {Boolean} YES if already loaded, NO otherwise
|
51
51
|
*/
|
52
52
|
loadModule: function(moduleName, target, method) {
|
53
|
-
var module = SC.MODULE_INFO[moduleName], callbacks, targets
|
54
|
-
|
55
|
-
|
56
|
-
|
53
|
+
var module = SC.MODULE_INFO[moduleName], callbacks, targets,
|
54
|
+
args = SC.A(arguments).slice(3),
|
55
|
+
log = SC.LOG_MODULE_LOADING,
|
56
|
+
idx, len;
|
57
57
|
|
58
58
|
// Treat the first parameter as the callback if the target is a function and there is
|
59
59
|
// no method supplied.
|
@@ -62,9 +62,7 @@ SC.Module = SC.Object.create(/** @scope SC.Module */ {
|
|
62
62
|
target = null;
|
63
63
|
}
|
64
64
|
|
65
|
-
if (log)
|
66
|
-
SC.Logger.log("SC.Module: Attempting to load '%@'".fmt(moduleName));
|
67
|
-
}
|
65
|
+
if (log) SC.debug("SC.Module: Attempting to load '%@'", moduleName);
|
68
66
|
|
69
67
|
// If we couldn't find anything in the SC.MODULE_INFO hash, we don't have any record of the
|
70
68
|
// requested module.
|
@@ -78,14 +76,36 @@ SC.Module = SC.Object.create(/** @scope SC.Module */ {
|
|
78
76
|
|
79
77
|
// If the module is already loaded, execute the callback immediately if SproutCore is loaded,
|
80
78
|
// or else as soon as SC has finished loading.
|
81
|
-
if (module.isLoaded) {
|
82
|
-
if (log) SC.
|
79
|
+
if (module.isLoaded && !module.isWaitingForRunLoop) {
|
80
|
+
if (log) SC.debug("SC.Module: Module '%@' already loaded.", moduleName);
|
81
|
+
|
82
|
+
// we can't just eval it if its dependencies have not been met...
|
83
|
+
if (!this._dependenciesMetForModule(moduleName)) {
|
84
|
+
// we can't let it return normally here, because we need the module to wait until the end of the run loop.
|
85
|
+
// This is because the module may set up bindings.
|
86
|
+
this._addCallbackForModule(moduleName, target, method, args);
|
87
|
+
|
88
|
+
this._loadDependenciesForModule(moduleName);
|
89
|
+
|
90
|
+
return NO;
|
91
|
+
}
|
83
92
|
|
84
93
|
// If the module has finished loading and we have the string
|
85
94
|
// representation, try to evaluate it now.
|
86
95
|
if (module.source) {
|
87
|
-
if (log) SC.
|
96
|
+
if (log) SC.debug("SC.Module: Evaluating JavaScript for module '%@'.", moduleName);
|
88
97
|
this._evaluateStringLoadedModule(module);
|
98
|
+
|
99
|
+
// we can't let it return normally here, because we need the module to wait until the end of the run loop.
|
100
|
+
// This is because the module may set up bindings.
|
101
|
+
this._addCallbackForModule(moduleName, target, method, args);
|
102
|
+
|
103
|
+
this.invokeLast(function() {
|
104
|
+
module.isReady = YES;
|
105
|
+
this._moduleDidBecomeReady(moduleName);
|
106
|
+
});
|
107
|
+
|
108
|
+
return NO;
|
89
109
|
}
|
90
110
|
|
91
111
|
if (method) {
|
@@ -101,24 +121,20 @@ SC.Module = SC.Object.create(/** @scope SC.Module */ {
|
|
101
121
|
|
102
122
|
return YES;
|
103
123
|
}
|
124
|
+
|
125
|
+
// The module has loaded, but is waiting for the end of the run loop before it is "ready";
|
126
|
+
// we just need to add the callback.
|
127
|
+
else if (module.isWaitingForRunLoop) {
|
128
|
+
this._addCallbackForModule(moduleName, target, method, args);
|
129
|
+
}
|
104
130
|
// The module is not yet loaded, so register the callback and, if necessary, begin loading
|
105
131
|
// the code.
|
106
132
|
else {
|
107
|
-
if (log) SC.
|
133
|
+
if (log) SC.debug("SC.Module: Module '%@' is not loaded, loading now.", moduleName);
|
108
134
|
|
109
135
|
// If this method is called more than once for the same module before it is finished
|
110
136
|
// loading, we might have multiple callbacks that need to be executed once it loads.
|
111
|
-
|
112
|
-
// Retrieve array of callbacks from MODULE_INFO hash.
|
113
|
-
callbacks = module.callbacks || [] ;
|
114
|
-
|
115
|
-
if (method) {
|
116
|
-
callbacks.push(function() {
|
117
|
-
SC.Module._invokeCallback(moduleName, target, method, args);
|
118
|
-
});
|
119
|
-
}
|
120
|
-
|
121
|
-
module.callbacks = callbacks;
|
137
|
+
this._addCallbackForModule(moduleName, target, method, args);
|
122
138
|
|
123
139
|
// If this is the first time the module has been requested, determine its dependencies
|
124
140
|
// and begin loading them as well as the JavaScript for this module.
|
@@ -133,6 +149,21 @@ SC.Module = SC.Object.create(/** @scope SC.Module */ {
|
|
133
149
|
}
|
134
150
|
},
|
135
151
|
|
152
|
+
_addCallbackForModule: function(moduleName, target, method, args) {
|
153
|
+
var module = SC.MODULE_INFO[moduleName];
|
154
|
+
|
155
|
+
// Retrieve array of callbacks from MODULE_INFO hash.
|
156
|
+
var callbacks = module.callbacks || [] ;
|
157
|
+
|
158
|
+
if (method) {
|
159
|
+
callbacks.push(function() {
|
160
|
+
SC.Module._invokeCallback(moduleName, target, method, args);
|
161
|
+
});
|
162
|
+
}
|
163
|
+
|
164
|
+
module.callbacks = callbacks;
|
165
|
+
},
|
166
|
+
|
136
167
|
/**
|
137
168
|
@private
|
138
169
|
|
@@ -151,7 +182,7 @@ SC.Module = SC.Object.create(/** @scope SC.Module */ {
|
|
151
182
|
|
152
183
|
if (module.isLoading || module.isLoaded) return;
|
153
184
|
|
154
|
-
if (SC.LOG_MODULE_LOADING) SC.
|
185
|
+
if (SC.LOG_MODULE_LOADING) SC.debug("SC.Module: Prefetching module '%@'.", moduleName);
|
155
186
|
this._loadDependenciesForModule(moduleName);
|
156
187
|
this._loadCSSForModule(moduleName);
|
157
188
|
this._loadJavaScriptForModule(moduleName);
|
@@ -174,7 +205,7 @@ SC.Module = SC.Object.create(/** @scope SC.Module */ {
|
|
174
205
|
var idx, len;
|
175
206
|
|
176
207
|
if (SC.LOG_MODULE_LOADING) {
|
177
|
-
SC.
|
208
|
+
SC.debug("SC.Module: Module '%@' is marked for lazy instantiation, instantiating it now…", moduleName);
|
178
209
|
}
|
179
210
|
|
180
211
|
len = lazyInfo.length;
|
@@ -208,7 +239,9 @@ SC.Module = SC.Object.create(/** @scope SC.Module */ {
|
|
208
239
|
_evaluateStringLoadedModule: function(module) {
|
209
240
|
var moduleSource = module.source;
|
210
241
|
|
242
|
+
// so, force a run loop.
|
211
243
|
jQuery.globalEval(moduleSource);
|
244
|
+
|
212
245
|
delete module.source;
|
213
246
|
|
214
247
|
if (module.cssSource) {
|
@@ -250,7 +283,7 @@ SC.Module = SC.Object.create(/** @scope SC.Module */ {
|
|
250
283
|
url = styles[idx] ;
|
251
284
|
|
252
285
|
if (url.length > 0) {
|
253
|
-
if (SC.LOG_MODULE_LOADING) SC.
|
286
|
+
if (SC.LOG_MODULE_LOADING) SC.debug("SC.Module: Loading CSS file in '%@' -> '%@'", moduleName, url);
|
254
287
|
el = document.createElement('link') ;
|
255
288
|
el.setAttribute('href', url) ;
|
256
289
|
el.setAttribute('rel', "stylesheet") ;
|
@@ -291,7 +324,7 @@ SC.Module = SC.Object.create(/** @scope SC.Module */ {
|
|
291
324
|
}
|
292
325
|
|
293
326
|
if (url.length > 0) {
|
294
|
-
if (SC.LOG_MODULE_LOADING) SC.
|
327
|
+
if (SC.LOG_MODULE_LOADING) SC.debug("SC.Module: Loading JavaScript file in '%@' -> '%@'", moduleName, url);
|
295
328
|
|
296
329
|
el = document.createElement('script') ;
|
297
330
|
el.setAttribute('type', "text/javascript") ;
|
@@ -300,12 +333,16 @@ SC.Module = SC.Object.create(/** @scope SC.Module */ {
|
|
300
333
|
if (SC.browser.isIE) {
|
301
334
|
el.onreadystatechange = function() {
|
302
335
|
if (this.readyState == 'complete' || this.readyState == 'loaded') {
|
303
|
-
SC.
|
336
|
+
SC.run(function() {
|
337
|
+
SC.Module._moduleDidLoad(moduleName);
|
338
|
+
});
|
304
339
|
}
|
305
340
|
};
|
306
341
|
} else {
|
307
342
|
el.onload = function() {
|
308
|
-
SC.
|
343
|
+
SC.run(function(){
|
344
|
+
SC.Module._moduleDidLoad(moduleName);
|
345
|
+
});
|
309
346
|
};
|
310
347
|
}
|
311
348
|
|
@@ -389,7 +426,7 @@ SC.Module = SC.Object.create(/** @scope SC.Module */ {
|
|
389
426
|
|
390
427
|
dependents.push(moduleName) ;
|
391
428
|
|
392
|
-
if (log) SC.
|
429
|
+
if (log) SC.debug("SC.Module: '%@' depends on '%@', loading dependency…", moduleName, requiredModuleName);
|
393
430
|
|
394
431
|
// Load dependencies
|
395
432
|
SC.Module.loadModule(requiredModuleName) ;
|
@@ -448,7 +485,7 @@ SC.Module = SC.Object.create(/** @scope SC.Module */ {
|
|
448
485
|
var moduleInfo = SC.MODULE_INFO[moduleName], callbacks ;
|
449
486
|
if (!moduleInfo) return ; // shouldn't happen, but recover anyway
|
450
487
|
|
451
|
-
if (SC.LOG_MODULE_LOADING) SC.
|
488
|
+
if (SC.LOG_MODULE_LOADING) SC.debug("SC.Module: Module '%@' has completed loading, invoking callbacks.", moduleName);
|
452
489
|
|
453
490
|
callbacks = moduleInfo.callbacks || [] ;
|
454
491
|
|
@@ -462,12 +499,29 @@ SC.Module = SC.Object.create(/** @scope SC.Module */ {
|
|
462
499
|
var module = moduleInfo[moduleName];
|
463
500
|
var log = SC.LOG_MODULE_LOADING;
|
464
501
|
|
465
|
-
if (log) SC.
|
502
|
+
if (log) SC.debug("SC.Module: Evaluating and invoking callbacks for '%@'.", moduleName);
|
466
503
|
|
467
504
|
if (module.source) {
|
468
505
|
this._evaluateStringLoadedModule(module);
|
469
506
|
}
|
470
|
-
|
507
|
+
|
508
|
+
// this is ugly, but a module evaluated late like this won't be done instantiating
|
509
|
+
// until the end of a run loop. Also, the code here is not structured in a way that makes
|
510
|
+
// it easy to "add a step" before saying a module is ready. And finally, invokeLater doesn't
|
511
|
+
// accept arguments; hence, the closure.
|
512
|
+
module.isWaitingForRunLoop = YES;
|
513
|
+
this.invokeLast(function() {
|
514
|
+
module.isReady = YES;
|
515
|
+
this._moduleDidBecomeReady(moduleName);
|
516
|
+
});
|
517
|
+
},
|
518
|
+
|
519
|
+
_moduleDidBecomeReady: function(moduleName) {
|
520
|
+
var moduleInfo = SC.MODULE_INFO;
|
521
|
+
var module = moduleInfo[moduleName];
|
522
|
+
var log = SC.LOG_MODULE_LOADING;
|
523
|
+
|
524
|
+
module.isWaitingForRunLoop = NO;
|
471
525
|
|
472
526
|
if (SC.isReady) {
|
473
527
|
SC.Module._invokeCallbacksForModule(moduleName) ;
|
@@ -487,10 +541,11 @@ SC.Module = SC.Object.create(/** @scope SC.Module */ {
|
|
487
541
|
dependentName = dependents[idx];
|
488
542
|
dependent = moduleInfo[dependentName];
|
489
543
|
if (dependent.isLoaded && this._dependenciesMetForModule(dependentName)) {
|
490
|
-
if (log) SC.
|
544
|
+
if (log) SC.debug("SC.Module: Now that %@ has loaded, all dependencies for a dependent %@ are met.", moduleName, dependentName);
|
491
545
|
this._evaluateAndInvokeCallbacks(dependentName);
|
492
546
|
}
|
493
547
|
}
|
548
|
+
|
494
549
|
},
|
495
550
|
|
496
551
|
/** @private
|
@@ -508,16 +563,16 @@ SC.Module = SC.Object.create(/** @scope SC.Module */ {
|
|
508
563
|
var dependenciesMet;
|
509
564
|
var callbacks, targets;
|
510
565
|
|
511
|
-
if (log) SC.
|
566
|
+
if (log) SC.debug("SC.Module: Module '%@' finished loading.", moduleName);
|
512
567
|
|
513
568
|
if (!module) {
|
514
|
-
if (log) SC.
|
569
|
+
if (log) SC.debug("SC._moduleDidLoad() called for unknown module '@'.", moduleName);
|
515
570
|
module = SC.MODULE_INFO[moduleName] = { isLoaded: YES, isReady: YES } ;
|
516
571
|
return;
|
517
572
|
}
|
518
573
|
|
519
574
|
if (module.isLoaded) {
|
520
|
-
if (log) SC.
|
575
|
+
if (log) SC.debug("SC._moduleDidLoad() called more than once for module '%@'. Skipping.", moduleName);
|
521
576
|
return ;
|
522
577
|
}
|
523
578
|
|
@@ -530,11 +585,11 @@ SC.Module = SC.Object.create(/** @scope SC.Module */ {
|
|
530
585
|
if (dependenciesMet) {
|
531
586
|
this._evaluateAndInvokeCallbacks(moduleName);
|
532
587
|
} else {
|
533
|
-
if (log) SC.
|
588
|
+
if (log) SC.debug("SC.Module: Dependencies for '%@' not met yet, waiting to evaluate.", moduleName);
|
534
589
|
}
|
535
590
|
} else {
|
536
591
|
delete module.isPrefetching;
|
537
|
-
if (log) SC.
|
592
|
+
if (log) SC.debug("SC.Module: Module '%@' was prefetched, not evaluating until needed.", moduleName);
|
538
593
|
}
|
539
594
|
},
|
540
595
|
|
@@ -569,6 +624,83 @@ SC.Module = SC.Object.create(/** @scope SC.Module */ {
|
|
569
624
|
}
|
570
625
|
|
571
626
|
return methodName;
|
627
|
+
},
|
628
|
+
|
629
|
+
/**
|
630
|
+
A list of the methods to temporarily disable (and buffer calls for) when we are suspended.
|
631
|
+
*/
|
632
|
+
methodsForSuspend: "loadModule _moduleDidLoad prefetchModule _moduleDidBecomeReady".w(),
|
633
|
+
|
634
|
+
/**
|
635
|
+
Call this in order to prevent expensive tasks from occurring at inopportune times.
|
636
|
+
*/
|
637
|
+
suspend: function() {
|
638
|
+
|
639
|
+
//Increment the suspension count, to support nested suspend()/resume() pairs.
|
640
|
+
//We only do anything if the suspend count ends up at 1, as that implies it's
|
641
|
+
//the first suspend() call.
|
642
|
+
this._suspendCount = (this._suspendCount||0)+1;
|
643
|
+
if(this._suspendCount!==1) return;
|
644
|
+
|
645
|
+
//Yummy variables.
|
646
|
+
var methods = this.get('methodsForSuspend'),
|
647
|
+
replaceKey, saveKey, key, i;
|
648
|
+
|
649
|
+
//Now we go through the list of methods to suspend, and overwrite them with
|
650
|
+
//versions that will buffer their calls in a _bufferedCalls array.
|
651
|
+
for(i=0; key=methods[i]; i++) {
|
652
|
+
|
653
|
+
//Ensure the replacement function exists at a key where it'll be cached.
|
654
|
+
if(!this[replaceKey="__replacement_"+key+"__"]) {
|
655
|
+
(this[replaceKey] = function() {
|
656
|
+
(this._bufferedCalls||(this._bufferedCalls=[])).push({
|
657
|
+
method: arguments.callee.methodName,
|
658
|
+
arguments: arguments
|
659
|
+
});
|
660
|
+
}).methodName = key;
|
661
|
+
}
|
662
|
+
|
663
|
+
//Ensure the original function exists at a key where it'll be cached.
|
664
|
+
if(!this[saveKey="__saved_"+key+"__"]) this[saveKey] = this[key];
|
665
|
+
|
666
|
+
//Ensure that the replacement function exists where the rest of the
|
667
|
+
//code expects the original.
|
668
|
+
this[key] = this[replaceKey];
|
669
|
+
}
|
670
|
+
},
|
671
|
+
|
672
|
+
/**
|
673
|
+
Call this in order to resume normal behavior of the methods here, and to
|
674
|
+
finally perform any calls that may have occurred during suspension. Calls
|
675
|
+
will run in the order they were received.
|
676
|
+
*/
|
677
|
+
resume: function() {
|
678
|
+
|
679
|
+
//First, we need to decrement the suspension count, and warn if the suspension
|
680
|
+
//count implied that we weren't already suspended. Furthermore, if the suspend
|
681
|
+
//count is not zero, then we haven't tackled the last suspend() call with a resume(),
|
682
|
+
//and should therefore not resume.
|
683
|
+
this._suspendCount = (this._suspendCount||0)-1;
|
684
|
+
if(this._suspendCount<0) {
|
685
|
+
SC.warn("SC.Module.resume() was called without SC.Module having been in a suspended state. Call aborted.");
|
686
|
+
this._suspendCount = 0;
|
687
|
+
return;
|
688
|
+
}
|
689
|
+
if(this._suspendCount>0) return;
|
690
|
+
|
691
|
+
//Yummy variables.
|
692
|
+
var methods = this.get('methodsForSuspend'),
|
693
|
+
calls = this._bufferedCalls,
|
694
|
+
key, i, method, call;
|
695
|
+
|
696
|
+
//Restore the original methods to where they belong for normal functionality.
|
697
|
+
for(i=0; (key=methods[i]); i++) this[key] = this["__saved_"+key+"__"];
|
698
|
+
|
699
|
+
//Perform any buffered calls that built up during the suspended period.
|
700
|
+
for(i=0; call=calls&&calls[i]; i++) this[call.method].apply(this,call.arguments);
|
701
|
+
|
702
|
+
//Clear the list of calls, so subsequent resume() calls won't flush them again.
|
703
|
+
if(calls) calls.length = 0;
|
572
704
|
}
|
573
705
|
});
|
574
706
|
|
@@ -588,17 +720,17 @@ SC.ready(function() {
|
|
588
720
|
module = moduleInfo[moduleName];
|
589
721
|
|
590
722
|
if (module.isPrefetched) {
|
591
|
-
var prefetchedModuleName = moduleName;
|
592
|
-
|
593
723
|
// Create a task that will load the module, and then register it with
|
594
724
|
// the global background task queue.
|
595
|
-
task = SC.
|
596
|
-
run: function() {
|
597
|
-
SC.Module.prefetchModule(prefetchedModuleName);
|
598
|
-
}
|
599
|
-
});
|
600
|
-
|
725
|
+
task = SC.Module.PrefetchModuleTask.create({ prefetchedModuleName: moduleName });
|
601
726
|
SC.backgroundTaskQueue.push(task);
|
602
727
|
}
|
603
728
|
}
|
604
729
|
});
|
730
|
+
|
731
|
+
SC.Module.PrefetchModuleTask = SC.Task.extend({
|
732
|
+
prefetchedModuleName: null,
|
733
|
+
run: function() {
|
734
|
+
SC.Module.prefetchModule(this.prefetchedModuleName);
|
735
|
+
}
|
736
|
+
});
|