sproutcore 1.10.3.1 → 1.11.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/CHANGELOG +4 -8
- data/VERSION.yml +2 -2
- data/lib/frameworks/sproutcore/Buildfile +5 -4
- data/lib/frameworks/sproutcore/CHANGELOG.md +274 -40
- data/lib/frameworks/sproutcore/CONTRIBUTORS.md +133 -0
- data/lib/frameworks/sproutcore/README.md +31 -144
- data/lib/frameworks/sproutcore/apps/showcase/controllers/source_tree_controller.js +9 -4
- data/lib/frameworks/sproutcore/apps/showcase/resources/stylesheet.css +5 -0
- data/lib/frameworks/sproutcore/apps/showcase/system/views_item_content.js +1 -1
- data/lib/frameworks/sproutcore/apps/showcase/views/split_views.js +15 -2
- data/lib/frameworks/sproutcore/apps/showcase/views/stacked_views.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/english.lproj/main_page.js +11 -1
- data/lib/frameworks/sproutcore/frameworks/ajax/mixins/websocket_delegate.js +90 -0
- data/lib/frameworks/sproutcore/frameworks/ajax/system/request.js +81 -5
- data/lib/frameworks/sproutcore/frameworks/ajax/system/response.js +23 -4
- data/lib/frameworks/sproutcore/frameworks/ajax/system/websocket.js +475 -0
- data/lib/frameworks/sproutcore/frameworks/ajax/tests/system/request.js +149 -26
- data/lib/frameworks/sproutcore/frameworks/ajax/tests/system/websocket.js +197 -0
- data/lib/frameworks/sproutcore/frameworks/ajax/tests/system/xhr_response_test.js +65 -0
- data/lib/frameworks/sproutcore/frameworks/bootstrap/system/loader.js +4 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/child_view_layouts/horizontal_stack_layout.js +232 -52
- data/lib/frameworks/sproutcore/frameworks/core_foundation/child_view_layouts/vertical_stack_layout.js +235 -49
- data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/array.js +23 -13
- data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/object.js +3 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/core.js +81 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/english.lproj/ordinal.js +17 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/string.js +7 -0
- data/lib/frameworks/sproutcore/frameworks/{desktop/tests/views/disclosure/methods.js → core_foundation/french.lproj/ordinal.js} +7 -4
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/layout.js +2 -6
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/main.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/pane.js +104 -69
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/pane_statechart.js +6 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/protocols/child_view_layout_protocol.js +59 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/protocols/view_transition_protocol.js +18 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/application.js +192 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/bezier_curves.js +52 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/color.js +384 -64
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/core_query.js +6 -14
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/device.js +21 -35
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/event.js +72 -36
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/locale.js +90 -34
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/platform.js +55 -7
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/render_context.js +20 -15
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/req_anim_frame.js +9 -10
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/root_responder.js +763 -542
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/selection_set.js +4 -3
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/sparse_array.js +1 -7
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/string.js +14 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/touch.js +538 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/utils/rect.js +56 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/array_case.js +99 -4
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/object/single_case.js +25 -19
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/core_tests.js +75 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/ext/number_test.js +81 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/action_support.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/responder_context.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/string.js +19 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/color.js +36 -20
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/root_responder/design_modes_test.js +83 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/root_responder/makeMainPane.js +7 -3
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/root_responder/mouse_events.js +338 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/root_responder/root_responder.js +14 -89
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/root_responder/touch.js +106 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/sparse_array.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/touch.js +136 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/utils/rect.js +42 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/append_remove.js +11 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/child_view.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/design_mode_test.js +457 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/sendEvent.js +36 -10
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/background_color.js +44 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/border_frame_test.js +51 -24
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/childViewLayout_test.js +176 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/clippingFrame.js +46 -16
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/convertFrames.js +69 -15
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/didAppendToDocument.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layout.js +7 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layoutDidChange.js +30 -10
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layoutStyle.js +376 -71
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/static_layout.js +0 -10
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/viewDidResize.js +117 -34
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/view_states_test.js +52 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view.js +656 -42
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/animation.js +159 -38
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/cursor.js +0 -7
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/design_mode.js +206 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/enabled.js +0 -28
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/keyboard.js +21 -6
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout.js +372 -450
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout_style.js +28 -13
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/manipulation.js +22 -51
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/statechart.js +59 -30
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/theming.js +0 -29
- data/lib/frameworks/sproutcore/frameworks/datastore/mixins/relationship_support.js +22 -10
- data/lib/frameworks/sproutcore/frameworks/datastore/models/children_attribute.js +42 -36
- data/lib/frameworks/sproutcore/frameworks/datastore/models/many_attribute.js +54 -3
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record.js +178 -59
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/system/child_array.js +206 -132
- data/lib/frameworks/sproutcore/frameworks/datastore/system/many_array.js +214 -118
- data/lib/frameworks/sproutcore/frameworks/datastore/system/nested_store.js +96 -13
- data/lib/frameworks/sproutcore/frameworks/datastore/system/query.js +14 -4
- data/lib/frameworks/sproutcore/frameworks/datastore/system/record_array.js +82 -42
- data/lib/frameworks/sproutcore/frameworks/datastore/system/store.js +272 -177
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/integration/store_interaction_test.js +54 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/datetime_recordattribute.js +24 -16
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/many_attribute.js +6 -3
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/data_store.js +267 -35
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record.js +57 -46
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array.js +150 -53
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array_complex.js +57 -17
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_complex.js +13 -9
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/polymorphism → datastore}/tests/models/polymorphism/many.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/polymorphism → datastore}/tests/models/polymorphism/simple.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/polymorphism → datastore}/tests/models/polymorphism/single.js +12 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/writeAttribute.js +20 -15
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record_attribute.js +9 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/many_array/core_methods.js +80 -14
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/autonomous_dataSourceCallbacks.js +280 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/autonomous_pushChanges.js +232 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/chain.js +31 -5
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/parse.js +16 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/core_methods.js +60 -40
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/materializeRecord.js +78 -0
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/system/datetime.js +13 -1
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/tests/system/datetime.js +20 -0
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/{resources → english.lproj}/strings.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/french.lproj/strings.js +45 -0
- data/lib/frameworks/sproutcore/frameworks/designer/designers/object_designer.js +7 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_row_delegate.js +125 -44
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/alert.js +139 -48
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/draggable.js +202 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/menu.js +59 -56
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/palette.js +13 -49
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/picker.js +466 -305
- data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drag_source.js +49 -12
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/slider.js +79 -21
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/split.js +12 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/menu_item_view.css +8 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/overlay-scroller.css +187 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/system/drag.js +94 -30
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/alert/ui.js +163 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/methods.js +97 -78
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/ui.js +61 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/panel/methods.js +7 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/panel/ui.js +47 -22
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/picker/methods.js +66 -9
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/picker/ui.js +21 -11
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/sheet/ui.js +12 -18
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/methods.js +17 -14
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/ui.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/methods.js +9 -6
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/collection_fast_path.js +54 -21
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/content.js +52 -20
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/itemViewForContentIndex.js +94 -4
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/keyboard.js +177 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/layerIdFor.js +13 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/length.js +9 -9
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/mouse.js +18 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/date_field/methods.js +104 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/disclosure/ui.js +48 -49
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/grid/drag_and_drop.js +22 -18
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/grid/methods.js +17 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/link_view_test.js +136 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/contentIndexesInRect.js +77 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/drag_and_drop.js +53 -16
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/layoutForContentIndex.js +41 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/rowDelegate.js +25 -25
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/rowOffsetForContentIndex.js +102 -27
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/{rowHeightForContentIndex.js → rowSizeForContentIndex.js} +7 -6
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_outline.js +2 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_row_heights.js +70 -75
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_simple.js +29 -30
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list_item.js +57 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/menu_scroll_view/menu_scroll_view_test.js +206 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/progress/ui.js +15 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/radio/methods.js +15 -7
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/integration.js +16 -11
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/methods.js +164 -12
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/scale.js +387 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/touch.js +549 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/ui.js +214 -45
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroller.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/methods.js +73 -22
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/ui.js +88 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select/methods.js +8 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/slider/methods.js +16 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/slider/ui.js +54 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/split/dividers.js +21 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/static_content.js +31 -25
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/tab/methods.js +109 -29
- data/lib/frameworks/sproutcore/frameworks/desktop/views/button.js +10 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +3 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/collection.js +779 -603
- data/lib/frameworks/sproutcore/frameworks/desktop/views/date_field.js +106 -7
- data/lib/frameworks/sproutcore/frameworks/desktop/views/link_view.js +406 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/list.js +437 -245
- data/lib/frameworks/sproutcore/frameworks/desktop/views/list_item.js +13 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +124 -62
- data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_scroll.js +176 -597
- data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_scroller_view.js +206 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/popup_button.js +3 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/progress.js +5 -4
- data/lib/frameworks/sproutcore/frameworks/desktop/views/radio.js +3 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scene.js +56 -158
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scroll_view.js +2560 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scroller.js +458 -242
- data/lib/frameworks/sproutcore/frameworks/desktop/views/segmented.js +117 -54
- data/lib/frameworks/sproutcore/frameworks/desktop/views/select.js +18 -12
- data/lib/frameworks/sproutcore/frameworks/desktop/views/slider.js +162 -34
- data/lib/frameworks/sproutcore/frameworks/desktop/views/split.js +30 -15
- data/lib/frameworks/sproutcore/frameworks/desktop/views/split_divider.js +33 -7
- data/lib/frameworks/sproutcore/frameworks/desktop/views/static_content.js +22 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/tab.js +47 -22
- data/lib/frameworks/sproutcore/frameworks/experimental/Buildfile +0 -6
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/views/form.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/views/form_row.js +21 -21
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/ext/menu.js +14 -3
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/mixins/select_view_menu.js +24 -10
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/ext/menu_resizing.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/mixins/select_view_menu/bindings.js +7 -4
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/mixins/select_view_menu/check_selected.js +7 -9
- data/lib/frameworks/sproutcore/frameworks/{desktop/tests/panes/select_button/methods.js → experimental/frameworks/select_view/tests/views/select/method.js} +54 -76
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/views/select/selected_item.js +35 -0
- data/lib/frameworks/sproutcore/frameworks/{desktop/tests/panes/select_button → experimental/frameworks/select_view/tests/views/select}/ui.js +107 -36
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/views/select.js +225 -66
- data/lib/frameworks/sproutcore/frameworks/foundation/controllers/tree.js +39 -38
- data/lib/frameworks/sproutcore/frameworks/foundation/core.js +5 -18
- data/lib/frameworks/sproutcore/frameworks/foundation/debug/control_test_pane.js +12 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/inflections.js +84 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/french.lproj/inflections.js +41 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_mixin.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_resize.js +7 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/content_display.js +3 -4
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/flowed_layout.js +6 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/private/tree_item_observer.js +408 -239
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/canvas_image.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/text_field.css +2 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/spanish.lproj/inflections.js +38 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/system/benchmark.js +104 -76
- data/lib/frameworks/sproutcore/frameworks/foundation/system/string.js +20 -94
- data/lib/frameworks/sproutcore/frameworks/foundation/system/text_selection.js +33 -22
- data/lib/frameworks/sproutcore/frameworks/foundation/system/undo_manager.js +475 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/auto_resize_test.js +163 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/flowed_layout/tests.js +41 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/staticLayout.js +2 -5
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/private/tree_item_observer/methods.js +268 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/undo_manager.js +231 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/container/ui.js +16 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/image/ui.js +27 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/methods.js +24 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/ui.js +135 -6
- data/lib/frameworks/sproutcore/frameworks/foundation/transitions/fade_transition.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/transitions/pop_transition.js +7 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/transitions/scale_transition.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/transitions/slide_transition.js +4 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/transitions/swap_dissolve_transition.js +3 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/credit_card.js +21 -21
- data/lib/frameworks/sproutcore/frameworks/foundation/views/container.js +65 -15
- data/lib/frameworks/sproutcore/frameworks/foundation/views/image.js +4 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/views/label.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/views/text_field.js +193 -213
- data/lib/frameworks/sproutcore/frameworks/jquery/{jquery-1.8.3-patched.js → jquery-1.11.1.js} +7507 -6684
- data/lib/frameworks/sproutcore/frameworks/routing/system/routes.js +28 -11
- data/lib/frameworks/sproutcore/frameworks/routing/tests/system/routes.js +26 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/core.js +54 -25
- data/lib/frameworks/sproutcore/frameworks/runtime/ext/array.js +0 -6
- data/lib/frameworks/sproutcore/frameworks/runtime/ext/number.js +36 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/ext/window.js +25 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/array.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/enumerable.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +156 -66
- data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_set.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/system/binding.js +150 -65
- data/lib/frameworks/sproutcore/frameworks/runtime/system/index_set.js +57 -11
- data/lib/frameworks/sproutcore/frameworks/runtime/system/object.js +68 -49
- data/lib/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +14 -6
- data/lib/frameworks/sproutcore/frameworks/runtime/system/string.js +23 -23
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/ext/number_test.js +44 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/array.js +0 -10
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/enumerable/enumerable.js +340 -285
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/binding.js +104 -3
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/observer_set.js +14 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/string.js +15 -2
- data/lib/frameworks/sproutcore/frameworks/statechart/system/state.js +21 -18
- data/lib/frameworks/sproutcore/frameworks/statechart/system/statechart.js +52 -19
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/event_handling/responder/pane.js +27 -24
- data/lib/frameworks/sproutcore/frameworks/template_view/controls/button.js +30 -0
- data/lib/frameworks/sproutcore/frameworks/template_view/ext/handlebars/bind.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/template_view/ext/handlebars/collection.js +2 -0
- data/lib/frameworks/sproutcore/frameworks/template_view/ext/handlebars/view.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/template_view/tests/mixins/template_helpers/checkbox_support.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/template_view/tests/views/template/handlebars.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/template_view/views/bindable_span.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/template_view/views/template_collection.js +16 -14
- data/lib/frameworks/sproutcore/frameworks/testing/core.js +5 -3
- data/lib/frameworks/sproutcore/frameworks/testing/system/plan.js +13 -0
- data/lib/frameworks/sproutcore/lib/index.rhtml +2 -2
- data/lib/frameworks/sproutcore/phantomjs/test_runner.js +28 -7
- data/lib/frameworks/sproutcore/scripts/run_sc_server_master.sh +1 -1
- data/lib/frameworks/sproutcore/themes/ace/resources/_variables.css +2 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/disclosure/ace/disclosure.css +1 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover.css +3 -4
- data/lib/frameworks/sproutcore/themes/ace/resources/scroller/horizontal/horizontal.css +15 -15
- data/lib/frameworks/sproutcore/themes/ace/resources/scroller/horizontal/horizontal_overlay.css +74 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/scroller/vertical/vertical.css +11 -13
- data/lib/frameworks/sproutcore/themes/ace/resources/scroller/vertical/vertical_overlay.css +74 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/jumbo/knob-active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/jumbo/knob-active@2x.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/jumbo/knob.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/jumbo/knob@2x.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/{22px → jumbo}/slider.css +9 -4
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/jumbo/track.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/jumbo/track@2x.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/regular/knob-active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/regular/knob-active@2x.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/regular/knob.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/regular/knob@2x.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/regular/slider.css +32 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/regular/track.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/regular/track@2x.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/slider.css +13 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/small/knob-active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/small/knob-active@2x.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/small/knob.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/small/knob@2x.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/small/slider.css +32 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/small/track.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/small/track@2x.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/split/split.css +2 -3
- data/lib/sproutcore/builders/chance_file.rb +3 -3
- data/lib/sproutcore/helpers/minifier.rb +1 -0
- data/vendor/chance/lib/chance/instance.rb +34 -34
- data/vendor/chance/lib/chance/instance/spriting.rb +21 -16
- metadata +81 -58
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/visibility.js +0 -17
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_fast_path.js +0 -710
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/scrollable.js +0 -267
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/touch-scroller.css +0 -196
- data/lib/frameworks/sproutcore/frameworks/desktop/system/undo_manager.js +0 -224
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select_field/methods.js +0 -163
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select_field/ui.js +0 -177
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scroll.js +0 -2053
- data/lib/frameworks/sproutcore/frameworks/desktop/views/select_button.js +0 -1024
- data/lib/frameworks/sproutcore/frameworks/desktop/views/select_field.js +0 -404
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/menu/render_delegates/menu_scroller.js +0 -28
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/menu/tests/menu/scroll.js +0 -235
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/menu/views/menu/scroll.js +0 -363
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/menu/views/menu/scroller.js +0 -250
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/README.md +0 -47
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/models/record.js +0 -134
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/render_delegates/desktop_scroller.js +0 -92
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/render_delegates/native_scroll.js +0 -25
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/render_delegates/scroll.js +0 -33
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/render_delegates/touch_scroller.js +0 -76
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/tests/scroll/integration.js +0 -25
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/tests/scroll/methods.js +0 -143
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/tests/scroll/ui.js +0 -256
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/core_scroll.js +0 -1164
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/core_scroller.js +0 -332
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/desktop/scroll.js +0 -236
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/desktop/scroller.js +0 -347
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/scroll.js +0 -15
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/scroller.js +0 -10
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/touch/scroll.js +0 -804
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/touch/scroller.js +0 -133
- data/lib/frameworks/sproutcore/frameworks/foundation/tasks/preload_bundle.js +0 -41
- data/lib/frameworks/sproutcore/themes/ace/resources/scroller/horizontal/horizontal_touch.css +0 -91
- data/lib/frameworks/sproutcore/themes/ace/resources/scroller/vertical/vertical_touch.css +0 -92
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/14px/knob.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/14px/knob_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/14px/slider.css +0 -27
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/16px/knob.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/16px/knob_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/16px/slider.css +0 -27
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/22px/knob.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/22px/knob_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/22px/track.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/track.png +0 -0
@@ -10,10 +10,9 @@
|
|
10
10
|
|
11
11
|
var pane;
|
12
12
|
(function () {
|
13
|
-
var iconURL = sc_static("sproutcore-32.png");
|
13
|
+
var iconURL = sc_static("foundation:sproutcore-32.png");
|
14
14
|
|
15
15
|
pane = SC.ControlTestPane.design()
|
16
|
-
|
17
16
|
.add("3_empty", SC.SegmentedView, {
|
18
17
|
items: ['', '', ''],
|
19
18
|
layout: { height: 25 }
|
@@ -174,6 +173,21 @@ var pane;
|
|
174
173
|
value: "E",
|
175
174
|
layout: { height: 25 }
|
176
175
|
})
|
176
|
+
.add("5_items,layerIds,overflow", SC.SegmentedView, {
|
177
|
+
items: [
|
178
|
+
{ value: "A", width: 70, layerId: 'segment-a' },
|
179
|
+
{ value: "B", width: 70, layerId: 'segment-b' },
|
180
|
+
{ value: "C", width: 70, layerId: 'segment-c' },
|
181
|
+
{ value: "D", width: 70, layerId: 'segment-d' },
|
182
|
+
{ value: "E", width: 70, layerId: 'segment-e' }
|
183
|
+
],
|
184
|
+
itemTitleKey: 'value',
|
185
|
+
itemValueKey: 'value',
|
186
|
+
itemWidthKey: 'width',
|
187
|
+
itemLayerIdKey: 'layerId',
|
188
|
+
value: "E",
|
189
|
+
layout: { height: 25 }
|
190
|
+
})
|
177
191
|
.add("aria-role_tab,tablist", SC.SegmentedView, {
|
178
192
|
items: [
|
179
193
|
{ title: "Item 1" },
|
@@ -191,8 +205,21 @@ var pane;
|
|
191
205
|
],
|
192
206
|
itemTitleKey: "title",
|
193
207
|
layout: { height: 25 }
|
208
|
+
})
|
209
|
+
.add("3_items,1_sel,shouldAutoResize", SC.SegmentedView, {
|
210
|
+
items: "Item1 Item2 Item3".w(),
|
211
|
+
value: "Item2",
|
212
|
+
layout: { height: 25, width: 0 },
|
213
|
+
shouldAutoResize: YES
|
214
|
+
})
|
215
|
+
.add("3_items,1_sel,shouldAutoResize,flexible_layout", SC.SegmentedView, {
|
216
|
+
items: "Item1 Item2 Item3".w(),
|
217
|
+
value: "Item2",
|
218
|
+
layout: { height: 25, left: 0, right: 0 },
|
219
|
+
shouldAutoResize: YES
|
194
220
|
});
|
195
221
|
|
222
|
+
|
196
223
|
// ..........................................................
|
197
224
|
// TEST VIEWS
|
198
225
|
//
|
@@ -452,6 +479,32 @@ var pane;
|
|
452
479
|
ok($(overflowEl).hasClass('sel'), 'overflow segment should have .sel class');
|
453
480
|
});
|
454
481
|
|
482
|
+
test("Check that the overflow menu does not consume hidden buttons when the menu pane shows because of matching layer ids", function () {
|
483
|
+
var sv = pane.view("5_items,layerIds,overflow");
|
484
|
+
var segments = sv.$('.sc-segment-view');
|
485
|
+
|
486
|
+
// Check that we have six segments, five items and one overflow
|
487
|
+
var numberOfSegments = segments.size();
|
488
|
+
equals(numberOfSegments, 6, 'We should start with 6 segment child divs in the segment view');
|
489
|
+
|
490
|
+
sv.showOverflowMenu();
|
491
|
+
|
492
|
+
// the overflow menu should be showing
|
493
|
+
var menu = SC.viewFor(SC.$('.sc-menu')[0]);
|
494
|
+
ok(menu && menu.get('isVisible'), 'overflow menu should be visible');
|
495
|
+
|
496
|
+
// We need the run loop to end so that we go through cleaning up views at the end of the run loop,
|
497
|
+
// this is where the bug I was seeing occurs. (one of my buttons gets destroyed by the menu pane)
|
498
|
+
SC.run(function () {
|
499
|
+
menu.remove();
|
500
|
+
});
|
501
|
+
|
502
|
+
// check that no elements have been consumed
|
503
|
+
segments = sv.$('.sc-segment-view');
|
504
|
+
numberOfSegments = segments.size();
|
505
|
+
equals(numberOfSegments, 6, 'We should end with 6 segment child divs in the segment view');
|
506
|
+
});
|
507
|
+
|
455
508
|
test("Check that the segmented view and segments have aria roles set", function () {
|
456
509
|
var sv = pane.view("aria-role_tab,tablist"),
|
457
510
|
viewElem = sv.$(),
|
@@ -487,7 +540,7 @@ var pane;
|
|
487
540
|
layer1 = view1.get('layer');
|
488
541
|
point = SC.offset(layer1);
|
489
542
|
|
490
|
-
ev = SC.Event.simulateEvent(layer1, 'mousedown', { clientX: point.x, clientY: point.y });
|
543
|
+
ev = SC.Event.simulateEvent(layer1, 'mousedown', { clientX: point.x, clientY: point.y, which: 1 });
|
491
544
|
SC.Event.trigger(layer1, 'mousedown', [ev]);
|
492
545
|
|
493
546
|
ok(view1.$().hasClass('active'), 'The first segment should have an active class on mousedown');
|
@@ -521,4 +574,36 @@ var pane;
|
|
521
574
|
ok(view3.$().hasClass('sel'), 'The third segment should have a sel class on mouseUp');
|
522
575
|
});
|
523
576
|
|
577
|
+
test("passes on mouse events that don't map to a segment", function () {
|
578
|
+
var segmentedView, view1, layer1, point, ev;
|
579
|
+
|
580
|
+
segmentedView = pane.view('3_items,2_sel,1_disabled');
|
581
|
+
view1 = segmentedView.get('childViews').objectAt(0); // $('.sc-segment-view')[0];
|
582
|
+
layer1 = view1.get('layer');
|
583
|
+
point = SC.offset(layer1);
|
584
|
+
|
585
|
+
SC.RunLoop.begin();
|
586
|
+
ev = SC.Event.simulateEvent(layer1, 'mousedown', { clientX: point.x, clientY: point.y, which: 1 });
|
587
|
+
ok(segmentedView.mouseDown(ev), "mouseDown event handler accepts event which maps to a segment.");
|
588
|
+
SC.RunLoop.end();
|
589
|
+
|
590
|
+
SC.RunLoop.begin();
|
591
|
+
ev = SC.Event.simulateEvent(layer1, 'mousedown', { clientX: point.x - 1, clientY: point.y, which: 1 });
|
592
|
+
ok(!segmentedView.mouseDown(ev), "mouseDown event handler passes on event which doesn't map to a segment.");
|
593
|
+
SC.RunLoop.end();
|
594
|
+
});
|
595
|
+
|
596
|
+
test("shouldAutoResize", function () {
|
597
|
+
var segmentedView;
|
598
|
+
|
599
|
+
segmentedView = pane.view('3_items,1_sel,shouldAutoResize');
|
600
|
+
|
601
|
+
ok(segmentedView.getPath('layout.width') !== 0, "View auto-resized to fit the present items.");
|
602
|
+
|
603
|
+
segmentedView = pane.view('3_items,1_sel,shouldAutoResize,flexible_layout');
|
604
|
+
|
605
|
+
ok(SC.none(segmentedView.getPath('layout.width')), "Having flexible layout prevents view from auto-resizing.");
|
606
|
+
});
|
607
|
+
|
608
|
+
|
524
609
|
})();
|
@@ -158,6 +158,14 @@ test("The content of the popup should be recalculated correctly when the list of
|
|
158
158
|
equals(view3.get("_itemList")[2].title, "Again", "The list should have on the 3rd position the title Again");
|
159
159
|
});
|
160
160
|
|
161
|
+
test("The content of the popup should be recalculated correctly when the list of items is empty", function() {
|
162
|
+
equals(view3.get("_itemList").length, 3, "The list should have 3 items.");
|
163
|
+
SC.RunLoop.begin() ;
|
164
|
+
view3.set('items', [] );
|
165
|
+
SC.RunLoop.end() ;
|
166
|
+
equals(view3.get("_itemList").length, 0, "The list should have 0 items.");
|
167
|
+
});
|
168
|
+
|
161
169
|
test("Setting the value of the view should change the title & icon properties", function () {
|
162
170
|
equals(view4.get('value'), "World", "The view gets a default value by sort");
|
163
171
|
equals(view4.get('title'), "World", "The view's title should originally be");
|
@@ -16,7 +16,8 @@ module("SC.SliderView Methods", {
|
|
16
16
|
SC.SliderView.extend({
|
17
17
|
value: 50,
|
18
18
|
minimum: 0,
|
19
|
-
maximum: 100
|
19
|
+
maximum: 100,
|
20
|
+
step: 25
|
20
21
|
})]
|
21
22
|
});
|
22
23
|
pane.append(); // make sure there is a layer...
|
@@ -56,6 +57,8 @@ test("going over maximum slider limit", function() {
|
|
56
57
|
SC.RunLoop.end();
|
57
58
|
|
58
59
|
// TODO: should we allow setting value higher then maximum?
|
60
|
+
// Yes I think so: the value (e.g. from a record) should not be constrained by the view layer just because its value was
|
61
|
+
// bound to an unused slider. - DCP
|
59
62
|
equals(view.get('value'), 150, 'value should now be 150');
|
60
63
|
equals(parseFloat(view.$('.sc-handle').css('left')), 500, 'left of sc-handle should be 100%');
|
61
64
|
});
|
@@ -70,6 +73,18 @@ test("going below minimum slider limit", function() {
|
|
70
73
|
SC.RunLoop.end();
|
71
74
|
|
72
75
|
// TODO: should we allow setting value lower then minimum?
|
76
|
+
// Yes I think so: the value (e.g. from a record) should not be constrained by the view layer just because its value was
|
77
|
+
// bound to an unused slider. - DCP
|
73
78
|
equals(view.get('value'), -10, 'value should now be -10');
|
74
79
|
equals(parseFloat(view.$('.sc-handle').css('left')), 0, 'left of sc-handle should be 0%');
|
75
80
|
});
|
81
|
+
|
82
|
+
test("steps and stepPositions give the correct values.", function() {
|
83
|
+
// This test is of course sensitive to the view's min, max and step.
|
84
|
+
var steps = view.get('steps'),
|
85
|
+
positions = view.get('stepPositions');
|
86
|
+
ok(steps.length === 5 && steps[0] === 0 && steps[1] === 25 && steps[2] === 50 && steps[3] === 75 && steps[4] === 100,
|
87
|
+
"The view's steps property returns [0, 25, 50, 75, 100].");
|
88
|
+
ok(positions.length === 5 && positions[0] === 0 && positions[1] === 0.25 && positions[2] === 0.5 && positions[3] === 0.75 && positions[4] === 1,
|
89
|
+
"The view's stepPositions property returns [0, 0.25, 0.5, 0.75, 1].");
|
90
|
+
})
|
@@ -22,6 +22,13 @@ var pane = SC.ControlTestPane.design()
|
|
22
22
|
maximum: 100,
|
23
23
|
isEnabled: NO
|
24
24
|
})
|
25
|
+
.add("slider no-scroll", SC.SliderView, {
|
26
|
+
layout: {top:0, bottom:0, left:0, width: 250},
|
27
|
+
value: 50,
|
28
|
+
minimum: 0,
|
29
|
+
maximum: 100,
|
30
|
+
updateOnScroll: false
|
31
|
+
})
|
25
32
|
.add("slider value 100", SC.SliderView, {
|
26
33
|
layout: {top:0, bottom:0, left:0, width: 250},
|
27
34
|
value: 100,
|
@@ -70,6 +77,14 @@ var pane = SC.ControlTestPane.design()
|
|
70
77
|
value: 50,
|
71
78
|
minimum: 0,
|
72
79
|
maximum: 100
|
80
|
+
})
|
81
|
+
.add("slider markSteps", SC.SliderView, {
|
82
|
+
layout: { top:0, bottom:0, left:0, width: 250 },
|
83
|
+
value: 20,
|
84
|
+
minimum: 0,
|
85
|
+
maximum: 100,
|
86
|
+
step: 20,
|
87
|
+
markSteps: true
|
73
88
|
});
|
74
89
|
|
75
90
|
// ..........................................................
|
@@ -96,6 +111,12 @@ test("disabled", function() {
|
|
96
111
|
equals(view.$('.sc-handle')[0].style.left, '50%', 'left of sc-handle should be 50%');
|
97
112
|
});
|
98
113
|
|
114
|
+
test("no scroll", function() {
|
115
|
+
var view = pane.view('slider no-scroll');
|
116
|
+
|
117
|
+
ok(!view.mouseWheel({}), "A slider view with updateOnScroll set to false should return NO from the mouseWheel event handler.");
|
118
|
+
});
|
119
|
+
|
99
120
|
test("basic value 100", function() {
|
100
121
|
var view = pane.view('slider value 100');
|
101
122
|
|
@@ -138,4 +159,37 @@ test("Check if attribute aria-orientation is set correctly", function() {
|
|
138
159
|
var viewElem = pane.view('slider aria-orientation').$();
|
139
160
|
equals(viewElem.attr('aria-orientation'), "horizontal", 'aria-orientation should be horizontal');
|
140
161
|
});
|
162
|
+
|
163
|
+
// markSteps
|
164
|
+
|
165
|
+
test("markStep", function() {
|
166
|
+
var view = pane.view('slider markSteps'),
|
167
|
+
marks, expectedCount;
|
168
|
+
|
169
|
+
// Initial.
|
170
|
+
marks = view.$().find('.sc-slider-step-mark');
|
171
|
+
expectedCount = Math.floor((view.get('maximum') - view.get('minimum')) / view.get('step')) + 1; // yeah yeah math.floor + 1 is math.ciel
|
172
|
+
equals(marks.length, expectedCount, "A view with markSteps set to true contains the correct number of marks");
|
173
|
+
ok(marks.eq(2).hasClass('sc-slider-step-mark-2'), "The nth mark has sc-slider-step-mark-n class.");
|
174
|
+
ok(view.$().find('.sc-slider-step-mark-first').length === 1, "Only one mark is labeled as the first.");
|
175
|
+
ok(view.$().find('.sc-slider-step-mark-last').length === 1, "Only one mark is labeled as the last.");
|
176
|
+
|
177
|
+
// Change.
|
178
|
+
SC.run(function() { view.set('maximum', 200); });
|
179
|
+
marks = view.$().find('.sc-slider-step-mark');
|
180
|
+
expectedCount = Math.floor((view.get('maximum') - view.get('minimum')) / view.get('step')) + 1; // yeah yeah math.floor + 1 is math.ciel
|
181
|
+
equals(marks.length, expectedCount, "Changing maximum correctly updates the number of marks");
|
182
|
+
ok(view.$().find('.sc-slider-step-mark-first').length === 1, "Only one mark is labeled as the first.");
|
183
|
+
ok(view.$().find('.sc-slider-step-mark-last').length === 1, "Only one mark is labeled as the last.");
|
184
|
+
|
185
|
+
// Test mark at value = 0. (See https://github.com/sproutcore/sproutcore/issues/1229)
|
186
|
+
SC.run(function() {
|
187
|
+
view.set('minimum', -1).set('maximum', 4).set('step', 1);
|
188
|
+
});
|
189
|
+
|
190
|
+
marks = view.$('.sc-slider-step-mark');
|
191
|
+
equals(marks[1].style.left, "20%", "The mark representing value zero is positioned correctly when minimum is less than zero");
|
192
|
+
|
193
|
+
});
|
194
|
+
|
141
195
|
})();
|
@@ -213,7 +213,7 @@ test("Adding and removing before a divider doesn't screw things majorly", functi
|
|
213
213
|
|
214
214
|
});
|
215
215
|
|
216
|
-
test("Adding and removing several views doesn't screw things", function() {
|
216
|
+
test("Adding and removing several views doesn't screw things up", function() {
|
217
217
|
var view = createSplitView({
|
218
218
|
childViews: 'left middle right'.w(),
|
219
219
|
middle: SC.View.design(SC.SplitChild, { name: 'middle' })
|
@@ -240,4 +240,23 @@ test("Adding and removing several views doesn't screw things", function() {
|
|
240
240
|
SC.RunLoop.end();
|
241
241
|
|
242
242
|
checkDividers(view, 5);
|
243
|
-
});
|
243
|
+
});
|
244
|
+
|
245
|
+
test("SplitView#layoutDirection is correctly propagated to its dividers.", function() {
|
246
|
+
var view = createSplitView(),
|
247
|
+
layoutDirection = view.get('layoutDirection'),
|
248
|
+
nextLayoutDirection = layoutDirection === SC.LAYOUT_VERTICAL ? SC.LAYOUT_HORIZONTAL : SC.LAYOUT_VERTICAL; // hey just in case the default changes
|
249
|
+
|
250
|
+
var divider = view.childViews[1];
|
251
|
+
ok(divider.isSplitDivider, "PRELIM: We found the divider.");
|
252
|
+
|
253
|
+
equals(divider.get('layoutDirection'), layoutDirection, "The divider's layoutDirection should match that of the SplitView.");
|
254
|
+
|
255
|
+
SC.RunLoop.begin();
|
256
|
+
view.set('layoutDirection', nextLayoutDirection);
|
257
|
+
SC.RunLoop.end();
|
258
|
+
|
259
|
+
equals(divider.get('layoutDirection'), nextLayoutDirection, "The divider's layoutDirection should update when the SplitView's does.");
|
260
|
+
|
261
|
+
view.destroy();
|
262
|
+
});
|
@@ -4,7 +4,7 @@
|
|
4
4
|
// portions copyright ©2011 Apple Inc.
|
5
5
|
// License: Licensed under MIT license (see license.js)
|
6
6
|
// ==========================================================================
|
7
|
-
|
7
|
+
/*globals module, test, ok */
|
8
8
|
module('SC.StaticContentView - Basic UI');
|
9
9
|
|
10
10
|
test("Frame Recalculation", function() {
|
@@ -15,33 +15,39 @@ test("Frame Recalculation", function() {
|
|
15
15
|
layout: { top: 10, right: 10, bottom: 10, left: 10 }
|
16
16
|
})
|
17
17
|
});
|
18
|
+
|
18
19
|
var view = SC.StaticContentView.create({
|
19
20
|
content: '<p style="position: relative; margin-top: 80px; font-size: 3em">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>',
|
20
21
|
frameDidChange: function() {
|
21
22
|
callCount += 1;
|
22
23
|
}.observes('frame')
|
23
24
|
});
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
25
|
+
|
26
|
+
SC.run(function() {
|
27
|
+
pane.setPath('contentView.contentView', view);
|
28
|
+
pane.append();
|
29
|
+
|
30
|
+
baseCount = callCount;
|
31
|
+
ok(callCount > 0, 'precond - frame should be called at least once when displayed');
|
32
|
+
|
33
|
+
callCount = 0;pane.adjust('width', 499);
|
34
|
+
ok(callCount > 0, 'frame should recompute after parent resizes');
|
35
|
+
|
36
|
+
callCount = 0;
|
37
|
+
content = 'For today, we celebrate the first glorious anniversary of the Information Purification Directives. We have created, for the first time in all history, a garden of pure ideology. Where each worker may bloom secure from the pests of contradictory and confusing truths.Our Unification of Thought is more powerful a weapon than any fleet or army on earth. We are one people. With one will. One resolve. One cause. Our enemies shall talk themselves to death. And we will bury them with their own confusion. We shall prevail!';
|
38
|
+
|
39
|
+
view.set('content', content);
|
40
|
+
ok(callCount > 0, 'frame should recompute after content changes');
|
41
|
+
callCount = 0;
|
42
|
+
});
|
43
|
+
|
44
|
+
SC.run(function() {
|
45
|
+
var layer = view.get('layer');
|
46
|
+
|
47
|
+
ok(layer.innerHTML.indexOf(content) > -1, 'view should rerender when content changes');
|
48
|
+
view.contentLayoutDidChange();
|
49
|
+
ok(callCount > 0, 'frame should recompute after calling contentLayoutDidChange()');
|
50
|
+
|
51
|
+
pane.remove();
|
52
|
+
});
|
53
|
+
});
|
@@ -5,40 +5,120 @@
|
|
5
5
|
// License: Licensed under MIT license (see license.js)
|
6
6
|
// ==========================================================================
|
7
7
|
|
8
|
-
/*
|
8
|
+
/*globals module, test, ok */
|
9
9
|
|
10
|
-
var iconURL= "http://www.freeiconsweb.com/Icons/16x16_people_icons/People_046.gif";
|
11
|
-
var pane, view;
|
12
10
|
module("SC.TabView", {
|
13
11
|
setup: function() {
|
14
|
-
SC.
|
15
|
-
|
16
|
-
|
17
|
-
SC.
|
18
|
-
|
19
|
-
|
20
|
-
items: [
|
21
|
-
{ title: "tab1", value: "tab1" , icon: iconURL},
|
22
|
-
{ title: "tab2", value: "tab2" , icon: iconURL},
|
23
|
-
{ title: "tab3", value: "tab3" , icon: iconURL}
|
24
|
-
],
|
25
|
-
|
26
|
-
itemTitleKey: 'title',
|
27
|
-
itemValueKey: 'value',
|
28
|
-
itemIconKey: 'icon',
|
29
|
-
layout: { left:12, height: 200, right:12, top:12 }
|
30
|
-
|
31
|
-
})]
|
12
|
+
SC.run(function() {
|
13
|
+
window.globalPage = SC.Page.create({
|
14
|
+
view1: SC.View.create(),
|
15
|
+
view2: SC.View.create()
|
16
|
+
});
|
32
17
|
});
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
view = pane.childViews[0];
|
37
|
-
},
|
38
|
-
|
18
|
+
},
|
19
|
+
|
39
20
|
teardown: function() {
|
40
|
-
|
41
|
-
|
21
|
+
window.globalPage.destroy();
|
22
|
+
delete window.globalPage;
|
42
23
|
}
|
43
24
|
});
|
44
25
|
|
26
|
+
test("Tabs referencing global views.", function() {
|
27
|
+
var pane, view;
|
28
|
+
SC.run(function() {
|
29
|
+
pane = SC.MainPane.create({
|
30
|
+
childViews: ['tabView'],
|
31
|
+
tabView: SC.TabView.extend({
|
32
|
+
nowShowing: 'globalPage.view1',
|
33
|
+
|
34
|
+
items: [
|
35
|
+
{ title: "tab1", value: "globalPage.view1" },
|
36
|
+
{ title: "tab2", value: "globalPage.view2" }
|
37
|
+
]
|
38
|
+
})
|
39
|
+
}).append();
|
40
|
+
view = pane.tabView;
|
41
|
+
});
|
42
|
+
|
43
|
+
ok(view.getPath('containerView.contentView') === window.globalPage.get('view1'), "The tab view should now be showing globalPage.view1.");
|
44
|
+
|
45
|
+
SC.run(function() {
|
46
|
+
view.set('nowShowing', 'globalPage.view2');
|
47
|
+
});
|
48
|
+
|
49
|
+
ok(view.getPath('containerView.contentView') === window.globalPage.get('view2'), "The tab view should now be showing globalPage.view2.");
|
50
|
+
|
51
|
+
// Clean up.
|
52
|
+
SC.run(function() {
|
53
|
+
pane.destroy();
|
54
|
+
});
|
55
|
+
});
|
56
|
+
|
57
|
+
test("Tabs referencing local views.", function() {
|
58
|
+
var pane, view;
|
59
|
+
SC.run(function() {
|
60
|
+
pane = SC.MainPane.create({
|
61
|
+
childViews: ['tabView'],
|
62
|
+
tabView: SC.TabView.extend({
|
63
|
+
nowShowing: 'view1',
|
64
|
+
|
65
|
+
items: [
|
66
|
+
{ title: "tab1", value: "view1" },
|
67
|
+
{ title: "tab2", value: "view2" }
|
68
|
+
],
|
69
|
+
|
70
|
+
view1: SC.View.create(),
|
71
|
+
view2: SC.View.create()
|
72
|
+
})
|
73
|
+
}).append();
|
74
|
+
view = pane.tabView;
|
75
|
+
});
|
76
|
+
|
77
|
+
ok(view.getPath('containerView.contentView') === view.get('view1'), "The tab view's local view1 should now be showing.");
|
78
|
+
|
79
|
+
SC.run(function() {
|
80
|
+
view.set('nowShowing', 'view2');
|
81
|
+
});
|
82
|
+
|
83
|
+
ok(view.getPath('containerView.contentView') === view.get('view2'), "The tab view's local view2 should now be showing.");
|
84
|
+
|
85
|
+
// Clean up.
|
86
|
+
SC.run(function() {
|
87
|
+
pane.destroy();
|
88
|
+
});
|
89
|
+
});
|
90
|
+
|
91
|
+
test("Tabs referencing deep local views.", function() {
|
92
|
+
var pane, view;
|
93
|
+
SC.run(function() {
|
94
|
+
pane = SC.MainPane.create({
|
95
|
+
childViews: ['tabView'],
|
96
|
+
tabView: SC.TabView.extend({
|
97
|
+
nowShowing: '.localPage.view1',
|
98
|
+
|
99
|
+
items: [
|
100
|
+
{ title: "tab1", value: ".localPage.view1" },
|
101
|
+
{ title: "tab2", value: ".localPage.view2" }
|
102
|
+
],
|
103
|
+
localPage: SC.Page.create({
|
104
|
+
view1: SC.View.create(),
|
105
|
+
view2: SC.View.create()
|
106
|
+
})
|
107
|
+
})
|
108
|
+
}).append();
|
109
|
+
view = pane.tabView;
|
110
|
+
});
|
111
|
+
|
112
|
+
ok(view.getPath('containerView.contentView') === view.getPath('localPage.view1'), "The tab view's local view1 should now be showing.");
|
113
|
+
|
114
|
+
SC.run(function() {
|
115
|
+
view.set('nowShowing', '.localPage.view2');
|
116
|
+
});
|
117
|
+
|
118
|
+
ok(view.getPath('containerView.contentView') === view.getPath('localPage.view2'), "The tab view's local view2 should now be showing.");
|
119
|
+
|
120
|
+
// Clean up.
|
121
|
+
SC.run(function() {
|
122
|
+
pane.destroy();
|
123
|
+
});
|
124
|
+
});
|