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
|
File without changes
|
|
@@ -65,7 +65,7 @@ SC.TextFieldSupport = /** @scope SC.TextFieldSupport */{
|
|
|
65
65
|
|
|
66
66
|
input.val(this._value);
|
|
67
67
|
|
|
68
|
-
if (SC.browser.
|
|
68
|
+
if (SC.browser.isIE) {
|
|
69
69
|
SC.Event.add(input, 'focusin', this, this.focusIn);
|
|
70
70
|
SC.Event.add(input, 'focusout', this, this.focusOut);
|
|
71
71
|
} else {
|
|
@@ -77,7 +77,7 @@ SC.TextFieldSupport = /** @scope SC.TextFieldSupport */{
|
|
|
77
77
|
willDestroyLayerMixin: function() {
|
|
78
78
|
var input = this.$input();
|
|
79
79
|
|
|
80
|
-
if (SC.browser.
|
|
80
|
+
if (SC.browser.isIE) {
|
|
81
81
|
SC.Event.remove(input, 'focusin', this, this.focusIn);
|
|
82
82
|
SC.Event.remove(input, 'focusout', this, this.focusOut);
|
|
83
83
|
} else {
|
|
@@ -129,7 +129,18 @@ SC.TextFieldSupport = /** @scope SC.TextFieldSupport */{
|
|
|
129
129
|
} else if (event.keyCode === SC.Event.KEY_ESC) {
|
|
130
130
|
return this.tryToPerform('cancel', event);
|
|
131
131
|
}
|
|
132
|
+
},
|
|
133
|
+
|
|
134
|
+
/** @private
|
|
135
|
+
RootResponder will call this function whenever a selection
|
|
136
|
+
event has occurred, for instance a select all. Simply return
|
|
137
|
+
true so that all selection events bubble up to the browser,
|
|
138
|
+
triggering the default browser behavior.
|
|
139
|
+
*/
|
|
140
|
+
selectStart: function() {
|
|
141
|
+
return true;
|
|
132
142
|
}
|
|
143
|
+
|
|
133
144
|
};
|
|
134
145
|
|
|
135
146
|
/**
|
data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/panes/template.js
RENAMED
|
File without changes
|
data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/controls/button.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/panes/template.js
RENAMED
|
File without changes
|
|
@@ -15,39 +15,64 @@ test("creating a collection view works", function() {
|
|
|
15
15
|
template: SC.Handlebars.compile('<b>{{content.title}}</b>')
|
|
16
16
|
});
|
|
17
17
|
|
|
18
|
-
var ListItemChildView = CollectionChildView.extend({ tagName: "li" });
|
|
19
18
|
var DefinitionTermChildView = CollectionChildView.extend({ tagName: "dt" });
|
|
19
|
+
var CustomChildView = CollectionChildView.extend({ tagName: "p" });
|
|
20
20
|
|
|
21
21
|
var CollectionView = SC.TemplateCollectionView.extend({
|
|
22
22
|
content: [{title: 'Hello'}]
|
|
23
23
|
});
|
|
24
|
-
|
|
24
|
+
|
|
25
25
|
var defaultCollectionView = CollectionView.create();
|
|
26
26
|
var ulCollectionView = CollectionView.create({ tagName: "ul" });
|
|
27
27
|
var olCollectionView = CollectionView.create({ tagName: "ol" });
|
|
28
|
-
var dlCollectionView = CollectionView.create({ tagName: "dl"
|
|
29
|
-
var
|
|
30
|
-
|
|
28
|
+
var dlCollectionView = CollectionView.create({ tagName: "dl" });
|
|
29
|
+
var dlCollectionView2 = CollectionView.create({ tagName: "dl", itemView: DefinitionTermChildView });
|
|
30
|
+
var dlCollectionView3 = CollectionView.create({ tagName: "dl", itemView: CustomChildView });
|
|
31
|
+
var dlCollectionView4 = CollectionView.create({ tagName: "dl", itemViewOptions: { tagName: "li"} });
|
|
32
|
+
var dlCollectionView5 = CollectionView.create({ tagName: "dl", itemViewOptions: { tagName: "li"}, itemView: CustomChildView });
|
|
33
|
+
var selectCollectionView = CollectionView.create({ tagName: "select" });
|
|
34
|
+
var customTagCollectionView = CollectionView.create({ tagName: "p", itemView: CustomChildView });
|
|
35
|
+
|
|
31
36
|
defaultCollectionView.createLayer();
|
|
32
37
|
ulCollectionView.createLayer();
|
|
33
38
|
olCollectionView.createLayer();
|
|
34
39
|
dlCollectionView.createLayer();
|
|
40
|
+
dlCollectionView2.createLayer();
|
|
41
|
+
dlCollectionView3.createLayer();
|
|
42
|
+
dlCollectionView4.createLayer();
|
|
43
|
+
dlCollectionView5.createLayer();
|
|
44
|
+
selectCollectionView.createLayer();
|
|
35
45
|
customTagCollectionView.createLayer();
|
|
36
|
-
|
|
46
|
+
|
|
37
47
|
ok(defaultCollectionView.$().is("ul"), "Unordered list collection view was rendered (Default)");
|
|
38
|
-
equals(defaultCollectionView.$('li').length, 1, "List item
|
|
48
|
+
equals(defaultCollectionView.$('li').length, 1, "List item was rendered (Default)");
|
|
39
49
|
|
|
40
50
|
ok(ulCollectionView.$().is("ul"), "Unordered list collection view was rendered");
|
|
41
|
-
equals(ulCollectionView.$('li').length, 1, "List item
|
|
51
|
+
equals(ulCollectionView.$('li').length, 1, "List item was rendered");
|
|
42
52
|
|
|
43
53
|
ok(olCollectionView.$().is("ol"), "Ordered collection collection view was rendered");
|
|
44
|
-
equals(olCollectionView.$('li').length, 1, "List item
|
|
54
|
+
equals(olCollectionView.$('li').length, 1, "List item was rendered");
|
|
45
55
|
|
|
46
56
|
ok(dlCollectionView.$().is("dl"), "Definition List collection view was rendered");
|
|
47
|
-
equals(dlCollectionView.$('dt').length, 1, "Definition term
|
|
48
|
-
|
|
57
|
+
equals(dlCollectionView.$('dt').length, 1, "Definition term was rendered (Default).");
|
|
58
|
+
|
|
59
|
+
ok(dlCollectionView2.$().is("dl"), "Definition List collection view was rendered");
|
|
60
|
+
equals(dlCollectionView2.$('dt').length, 1, "Definition term was rendered (when specified in itemView).");
|
|
61
|
+
|
|
62
|
+
ok(dlCollectionView3.$().is("dl"), "Definition List collection view was rendered");
|
|
63
|
+
equals(dlCollectionView3.$('p').length, 1, "Paragraph was rendered (when specified in itemView).");
|
|
64
|
+
|
|
65
|
+
ok(dlCollectionView4.$().is("dl"), "Definition List collection view was rendered");
|
|
66
|
+
equals(dlCollectionView4.$('li').length, 1, "List item was rendered (when specified in itemViewOptions.tagName).");
|
|
67
|
+
|
|
68
|
+
ok(dlCollectionView4.$().is("dl"), "Definition List collection view was rendered");
|
|
69
|
+
equals(dlCollectionView4.$('li').length, 1, "List item was rendered (when specified in itemViewOptions.tagName and also specified in itemView).");
|
|
70
|
+
|
|
71
|
+
ok(selectCollectionView.$().is("select"), "Select collection view was rendered");
|
|
72
|
+
equals(selectCollectionView.$('option').length, 1, "Option view was rendered");
|
|
73
|
+
|
|
49
74
|
ok(customTagCollectionView.$().is("p"), "Paragraph collection view was rendered");
|
|
50
|
-
equals(customTagCollectionView.$('
|
|
75
|
+
equals(customTagCollectionView.$('p').length, 1, "Custom child view was rendered");
|
|
51
76
|
});
|
|
52
77
|
|
|
53
78
|
test("not passing a block to the collection helper creates a collection", function() {
|
|
@@ -345,7 +370,7 @@ test("should render inverse template when its present and there is no content",
|
|
|
345
370
|
|
|
346
371
|
view.createLayer();
|
|
347
372
|
|
|
348
|
-
equals(view.$('h1').text(), 'inverse', 'collection view with no content and inverse template should render inverse template')
|
|
373
|
+
equals(view.$('h1').text(), 'inverse', 'collection view with no content and inverse template should render inverse template');
|
|
349
374
|
});
|
|
350
375
|
|
|
351
376
|
test("should render inverse template name when its present and there is no content", function() {
|
|
@@ -366,7 +391,7 @@ test("should render inverse template name when its present and there is no conte
|
|
|
366
391
|
|
|
367
392
|
view.createLayer();
|
|
368
393
|
|
|
369
|
-
equals(view.$('h1').text(), 'inverse template from file', 'collection view with no content and inverse template name should render template')
|
|
394
|
+
equals(view.$('h1').text(), 'inverse template from file', 'collection view with no content and inverse template name should render template');
|
|
370
395
|
});
|
|
371
396
|
|
|
372
397
|
test("#collection helper should allow relative paths for the collection view class", function() {
|
|
File without changes
|
|
@@ -60,6 +60,8 @@
|
|
|
60
60
|
*/
|
|
61
61
|
module("SC.TemplateView - handlebars integration");
|
|
62
62
|
|
|
63
|
+
TemplateTests = {};
|
|
64
|
+
|
|
63
65
|
test("template view should call the function of the associated template", function() {
|
|
64
66
|
var view = SC.TemplateView.create({
|
|
65
67
|
templateName: 'test_template',
|
|
@@ -95,6 +97,27 @@ test("template view should call the function of the associated template with its
|
|
|
95
97
|
equals("template was called for Tom DAAAALE1. Yea Tom DAAAALE1", view.$('#twas-called').text(), "the named template was called with the view as the data source");
|
|
96
98
|
});
|
|
97
99
|
|
|
100
|
+
test("template view should call the function of the associated template with itself as the context", function() {
|
|
101
|
+
var view = SC.TemplateView.create({
|
|
102
|
+
template: SC.Handlebars.compile('<div id="not-escaped">{{{notEscaped}}}</div><div id="escaped">{{escaped}}</div>'),
|
|
103
|
+
notEscaped: '<p>NOT_ESCAPED</p>',
|
|
104
|
+
escaped: '<p>ESCAPED</p>'
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
view.createLayer();
|
|
108
|
+
|
|
109
|
+
equals("<p>ESCAPED</p>", view.$('#escaped span')[0].innerHTML, "the value was properly inserted escaped");
|
|
110
|
+
equals("<p>NOT_ESCAPED</p>", view.$('#not-escaped span')[0].innerHTML, "the value was properly inserted unescaped");
|
|
111
|
+
|
|
112
|
+
SC.run(function() {
|
|
113
|
+
view.set('notEscaped', '<br>NOT_ESCAPED<br>');
|
|
114
|
+
view.set('escaped', '<br>ESCAPED<br>');
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
equals("<br>ESCAPED<br>", view.$('#escaped span')[0].innerHTML, "the value was properly inserted escaped");
|
|
118
|
+
equals("<br>NOT_ESCAPED<br>", view.$('#not-escaped span')[0].innerHTML, "the value was properly inserted unescaped");
|
|
119
|
+
});
|
|
120
|
+
|
|
98
121
|
test("should allow values from normal JavaScript hash objects to be used", function() {
|
|
99
122
|
var view = SC.TemplateView.create({
|
|
100
123
|
template: SC.Handlebars.compile('{{#with person}}{{firstName}} {{lastName}} (and {{pet.name}}){{/with}}'),
|
|
@@ -542,6 +565,34 @@ test("should update the block when object passed to #if helper changes and an in
|
|
|
542
565
|
});
|
|
543
566
|
});
|
|
544
567
|
|
|
568
|
+
test("views nested within an #if helper should be destroyed every time they are removed", function() {
|
|
569
|
+
var view, didCreateLayerCalled = 0, willDestroyLayerCalled = 0;
|
|
570
|
+
|
|
571
|
+
TemplateTests.someView = SC.TemplateView.extend({
|
|
572
|
+
template: SC.Handlebars.compile("<h1>hello</h1>"),
|
|
573
|
+
didCreateLayer: function() { didCreateLayerCalled++; },
|
|
574
|
+
willDestroyLayer: function() { willDestroyLayerCalled++; }
|
|
575
|
+
});
|
|
576
|
+
|
|
577
|
+
view = SC.TemplateView.create({
|
|
578
|
+
template: SC.Handlebars.compile('{{#if foo}}{{view TemplateTests.someView}}{{/if}}'),
|
|
579
|
+
foo: true
|
|
580
|
+
});
|
|
581
|
+
|
|
582
|
+
view.createLayer();
|
|
583
|
+
|
|
584
|
+
SC.run(function() { view.set('foo', false); });
|
|
585
|
+
|
|
586
|
+
equals(didCreateLayerCalled, 1, 'didCreateLayer should have been called once');
|
|
587
|
+
equals(willDestroyLayerCalled, 1, 'willDestroyLayer should have been called once');
|
|
588
|
+
|
|
589
|
+
SC.run(function() { view.set('foo', true); });
|
|
590
|
+
SC.run(function() { view.set('foo', false); });
|
|
591
|
+
|
|
592
|
+
equals(didCreateLayerCalled, 2, 'didCreateLayer should have been called twice');
|
|
593
|
+
equals(willDestroyLayerCalled, 2, 'willDestroyLayer should have been called twice');
|
|
594
|
+
});
|
|
595
|
+
|
|
545
596
|
test("Should insert a localized string if the {{loc}} helper is used", function() {
|
|
546
597
|
SC.stringsFor('en', {
|
|
547
598
|
'Brazil': 'Brasilia'
|
|
@@ -855,14 +906,14 @@ test("should be able to bind element attributes using {{bindAttr}}", function()
|
|
|
855
906
|
var view = SC.TemplateView.create({
|
|
856
907
|
template: template,
|
|
857
908
|
content: SC.Object.create({
|
|
858
|
-
url: "http://www.sproutcore.com/
|
|
909
|
+
url: "http://www.sproutcore.com/img/branding/logo/png/dark.png",
|
|
859
910
|
title: "The SproutCore Logo"
|
|
860
911
|
})
|
|
861
912
|
});
|
|
862
913
|
|
|
863
914
|
view.createLayer();
|
|
864
915
|
|
|
865
|
-
equals(view.$('img').attr('src'), "http://www.sproutcore.com/
|
|
916
|
+
equals(view.$('img').attr('src'), "http://www.sproutcore.com/img/branding/logo/png/dark.png", "sets src attribute");
|
|
866
917
|
equals(view.$('img').attr('alt'), "The SproutCore Logo", "sets alt attribute");
|
|
867
918
|
|
|
868
919
|
SC.run(function() {
|
|
@@ -882,7 +933,7 @@ test("should be able to bind element attributes using {{bindAttr}}", function()
|
|
|
882
933
|
|
|
883
934
|
SC.run(function() {
|
|
884
935
|
view.set('content', {
|
|
885
|
-
url: "http://www.sproutcore.com/
|
|
936
|
+
url: "http://www.sproutcore.com/img/branding/logo/png/dark.png",
|
|
886
937
|
title: "The SproutCore Logo"
|
|
887
938
|
});
|
|
888
939
|
});
|
|
@@ -891,7 +942,7 @@ test("should be able to bind element attributes using {{bindAttr}}", function()
|
|
|
891
942
|
|
|
892
943
|
SC.run(function() {
|
|
893
944
|
view.set('content', {
|
|
894
|
-
url: "http://www.sproutcore.com/
|
|
945
|
+
url: "http://www.sproutcore.com/img/branding/logo/png/dark.png",
|
|
895
946
|
title: function() {
|
|
896
947
|
return "Nanananana SproutCore!";
|
|
897
948
|
}
|
|
@@ -931,14 +982,14 @@ test("should be able to bind element attributes using {{bindAttr}} inside a bloc
|
|
|
931
982
|
var view = SC.TemplateView.create({
|
|
932
983
|
template: template,
|
|
933
984
|
content: SC.Object.create({
|
|
934
|
-
url: "http://www.sproutcore.com/
|
|
985
|
+
url: "http://www.sproutcore.com/img/branding/logo/png/dark.png",
|
|
935
986
|
title: "The SproutCore Logo"
|
|
936
987
|
})
|
|
937
988
|
});
|
|
938
989
|
|
|
939
990
|
view.createLayer();
|
|
940
991
|
|
|
941
|
-
equals(view.$('img').attr('src'), "http://www.sproutcore.com/
|
|
992
|
+
equals(view.$('img').attr('src'), "http://www.sproutcore.com/img/branding/logo/png/dark.png", "sets src attribute");
|
|
942
993
|
equals(view.$('img').attr('alt'), "The SproutCore Logo", "sets alt attribute");
|
|
943
994
|
|
|
944
995
|
SC.run(function() {
|
data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/views/bindable_span.js
RENAMED
|
@@ -88,6 +88,10 @@ SC._BindableSpan = SC.TemplateView.extend(
|
|
|
88
88
|
@param {SC.RenderContext} renderContext}
|
|
89
89
|
*/
|
|
90
90
|
render: function(renderContext) {
|
|
91
|
+
// If not invoked via a triple-mustache ({{{foo}}}), escape
|
|
92
|
+
// the content of the template.
|
|
93
|
+
var escape = this.get('isEscaped');
|
|
94
|
+
|
|
91
95
|
var shouldDisplay = this.get('shouldDisplayFunc'),
|
|
92
96
|
property = this.get('property'),
|
|
93
97
|
preserveContext = this.get('preserveContext'),
|
|
@@ -96,7 +100,16 @@ SC._BindableSpan = SC.TemplateView.extend(
|
|
|
96
100
|
var inverseTemplate = this.get('inverseTemplate'),
|
|
97
101
|
displayTemplate = this.get('displayTemplate');
|
|
98
102
|
|
|
99
|
-
var result
|
|
103
|
+
var result;
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
// Use the current context as the result if no
|
|
107
|
+
// property is provided.
|
|
108
|
+
if (property === '') {
|
|
109
|
+
result = context;
|
|
110
|
+
} else {
|
|
111
|
+
result = context.getPath(property);
|
|
112
|
+
}
|
|
100
113
|
|
|
101
114
|
// First, test the conditional to see if we should
|
|
102
115
|
// render the template or not.
|
|
@@ -108,14 +121,16 @@ SC._BindableSpan = SC.TemplateView.extend(
|
|
|
108
121
|
if (preserveContext) {
|
|
109
122
|
this.set('context', context);
|
|
110
123
|
} else {
|
|
111
|
-
|
|
112
|
-
|
|
124
|
+
// Otherwise, determine if this is a block bind or not.
|
|
125
|
+
// If so, pass the specified object to the template
|
|
113
126
|
if (displayTemplate) {
|
|
114
127
|
this.set('context', result);
|
|
115
128
|
} else {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
129
|
+
// This is not a bind block, just push the result of the
|
|
130
|
+
// expression to the render context and return.
|
|
131
|
+
if (result == null) { result = ""; } else { result = String(result); }
|
|
132
|
+
if (escape) { result = Handlebars.Utils.escapeExpression(result); }
|
|
133
|
+
renderContext.push(result); //Handlebars.Utils.escapeExpression(result));
|
|
119
134
|
return;
|
|
120
135
|
}
|
|
121
136
|
}
|
data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/views/template.js
RENAMED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
sc_require("handlebars");
|
|
1
2
|
sc_require("ext/handlebars");
|
|
2
3
|
sc_require("ext/handlebars/bind");
|
|
3
4
|
sc_require("ext/handlebars/collection");
|
|
4
5
|
sc_require("ext/handlebars/localization");
|
|
5
6
|
sc_require("ext/handlebars/view");
|
|
6
|
-
sc_require("views/view");
|
|
7
7
|
|
|
8
8
|
// Global hash of shared templates. This will automatically be populated
|
|
9
9
|
// by the build tools so that you can store your Handlebars templates in
|
|
@@ -109,11 +109,17 @@ SC.TemplateView = SC.CoreView.extend(
|
|
|
109
109
|
@param {SC.RenderContext} context the render context
|
|
110
110
|
*/
|
|
111
111
|
render: function(context) {
|
|
112
|
-
var
|
|
112
|
+
var data,
|
|
113
|
+
output,
|
|
114
|
+
template = this.get('template'),
|
|
115
|
+
templateContext = this.get('context');
|
|
113
116
|
|
|
114
117
|
this._didRenderChildViews = YES;
|
|
115
118
|
|
|
116
|
-
|
|
119
|
+
data = { view: this, isRenderData: true };
|
|
120
|
+
output = template(templateContext, { data: data });
|
|
121
|
+
|
|
122
|
+
context.push(output);
|
|
117
123
|
},
|
|
118
124
|
|
|
119
125
|
// in TemplateView, updating is handled by observers created by helpers in the
|
|
@@ -19,8 +19,23 @@ SC.TemplateCollectionView = SC.TemplateView.extend(
|
|
|
19
19
|
@default ul
|
|
20
20
|
*/
|
|
21
21
|
tagName: 'ul',
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
A list of items to be displayed by the TemplateCollectionView.
|
|
25
|
+
|
|
26
|
+
@type SC.Array
|
|
27
|
+
@default null
|
|
28
|
+
*/
|
|
22
29
|
content: null,
|
|
30
|
+
|
|
23
31
|
template: SC.Handlebars.compile(''),
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
An optional view to display if content is set to an empty array.
|
|
35
|
+
|
|
36
|
+
@type SC.TemplateView
|
|
37
|
+
@default null
|
|
38
|
+
*/
|
|
24
39
|
emptyView: null,
|
|
25
40
|
|
|
26
41
|
/**
|
|
@@ -50,6 +65,10 @@ SC.TemplateCollectionView = SC.TemplateView.extend(
|
|
|
50
65
|
}
|
|
51
66
|
},
|
|
52
67
|
|
|
68
|
+
/**
|
|
69
|
+
@type SC.TemplateView
|
|
70
|
+
@default SC.TemplateView
|
|
71
|
+
*/
|
|
53
72
|
itemView: 'SC.TemplateView',
|
|
54
73
|
|
|
55
74
|
/**
|
|
@@ -132,10 +151,13 @@ SC.TemplateCollectionView = SC.TemplateView.extend(
|
|
|
132
151
|
extensions.template = itemViewTemplate;
|
|
133
152
|
}
|
|
134
153
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
154
|
+
// If the itemView has not defined a unique tagName, then check for a unique item tagName
|
|
155
|
+
// to match the given collection tagName. This is safe, since the unique item tagNames
|
|
156
|
+
// are required by HTML to be children of the special collection tagName. If the collection
|
|
157
|
+
// doesn't have a special tagName, then the default value of SC.TemplateView is still
|
|
158
|
+
// used.
|
|
159
|
+
if (itemView.prototype.tagName === SC.TemplateView.prototype.tagName) {
|
|
160
|
+
extensions.tagName = this.get('itemTagName');
|
|
139
161
|
}
|
|
140
162
|
|
|
141
163
|
return itemView.extend(extensions);
|
|
@@ -252,30 +274,31 @@ SC.TemplateCollectionView = SC.TemplateView.extend(
|
|
|
252
274
|
delete itemOptions['class'];
|
|
253
275
|
delete itemOptions.classBinding;
|
|
254
276
|
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
277
|
+
for (idx = 0; idx < len; idx++) {
|
|
278
|
+
item = addedObjects.objectAt(idx);
|
|
279
|
+
childView = this.createChildView(itemViewClass.extend(itemOptions, {
|
|
280
|
+
content: item,
|
|
281
|
+
render: renderFunc,
|
|
282
|
+
// Use the itemTagName property if it is set, over the tagName of the itemViewClass which is 'div' by default
|
|
283
|
+
tagName: itemOptions.tagName || itemViewClass.prototype.tagName
|
|
284
|
+
}));
|
|
285
|
+
|
|
286
|
+
var contextProperty = childView.get('contextProperty');
|
|
287
|
+
if (contextProperty) {
|
|
288
|
+
childView.set('context', childView.get(contextProperty));
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
itemElem = childView.createLayer().$();
|
|
292
|
+
if (!insertAtElement) {
|
|
293
|
+
elem.append(itemElem);
|
|
294
|
+
} else {
|
|
295
|
+
itemElem.insertAfter(insertAtElement);
|
|
296
|
+
}
|
|
297
|
+
insertAtElement = itemElem;
|
|
298
|
+
|
|
299
|
+
addedViews.push(childView);
|
|
266
300
|
}
|
|
267
301
|
|
|
268
|
-
itemElem = childView.createLayer().$();
|
|
269
|
-
if (!insertAtElement) {
|
|
270
|
-
elem.append(itemElem);
|
|
271
|
-
} else {
|
|
272
|
-
itemElem.insertAfter(insertAtElement);
|
|
273
|
-
}
|
|
274
|
-
insertAtElement = itemElem;
|
|
275
|
-
|
|
276
|
-
addedViews.push(childView);
|
|
277
|
-
}
|
|
278
|
-
|
|
279
302
|
childViews.replace(start, 0, addedViews);
|
|
280
303
|
}
|
|
281
304
|
|
|
@@ -298,6 +321,8 @@ SC.TemplateCollectionView = SC.TemplateView.extend(
|
|
|
298
321
|
|
|
299
322
|
itemTagName: function() {
|
|
300
323
|
switch(this.get('tagName')) {
|
|
324
|
+
case 'dl':
|
|
325
|
+
return 'dt';
|
|
301
326
|
case 'ul':
|
|
302
327
|
case 'ol':
|
|
303
328
|
return 'li';
|
|
@@ -306,6 +331,10 @@ SC.TemplateCollectionView = SC.TemplateView.extend(
|
|
|
306
331
|
case 'tbody':
|
|
307
332
|
case 'tfoot':
|
|
308
333
|
return 'tr';
|
|
334
|
+
case 'select':
|
|
335
|
+
return 'option';
|
|
336
|
+
default:
|
|
337
|
+
return SC.TemplateView.prototype.tagName;
|
|
309
338
|
}
|
|
310
339
|
}.property('tagName'),
|
|
311
340
|
|