sproutcore 1.7.1.beta → 1.8.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +44 -0
- data/README.rdoc +20 -20
- data/VERSION.yml +3 -3
- data/lib/Buildfile +1 -1
- data/lib/buildtasks/build.rake +5 -0
- data/lib/buildtasks/manifest.rake +19 -1
- data/lib/frameworks/sproutcore/Buildfile +19 -17
- data/lib/frameworks/sproutcore/CHANGELOG.md +163 -29
- data/lib/frameworks/sproutcore/README.md +29 -8
- data/lib/frameworks/sproutcore/apps/statechart_routing/Buildfile +12 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/controllers/login_controller.js +11 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/controllers/main_controller.js +7 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/controllers/statechart_controller.js +17 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/core.js +25 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/main.js +15 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/resources/_theme.css +18 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/resources/bar_page.js +14 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/resources/foo_page.js +14 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/resources/loading.rhtml +9 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/resources/login_page.js +61 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/resources/main_page.js +46 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/statechart.js +76 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/theme.js +27 -0
- data/lib/frameworks/sproutcore/apps/tests/controllers/targets.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/states/no_targets.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/states/ready_detail.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/states/ready_empty.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/states/ready_list.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/states/ready_no_tests.js +1 -1
- data/lib/frameworks/sproutcore/apps/welcome/controllers/targets.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/ajax/system/request.js +14 -1
- data/lib/frameworks/sproutcore/frameworks/ajax/system/response.js +15 -15
- data/lib/frameworks/sproutcore/frameworks/ajax/tests/system/request.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/animation/core.js +8 -5
- data/lib/frameworks/sproutcore/frameworks/bootstrap/system/browser.js +302 -70
- data/lib/frameworks/sproutcore/frameworks/bootstrap/system/loader.js +19 -14
- data/lib/frameworks/sproutcore/frameworks/bootstrap/tests/system/browser.js +471 -149
- data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/array.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/object.js +42 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/run_loop.js +3 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/string.js +7 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/action_support.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/delegate_support.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/responder_context.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/selection_support.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/body_overflow.js +63 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/keyboard.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/layout.js +37 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/main.js +28 -6
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/pane.js +10 -3
- data/lib/frameworks/sproutcore/frameworks/core_foundation/protocols/sparse_array_delegate.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/browser.js +66 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/builder.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/cursor.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/event.js +58 -57
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/locale.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/locale.js.orig +445 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/platform.js +51 -31
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/ready.js +5 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/render_context.js +53 -69
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/responder.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/root_responder.js +98 -72
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/string.js +37 -3
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/timer.js +7 -4
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/array_case.js +21 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/object/content_destroyed.js +7 -7
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/string.js +23 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/browser.js +66 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/event.js +22 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/locale.js +11 -11
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/end.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/escape_html.js +41 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_className.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_style.js +8 -8
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/update.js +17 -16
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/selection_set/remove.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/build_children.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/class_name_bindings_test.js +15 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/createChildViews.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view.js +50 -30
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/acceleration.js +46 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/animation.js +1 -43
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/keyboard.js +8 -34
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout.js +3 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout_style.js +10 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/manipulation.js +6 -5
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/theming.js +22 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/data_source.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/mixins/relationship_support.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/models/child_attribute.js +0 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/models/children_attribute.js +35 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record.js +46 -19
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +23 -9
- data/lib/frameworks/sproutcore/frameworks/datastore/models/single_attribute.js +2 -3
- data/lib/frameworks/sproutcore/frameworks/datastore/system/many_array.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/system/nested_store.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/system/query.js +294 -302
- data/lib/frameworks/sproutcore/frameworks/datastore/system/query.js.orig +1531 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/system/record_array.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/system/store.js +14 -11
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/integration/many_array.js +63 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/many_attribute.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array.js +50 -10
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array_complex.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_complex.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/destroy.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/refresh.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record_attribute.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/single_attribute.js +114 -67
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/commitChangesFromNestedStore.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/readDataHash.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/compare.js +54 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/evaluation.js +29 -9
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/parse.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/core_methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/flush.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/cancelRecord.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/commitChangesFromNestedStore.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/commitRecord.js +37 -45
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/find.js +127 -127
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/pushChanges.js +16 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/pushRelationships.js +42 -4
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/readDataHash.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/system/datetime.js +13 -7
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/tests/system/datetime.js +8 -0
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/resources/strings.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/system/datetime.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/debug/core.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/core.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_row_delegate.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_view_delegate.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/alert.js +1 -4
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/menu.js +19 -6
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/modal.js +30 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/palette.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/panel.js +24 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/picker.js +121 -28
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/sheet.js +15 -15
- data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drag_data_source.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drop_target.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/protocols/responder.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/button.js +39 -15
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/collection.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/image_button.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/panel.js +14 -6
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/popup_button.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/progress.js +11 -11
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segment.js +4 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segmented.js +1 -51
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/slider.js +11 -16
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-error-48.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/slider.css +0 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/system/drag.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/system/undo_manager.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/alert/ui.js +9 -9
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/content.js +11 -11
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/ui.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/reload.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/date_field/ui.js +107 -81
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/rowDelegate.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/progress/ui.js +68 -60
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/radio/methods.js +57 -12
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/integration.js +21 -19
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroller.js +5 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/ui.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select/ui.js +32 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/split/methods.js +12 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/stacked/ui_comments.js +12 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/tab/methods.js +0 -8
- data/lib/frameworks/sproutcore/frameworks/desktop/views/button.js +77 -132
- data/lib/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +5 -6
- data/lib/frameworks/sproutcore/frameworks/desktop/views/collection.js +16 -15
- data/lib/frameworks/sproutcore/frameworks/desktop/views/date_field.js +52 -52
- data/lib/frameworks/sproutcore/frameworks/desktop/views/disclosure.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/grid.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/list.js +147 -147
- data/lib/frameworks/sproutcore/frameworks/desktop/views/list_item.js +11 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_scroll.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/views/popup_button.js +22 -12
- data/lib/frameworks/sproutcore/frameworks/desktop/views/radio.js +13 -7
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scene.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scroll.js +462 -441
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scroller.js +48 -62
- data/lib/frameworks/sproutcore/frameworks/desktop/views/segment.js +22 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/segmented.js +150 -32
- data/lib/frameworks/sproutcore/frameworks/desktop/views/select.js +104 -45
- data/lib/frameworks/sproutcore/frameworks/desktop/views/select_button.js +42 -20
- data/lib/frameworks/sproutcore/frameworks/desktop/views/slider.js +24 -24
- data/lib/frameworks/sproutcore/frameworks/desktop/views/split.js +148 -154
- data/lib/frameworks/sproutcore/frameworks/desktop/views/stacked.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/static_content.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/tab.js +8 -7
- data/lib/frameworks/sproutcore/frameworks/desktop/views/web.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/Buildfile +2 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/controllers/files.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/controllers/library.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/controllers/targets.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/controllers/view_configs.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/mixins/drop_down.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/states/ready.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/views/plist_item.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/views/web.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/controllers/page_design.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/css/css_style_sheet.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/designers/object_designer.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/designers/view_designer.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/mixins/snap_lines.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/views/designer_drop_target.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/views/drawing.js +21 -21
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/views/page_item_view.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/views/form.js +59 -53
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/menu/views/menu/scroll.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/tests/models/polymorphism/simple.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/core_scroll.js +6 -6
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/desktop/scroll.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/touch/scroll.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/ext/menu.js +14 -10
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/ext/menu_item.js +17 -6
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/views/popup_button.js +38 -14
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/views/select.js +5 -13
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/mixins/split_child.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/mixins/split_thumb.js +5 -3
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/tests/children.js +19 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/tests/methods.js +20 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/tests/split_thumb.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/views/split.js +35 -12
- data/lib/frameworks/sproutcore/frameworks/formatters/README +6 -0
- data/lib/frameworks/sproutcore/frameworks/formatters/english.lproj/strings.js +174 -0
- data/lib/frameworks/sproutcore/frameworks/formatters/formatters/date_formatter.js +351 -0
- data/lib/frameworks/sproutcore/frameworks/formatters/tests/date_formatter.js +517 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/core.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_resize.js +345 -138
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/button.js +5 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/content_value_support.js +176 -42
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/editable.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/flowed_layout.js +137 -105
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/gestureable.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editable.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editor.js +16 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/static_layout.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/validatable.js +47 -47
- data/lib/frameworks/sproutcore/frameworks/foundation/private/tree_item_observer.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/helpers/sizing.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/label.js +28 -6
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/render_delegate.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/benchmark.css +0 -5
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/bootstrap.rhtml +34 -19
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/button_view.css +0 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/label.css +1 -5
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/text_field.css +8 -9
- data/lib/frameworks/sproutcore/frameworks/foundation/system/benchmark.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/system/module.js +179 -47
- data/lib/frameworks/sproutcore/frameworks/foundation/system/task_queue.js +34 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/system/text_selection.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/system/user_defaults.js +26 -12
- data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/misc.js +7 -7
- data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/string_measurement.js +12 -4
- data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/string_metric_optimization.js +202 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/content_value_support/content.js +77 -8
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/flowed_layout/tests.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editable/beginEditing.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editable/commitEditing.js +4 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editable/discardEditing.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editor/beginEditing.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editor/commitEditing.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editor/discardEditing.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/utils/pointInElement.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/label/ui.js +0 -8
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/ui.js +163 -149
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/credit_card.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/date.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/date_time.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/password.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/validator.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/views/field.js +16 -43
- data/lib/frameworks/sproutcore/frameworks/foundation/views/image.js +4 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/views/inline_text_field.js +67 -54
- data/lib/frameworks/sproutcore/frameworks/foundation/views/label.js +49 -38
- data/lib/frameworks/sproutcore/frameworks/foundation/views/text_field.js +285 -242
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffer.js +13 -13
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffered.js +19 -22
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery-sc.js +9 -3
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery.js +231 -186
- data/lib/frameworks/sproutcore/frameworks/media/views/audio.js +145 -143
- data/lib/frameworks/sproutcore/frameworks/media/views/video.js +156 -154
- data/lib/frameworks/sproutcore/frameworks/qunit/qunit/qunit.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/routing/system/routes.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/routing/system/routes.js.orig +540 -0
- data/lib/frameworks/sproutcore/frameworks/routing/tests/system/routes.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/core.js +15 -8
- data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/base.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/replace.js +12 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/ext/function.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/array.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/copyable.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/enumerable.js +7 -7
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +98 -32
- data/lib/frameworks/sproutcore/frameworks/runtime/private/chain_observer.js +7 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_queue.js +14 -3
- data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_set.js +98 -13
- data/lib/frameworks/sproutcore/frameworks/runtime/system/binding.js +8 -14
- data/lib/frameworks/sproutcore/frameworks/runtime/system/enumerator.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/system/error.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/system/index_set.js +23 -6
- data/lib/frameworks/sproutcore/frameworks/runtime/system/logger.js +69 -18
- data/lib/frameworks/sproutcore/frameworks/runtime/system/object.js +57 -31
- data/lib/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +189 -14
- data/lib/frameworks/sproutcore/frameworks/runtime/system/string.js +82 -22
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/chained.js +20 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/observable.js +125 -4
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/binding.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/rangeStartForIndex.js +37 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/remove.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/logger.js +16 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/run_loop.js +75 -4
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/string.js +41 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/mixins/statechart_delegate.js +113 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/private/state_path_matcher.js +312 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/system/async.js +18 -22
- data/lib/frameworks/sproutcore/frameworks/statechart/system/state.js +508 -131
- data/lib/frameworks/sproutcore/frameworks/statechart/system/state_route_handler_context.js +78 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/system/statechart.js +265 -44
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/event_handling/basic/with_concurrent_states.js +16 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/event_handling/responder/responder_chain.js +11 -3
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/private/state_path_matcher.js +116 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/add_substate.js +108 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/find_first_relative_current_state/with_concurrent.js +179 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/find_first_relative_current_state/without_concurrent.js +74 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/get_state.js +141 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/get_substate.js +340 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/route_triggered.js +161 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/try_to_handle_event.js +288 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/history_state/standard/without_concurrent_states/context.js +5 -33
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/routing/with_concurrent_states/basic.js +213 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/routing/without_concurrent_states/basic.js +212 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/standard/without_concurrent_states/core.js +8 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/{state/namespacing.js → statechart/methods/get_state.js} +3 -41
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/statechart/{invoke_state_method.js → methods/invoke_state_method.js} +1 -1
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/{event_handling/advanced → statechart}/respond_to_event.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/system/state_route_handler_context/methods/retry.js +64 -0
- data/lib/frameworks/sproutcore/frameworks/table/core.js +2 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/controls/button.js +0 -1
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/ext/handlebars.js +29 -5
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/ext/handlebars/bind.js +4 -3
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/ext/handlebars/collection.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/ext/handlebars/localization.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/ext/handlebars/view.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{handlebars → template_view}/handlebars.js +493 -357
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/mixins/template_helpers/checkbox_support.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/mixins/template_helpers/text_field_support.js +13 -2
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/panes/template.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/controls/button.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/mixins/template_helpers/checkbox_support.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/mixins/template_helpers/text_field_support.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/panes/template.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/views/template/collection.js +39 -14
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/views/template/core.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/views/template/handlebars.js +57 -6
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/views/bindable_span.js +21 -6
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/views/template.js +9 -3
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/views/template_collection.js +55 -26
- data/lib/frameworks/sproutcore/frameworks/testing/system/equiv.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/testing/system/plan.js +122 -122
- data/lib/frameworks/sproutcore/frameworks/testing/system/runner.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/testing/system/suite.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/yuireset/resources/base.css +1 -1
- data/lib/frameworks/sproutcore/frameworks/yuireset/resources/reset.css +0 -1
- data/lib/frameworks/sproutcore/frameworks/yuireset/resources/view.css +4 -4
- data/lib/frameworks/sproutcore/lib/index.rhtml +55 -32
- data/lib/frameworks/sproutcore/license.js +2 -4
- data/lib/frameworks/sproutcore/themes/ace/resources/body.css +5 -1
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/18px/button.css +2 -2
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/button.css +21 -13
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/button.css +17 -10
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/button.css +4 -3
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/button.css +20 -12
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/button.css +16 -8
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/jumbo/button.css +17 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/small/button.css +17 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/disclosure/ace/disclosure.css +2 -2
- data/lib/frameworks/sproutcore/themes/ace/resources/master-detail/master-detail.css +2 -2
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover.css +5 -3
- data/lib/frameworks/sproutcore/themes/iphone_theme/english.lproj/core.css +1 -1
- data/lib/frameworks/sproutcore/themes/legacy_theme/english.lproj/toolbar.css +1 -1
- data/lib/gen/app/USAGE +17 -4
- data/lib/gen/language/Buildfile +4 -4
- data/lib/gen/language/USAGE +4 -4
- data/lib/gen/page/templates/pages/@target_name@/Buildfile +7 -7
- data/lib/gen/{html_app → statechart_app}/Buildfile +0 -0
- data/lib/gen/{html_app → statechart_app}/README +0 -0
- data/lib/gen/statechart_app/USAGE +21 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/Buildfile +9 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/core.js +24 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/main.js +26 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/resources/_theme.css +18 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/resources/loading.rhtml +9 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/resources/main_page.js +21 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/statechart.js +8 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/states/ready_state.js +12 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/theme.js +24 -0
- data/lib/sproutcore/builders.rb +1 -0
- data/lib/sproutcore/builders/base.rb +19 -1
- data/lib/sproutcore/builders/chance_file.rb +6 -1
- data/lib/sproutcore/builders/handlebars.rb +1 -9
- data/lib/sproutcore/builders/javascript.rb +1 -10
- data/lib/sproutcore/builders/json.rb +25 -0
- data/lib/sproutcore/builders/less.rb +1 -1
- data/lib/sproutcore/builders/sass.rb +1 -1
- data/lib/sproutcore/builders/stylesheet.rb +1 -9
- data/lib/sproutcore/helpers/html5_manifest.rb +1 -1
- data/lib/sproutcore/helpers/static_helper.rb +42 -0
- data/lib/sproutcore/rack/proxy.rb +21 -3
- data/lib/sproutcore/rack/service.rb +3 -2
- data/lib/sproutcore/tools.rb +18 -25
- data/lib/sproutcore/tools/gen.rb +10 -3
- data/lib/sproutcore/tools/init.rb +11 -10
- data/spec/buildtasks/manifest/prepare_build_tasks/json_spec.rb +62 -0
- data/spec/fixtures/builder_tests/apps/handlebars_test/Buildfile +1 -1
- data/spec/fixtures/builder_tests/apps/json_test/sc_static.json +2 -0
- data/spec/lib/builders/json_spec.rb +53 -0
- data/sproutcore.gemspec +2 -2
- data/vendor/chance/lib/chance/parser.rb +1 -1
- metadata +222 -177
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/datetime.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/debug/invoke_once_last_debugging.js +0 -259
- data/lib/frameworks/sproutcore/frameworks/documentation/core.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/system/chance.js +0 -69
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/editable/ui.js +0 -44
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_text_field/ui.js +0 -64
- data/lib/frameworks/sproutcore/frameworks/mini/license.js +0 -30
- data/lib/gen/html_app/USAGE +0 -15
- data/lib/gen/html_app/templates/apps/@target_name@/@target_name@.js +0 -11
- data/lib/gen/html_app/templates/apps/@target_name@/resources/images/.gitkeep +0 -0
- data/lib/gen/html_app/templates/apps/@target_name@/resources/stylesheets/@target_name@.css +0 -6
- data/lib/gen/html_app/templates/apps/@target_name@/resources/templates/@target_name@.handlebars +0 -1
- data/lib/gen/html_project/Buildfile +0 -45
- data/lib/gen/html_project/INIT +0 -3
- data/lib/gen/html_project/README +0 -1
- data/lib/gen/html_project/USAGE +0 -2
- data/lib/gen/html_project/templates/@filename@/Buildfile +0 -5
- data/lib/gen/html_project/templates/@filename@/README +0 -4
@@ -152,7 +152,7 @@ SC.SplitView = SC.View.extend({
|
|
152
152
|
//
|
153
153
|
// RENDERING
|
154
154
|
// Things like layoutDirection must be rendered as class names.
|
155
|
-
// We delegate to a render
|
155
|
+
// We delegate to a render delegate.
|
156
156
|
//
|
157
157
|
displayProperties: ['layoutDirection'],
|
158
158
|
renderDelegateName: 'splitRenderDelegate',
|
@@ -163,7 +163,7 @@ SC.SplitView = SC.View.extend({
|
|
163
163
|
/**
|
164
164
|
* @private
|
165
165
|
* Returns either the width or the height of the SplitView's frame,
|
166
|
-
* depending on the value of
|
166
|
+
* depending on the value of layoutDirection. If layoutDirection is
|
167
167
|
* SC.LAYOUT_HORIZONTAL, this will return the SplitView's width; otherwise,
|
168
168
|
* the SplitView's height.
|
169
169
|
*
|
@@ -179,12 +179,12 @@ SC.SplitView = SC.View.extend({
|
|
179
179
|
}.property('frame', 'layoutDirection').cacheable(),
|
180
180
|
|
181
181
|
viewDidResize: function(orig) {
|
182
|
-
this.
|
182
|
+
this.scheduleTiling();
|
183
183
|
orig();
|
184
184
|
}.enhance(),
|
185
185
|
|
186
186
|
layoutDirectionDidChange: function() {
|
187
|
-
this.
|
187
|
+
this.scheduleTiling();
|
188
188
|
}.observes('layoutDirection'),
|
189
189
|
|
190
190
|
//
|
@@ -193,7 +193,7 @@ SC.SplitView = SC.View.extend({
|
|
193
193
|
/**
|
194
194
|
* Attempts to adjust the position of a child view, such as a divider.
|
195
195
|
*
|
196
|
-
* The implementation for this may be
|
196
|
+
* The implementation for this may be overridden in the delegate method
|
197
197
|
* splitViewAdjustPositionForChild.
|
198
198
|
*
|
199
199
|
* You may use this method to automatically collapse the view by setting
|
@@ -303,7 +303,7 @@ SC.SplitView = SC.View.extend({
|
|
303
303
|
|
304
304
|
// we initialize the size first thing in case the size is empty (fill)
|
305
305
|
// if it is empty, the way we position the views would lead to inconsistent
|
306
|
-
// sizes. In addition, we will constrain all initial sizes so they'll be
|
306
|
+
// sizes. In addition, we will constrain all initial sizes so they'll be valid
|
307
307
|
// when/if we auto-resize them.
|
308
308
|
var size = this.invokeDelegateMethod(del, 'splitViewGetSizeForChild', this, child);
|
309
309
|
size = this.invokeDelegateMethod(del, 'splitViewConstrainSizeForChild', this, child, size);
|
@@ -348,20 +348,38 @@ SC.SplitView = SC.View.extend({
|
|
348
348
|
|
349
349
|
// finally, remove all dividers that we didn't keep
|
350
350
|
for (dividerId in oldDividers) {
|
351
|
-
this.removeChild(oldDividers[dividerId]);
|
352
351
|
oldDividers[dividerId].destroy();
|
353
352
|
}
|
354
353
|
|
355
354
|
this._scsv_dividers = newDividers;
|
356
355
|
|
357
|
-
//
|
358
|
-
|
359
|
-
this.invokeOnce('_scsv_tile');
|
356
|
+
// retile immediately.
|
357
|
+
this._scsv_tile();
|
360
358
|
},
|
361
359
|
|
362
360
|
//
|
363
361
|
// BASIC LAYOUT CODE
|
364
362
|
//
|
363
|
+
|
364
|
+
/**
|
365
|
+
Whether the SplitView needs to be re-laid out. You can change this by
|
366
|
+
calling scheduleTiling.
|
367
|
+
*/
|
368
|
+
needsTiling: YES,
|
369
|
+
|
370
|
+
/**
|
371
|
+
Schedules a retile of the SplitView.
|
372
|
+
*/
|
373
|
+
scheduleTiling: function() {
|
374
|
+
this.set('needsTiling', YES);
|
375
|
+
this.invokeOnce('_scsv_tile');
|
376
|
+
},
|
377
|
+
|
378
|
+
tileIfNeeded: function() {
|
379
|
+
if (!this.get('needsTiling')) return;
|
380
|
+
this._scsv_tile();
|
381
|
+
},
|
382
|
+
|
365
383
|
/**
|
366
384
|
* @private
|
367
385
|
* Tiling is the simpler of two layout paths. Tiling lays out all of the
|
@@ -404,6 +422,8 @@ SC.SplitView = SC.View.extend({
|
|
404
422
|
this.adjust('height', size);
|
405
423
|
}
|
406
424
|
}
|
425
|
+
|
426
|
+
this.set('needsTiling', NO);
|
407
427
|
},
|
408
428
|
|
409
429
|
/**
|
@@ -504,7 +524,7 @@ SC.SplitView = SC.View.extend({
|
|
504
524
|
|
505
525
|
var isResizable = this.invokeDelegateMethod(del, 'splitViewShouldResizeChildToFit', this, child);
|
506
526
|
if (isResizable === useResizable) {
|
507
|
-
// if outOfSize === -1 then we are
|
527
|
+
// if outOfSize === -1 then we are aggressively resizing (not resizing proportionally)
|
508
528
|
if (outOfSize === -1) size += diff
|
509
529
|
else size += (size / outOfSize) * diff;
|
510
530
|
|
@@ -888,7 +908,10 @@ SC.SplitView = SC.View.extend({
|
|
888
908
|
* @returns Number
|
889
909
|
*/
|
890
910
|
splitViewGetSizeForChild: function(splitView, child) {
|
891
|
-
|
911
|
+
var size = child.get('size');
|
912
|
+
if (SC.none(size)) return 100;
|
913
|
+
|
914
|
+
return size;
|
892
915
|
},
|
893
916
|
|
894
917
|
/**
|
@@ -0,0 +1,174 @@
|
|
1
|
+
SC.stringsFor('English', {
|
2
|
+
"SC.Date.Era.AD.Abbreviated": "AD",
|
3
|
+
"SC.Date.Era.AD.Full": "Anno Domini",
|
4
|
+
"SC.Date.Era.AD.Letter": "A",
|
5
|
+
|
6
|
+
"SC.Date.Era.BC.Abbreviated": "BC",
|
7
|
+
"SC.Date.Era.BC.Full": "Before Christ",
|
8
|
+
"SC.Date.Era.BC.Letter": "B",
|
9
|
+
|
10
|
+
"SC.Date.Quarter.Q1.Abbreviated": "Q1",
|
11
|
+
"SC.Date.Quarter.Q1.Full": "1st quarter",
|
12
|
+
"SC.Date.Quarter.StandAlone.Q1.Abbreviated": "Q1",
|
13
|
+
"SC.Date.Quarter.StandAlone.Q1.Full": "1st Quarter",
|
14
|
+
|
15
|
+
"SC.Date.Quarter.Q2.Abbreviated": "Q2",
|
16
|
+
"SC.Date.Quarter.Q2.Full": "2nd quarter",
|
17
|
+
"SC.Date.Quarter.StandAlone.Q2.Abbreviated": "Q2",
|
18
|
+
"SC.Date.Quarter.StandAlone.Q2.Full": "2nd Quarter",
|
19
|
+
|
20
|
+
"SC.Date.Quarter.Q3.Abbreviated": "Q3",
|
21
|
+
"SC.Date.Quarter.Q3.Full": "3rd quarter",
|
22
|
+
"SC.Date.Quarter.StandAlone.Q3.Abbreviated": "Q3",
|
23
|
+
"SC.Date.Quarter.StandAlone.Q3.Full": "3rd Quarter",
|
24
|
+
|
25
|
+
"SC.Date.Quarter.Q4.Abbreviated": "Q4",
|
26
|
+
"SC.Date.Quarter.Q4.Full": "4th quarter",
|
27
|
+
"SC.Date.Quarter.StandAlone.Q4.Abbreviated": "Q4",
|
28
|
+
"SC.Date.Quarter.StandAlone.Q4.Full": "4th Quarter",
|
29
|
+
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
"SC.Date.Month.January.Abbreviated": "Jan",
|
34
|
+
"SC.Date.Month.January.Full": "January",
|
35
|
+
"SC.Date.Month.January.Letter": "J",
|
36
|
+
"SC.Date.Month.StandAlone.January.Abbreviated": "Jan",
|
37
|
+
"SC.Date.Month.StandAlone.January.Full": "January",
|
38
|
+
"SC.Date.Month.StandAlone.January.Letter": "J",
|
39
|
+
|
40
|
+
"SC.Date.Month.February.Abbreviated": "Feb",
|
41
|
+
"SC.Date.Month.February.Full": "February",
|
42
|
+
"SC.Date.Month.February.Letter": "F",
|
43
|
+
"SC.Date.Month.StandAlone.February.Abbreviated": "Feb",
|
44
|
+
"SC.Date.Month.StandAlone.February.Full": "February",
|
45
|
+
"SC.Date.Month.StandAlone.February.Letter": "F",
|
46
|
+
|
47
|
+
"SC.Date.Month.March.Abbreviated": "Mar",
|
48
|
+
"SC.Date.Month.March.Full": "March",
|
49
|
+
"SC.Date.Month.March.Letter": "M",
|
50
|
+
"SC.Date.Month.StandAlone.March.Abbreviated": "Mar",
|
51
|
+
"SC.Date.Month.StandAlone.March.Full": "March",
|
52
|
+
"SC.Date.Month.StandAlone.March.Letter": "M",
|
53
|
+
|
54
|
+
"SC.Date.Month.April.Abbreviated": "Apr",
|
55
|
+
"SC.Date.Month.April.Full": "April",
|
56
|
+
"SC.Date.Month.April.Letter": "A",
|
57
|
+
"SC.Date.Month.StandAlone.April.Abbreviated": "Apr",
|
58
|
+
"SC.Date.Month.StandAlone.April.Full": "April",
|
59
|
+
"SC.Date.Month.StandAlone.April.Letter": "A",
|
60
|
+
|
61
|
+
"SC.Date.Month.May.Abbreviated": "May",
|
62
|
+
"SC.Date.Month.May.Full": "May",
|
63
|
+
"SC.Date.Month.May.Letter": "M",
|
64
|
+
"SC.Date.Month.StandAlone.May.Abbreviated": "May",
|
65
|
+
"SC.Date.Month.StandAlone.May.Full": "May",
|
66
|
+
"SC.Date.Month.StandAlone.May.Letter": "M",
|
67
|
+
|
68
|
+
"SC.Date.Month.June.Abbreviated": "Jun",
|
69
|
+
"SC.Date.Month.June.Full": "June",
|
70
|
+
"SC.Date.Month.June.Letter": "J",
|
71
|
+
"SC.Date.Month.StandAlone.June.Abbreviated": "Jun",
|
72
|
+
"SC.Date.Month.StandAlone.June.Full": "June",
|
73
|
+
"SC.Date.Month.StandAlone.June.Letter": "J",
|
74
|
+
|
75
|
+
"SC.Date.Month.July.Abbreviated": "Jul",
|
76
|
+
"SC.Date.Month.July.Full": "July",
|
77
|
+
"SC.Date.Month.July.Letter": "J",
|
78
|
+
"SC.Date.Month.StandAlone.July.Abbreviated": "Jul",
|
79
|
+
"SC.Date.Month.StandAlone.July.Full": "July",
|
80
|
+
"SC.Date.Month.StandAlone.July.Letter": "J",
|
81
|
+
|
82
|
+
"SC.Date.Month.August.Abbreviated": "Aug",
|
83
|
+
"SC.Date.Month.August.Full": "August",
|
84
|
+
"SC.Date.Month.August.Letter": "A",
|
85
|
+
"SC.Date.Month.StandAlone.August.Abbreviated": "Aug",
|
86
|
+
"SC.Date.Month.StandAlone.August.Full": "August",
|
87
|
+
"SC.Date.Month.StandAlone.August.Letter": "A",
|
88
|
+
|
89
|
+
"SC.Date.Month.September.Abbreviated": "Sep",
|
90
|
+
"SC.Date.Month.September.Full": "September",
|
91
|
+
"SC.Date.Month.September.Letter": "S",
|
92
|
+
"SC.Date.Month.StandAlone.September.Abbreviated": "Sep",
|
93
|
+
"SC.Date.Month.StandAlone.September.Full": "September",
|
94
|
+
"SC.Date.Month.StandAlone.September.Letter": "S",
|
95
|
+
|
96
|
+
"SC.Date.Month.October.Abbreviated": "Oct",
|
97
|
+
"SC.Date.Month.October.Full": "October",
|
98
|
+
"SC.Date.Month.October.Letter": "O",
|
99
|
+
"SC.Date.Month.StandAlone.October.Abbreviated": "Oct",
|
100
|
+
"SC.Date.Month.StandAlone.October.Full": "October",
|
101
|
+
"SC.Date.Month.StandAlone.October.Letter": "O",
|
102
|
+
|
103
|
+
"SC.Date.Month.November.Abbreviated": "Nov",
|
104
|
+
"SC.Date.Month.November.Full": "November",
|
105
|
+
"SC.Date.Month.November.Letter": "N",
|
106
|
+
"SC.Date.Month.StandAlone.November.Abbreviated": "Nov",
|
107
|
+
"SC.Date.Month.StandAlone.November.Full": "November",
|
108
|
+
"SC.Date.Month.StandAlone.November.Letter": "N",
|
109
|
+
|
110
|
+
"SC.Date.Month.December.Abbreviated": "Dec",
|
111
|
+
"SC.Date.Month.December.Full": "December",
|
112
|
+
"SC.Date.Month.December.Letter": "D",
|
113
|
+
"SC.Date.Month.StandAlone.December.Abbreviated": "Dec",
|
114
|
+
"SC.Date.Month.StandAlone.December.Full": "December",
|
115
|
+
"SC.Date.Month.StandAlone.December.Letter": "D",
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
"SC.Date.Day.Monday.Abbreviated": "Mon",
|
120
|
+
"SC.Date.Day.Monday.Full": "Monday",
|
121
|
+
"SC.Date.Day.Monday.Letter": "M",
|
122
|
+
"SC.Date.Day.StandAlone.Monday.Abbreviated": "Mon",
|
123
|
+
"SC.Date.Day.StandAlone.Monday.Full": "Monday",
|
124
|
+
"SC.Date.Day.StandAlone.Monday.Letter": "M",
|
125
|
+
|
126
|
+
"SC.Date.Day.Tuesday.Abbreviated": "Tue",
|
127
|
+
"SC.Date.Day.Tuesday.Full": "Tuesday",
|
128
|
+
"SC.Date.Day.Tuesday.Letter": "T",
|
129
|
+
"SC.Date.Day.StandAlone.Tuesday.Abbreviated": "Tue",
|
130
|
+
"SC.Date.Day.StandAlone.Tuesday.Full": "Tuesday",
|
131
|
+
"SC.Date.Day.StandAlone.Tuesday.Letter": "T",
|
132
|
+
|
133
|
+
"SC.Date.Day.Wednesday.Abbreviated": "Wed",
|
134
|
+
"SC.Date.Day.Wednesday.Full": "Wednesday",
|
135
|
+
"SC.Date.Day.Wednesday.Letter": "W",
|
136
|
+
"SC.Date.Day.StandAlone.Wednesday.Abbreviated": "Wed",
|
137
|
+
"SC.Date.Day.StandAlone.Wednesday.Full": "Wednesday",
|
138
|
+
"SC.Date.Day.StandAlone.Wednesday.Letter": "W",
|
139
|
+
|
140
|
+
"SC.Date.Day.Thursday.Abbreviated": "Thu",
|
141
|
+
"SC.Date.Day.Thursday.Full": "Thursday",
|
142
|
+
"SC.Date.Day.Thursday.Letter": "R",
|
143
|
+
"SC.Date.Day.StandAlone.Thursday.Abbreviated": "Thu",
|
144
|
+
"SC.Date.Day.StandAlone.Thursday.Full": "Thursday",
|
145
|
+
"SC.Date.Day.StandAlone.Thursday.Letter": "R",
|
146
|
+
|
147
|
+
"SC.Date.Day.Friday.Abbreviated": "Fri",
|
148
|
+
"SC.Date.Day.Friday.Full": "Friday",
|
149
|
+
"SC.Date.Day.Friday.Letter": "F",
|
150
|
+
"SC.Date.Day.StandAlone.Friday.Abbreviated": "Fri",
|
151
|
+
"SC.Date.Day.StandAlone.Friday.Full": "Friday",
|
152
|
+
"SC.Date.Day.StandAlone.Friday.Letter": "F",
|
153
|
+
|
154
|
+
"SC.Date.Day.Saturday.Abbreviated": "Sat",
|
155
|
+
"SC.Date.Day.Saturday.Full": "Saturday",
|
156
|
+
"SC.Date.Day.Saturday.Letter": "S",
|
157
|
+
"SC.Date.Day.StandAlone.Saturday.Abbreviated": "Sat",
|
158
|
+
"SC.Date.Day.StandAlone.Saturday.Full": "Saturday",
|
159
|
+
"SC.Date.Day.StandAlone.Saturday.Letter": "S",
|
160
|
+
|
161
|
+
"SC.Date.Day.Sunday.Abbreviated": "Sun",
|
162
|
+
"SC.Date.Day.Sunday.Full": "Sunday",
|
163
|
+
"SC.Date.Day.Sunday.Letter": "S",
|
164
|
+
"SC.Date.Day.StandAlone.Sunday.Abbreviated": "Sun",
|
165
|
+
"SC.Date.Day.StandAlone.Sunday.Full": "Sunday",
|
166
|
+
"SC.Date.Day.StandAlone.Sunday.Letter": "S",
|
167
|
+
|
168
|
+
|
169
|
+
|
170
|
+
"SC.Date.Period.AM": "AM",
|
171
|
+
"SC.Date.Period.PM": "PM"
|
172
|
+
|
173
|
+
|
174
|
+
});
|
@@ -0,0 +1,351 @@
|
|
1
|
+
/**
|
2
|
+
SC.DateFormatter is used with String.fmt to format dates with a format
|
3
|
+
string. For example:
|
4
|
+
|
5
|
+
"My date: %{date:yyyy} %{date:MM} %{date:dd}".fmt(myDate, SC.DateFormatter)
|
6
|
+
|
7
|
+
You can use almost any of the Unicode Technical Standard #35 (draft 10)
|
8
|
+
formatting strings. See:
|
9
|
+
|
10
|
+
http://unicode.org/reports/tr35/tr35-10.html#Date_Format_Patterns
|
11
|
+
|
12
|
+
Note that you can only put one (yyyy, MM, dd) per token, but you can put as
|
13
|
+
many tokens as you'd like.
|
14
|
+
|
15
|
+
*/
|
16
|
+
SC.DateFormatter = function(date, f) {
|
17
|
+
if (!date) {
|
18
|
+
throw "No date passed to date formatter.";
|
19
|
+
} else if (!date.getFullYear) {
|
20
|
+
throw "Object passed to date formatter was not a date!";
|
21
|
+
}
|
22
|
+
|
23
|
+
// f is expected to be a character, potentially repeated.
|
24
|
+
// What we do is figure out what letter, and how many times it is repeated.
|
25
|
+
// we also sanity-check.
|
26
|
+
if (!f) {
|
27
|
+
throw "No formatting string passed to date formatter. Date: " + date;
|
28
|
+
}
|
29
|
+
|
30
|
+
var len = f.length, first = f[0], idx;
|
31
|
+
for (idx = 1; idx < len; idx++) {
|
32
|
+
if (f[idx] !== first) {
|
33
|
+
throw "Invalid format string for a date; all characters must be the same: " + f + "; date: " + date;
|
34
|
+
}
|
35
|
+
}
|
36
|
+
|
37
|
+
var formatter = SC.DateFormatter[first];
|
38
|
+
if (!formatter) {
|
39
|
+
throw "No formatter `" + first + "` exists for date: " + date;
|
40
|
+
}
|
41
|
+
|
42
|
+
return formatter(date, len);
|
43
|
+
};
|
44
|
+
|
45
|
+
//
|
46
|
+
// Era
|
47
|
+
//
|
48
|
+
SC.DateFormatter.G = function(date, count) {
|
49
|
+
var era = "SC.Date.Era.";
|
50
|
+
era += date.getFullYear() >= 0 ? "AD" : "BC";
|
51
|
+
|
52
|
+
if (count <= 3) {
|
53
|
+
// Abbreviated era (AD, BC, etc.)
|
54
|
+
return (era + ".Abbreviated").loc();
|
55
|
+
} else if (count === 4) {
|
56
|
+
return (era + ".Full").loc();
|
57
|
+
} else if (count === 5) {
|
58
|
+
return (era + ".Letter").loc();
|
59
|
+
} else {
|
60
|
+
throw "Invalid era format: expected at most 5 digits; found " + count + ".";
|
61
|
+
}
|
62
|
+
};
|
63
|
+
|
64
|
+
//
|
65
|
+
// Year
|
66
|
+
//
|
67
|
+
SC.DateFormatter.y = function(date, count) {
|
68
|
+
// this is expected to be the year not accounting for AD/BC.
|
69
|
+
// JavaScript stores it as a negative for BC years, so we need to
|
70
|
+
// do a Math.abs()
|
71
|
+
var year = Math.abs(date.getFullYear()).toString();
|
72
|
+
while (year.length < count) { year = '0' + year; }
|
73
|
+
year = year.substr(year.length - count);
|
74
|
+
return year;
|
75
|
+
};
|
76
|
+
|
77
|
+
// We only support gregorian calendars, so YYYY would mean the same as yyyy
|
78
|
+
SC.DateFormatter.Y = function(date, count) {
|
79
|
+
return SC.DateFormatter.y(date, count);
|
80
|
+
};
|
81
|
+
|
82
|
+
// u just doesn't do Math.abs
|
83
|
+
SC.DateFormatter.u = function(date, count) {
|
84
|
+
var lt0 = date.getFullYear() < 0;
|
85
|
+
var year = Math.abs(date.getFullYear()).toString();
|
86
|
+
|
87
|
+
while (year.length < count) { year = '0' + year; }
|
88
|
+
year = year.substr(year.length - count);
|
89
|
+
|
90
|
+
return (lt0 ? "-" : "") + year;
|
91
|
+
};
|
92
|
+
|
93
|
+
//
|
94
|
+
// Quarter
|
95
|
+
//
|
96
|
+
// I am not overly sure what "standAlone" is, but I think it may be for those
|
97
|
+
// cases where the month is "standalone" and therefore should be capitalized,
|
98
|
+
// and such...
|
99
|
+
SC.DateFormatter.Q = function(date, count, isStandAlone) {
|
100
|
+
var month = date.getMonth(),
|
101
|
+
quarter = Math.floor(month / 3) + 1,
|
102
|
+
quarterName = "SC.Date.Quarter." + (isStandAlone ? "StandAlone." : "") +
|
103
|
+
"Q" + quarter;
|
104
|
+
|
105
|
+
if (count === 1) {
|
106
|
+
return "" + quarter;
|
107
|
+
} else if (count === 2) {
|
108
|
+
return "0" + quarter;
|
109
|
+
} else if (count === 3) {
|
110
|
+
return (quarterName + ".Abbreviated").loc();
|
111
|
+
} else if (count == 4) {
|
112
|
+
return (quarterName + ".Full").loc();
|
113
|
+
} else {
|
114
|
+
throw "Unrecognized number of characters for quarter: " + count;
|
115
|
+
}
|
116
|
+
};
|
117
|
+
|
118
|
+
SC.DateFormatter.q = function(date, count) {
|
119
|
+
return SC.DateFormatter.Q(date, count, YES);
|
120
|
+
};
|
121
|
+
|
122
|
+
//
|
123
|
+
// Month
|
124
|
+
//
|
125
|
+
|
126
|
+
// It is a bit easier to translate an english month name to another language
|
127
|
+
// than to translate a number like 0, 1, 2, etc.--especially because you have
|
128
|
+
// no idea, as a translator: are we beginning at 0, or at 1?
|
129
|
+
SC.DateFormatter.ENGLISH_MONTH_NAMES = [
|
130
|
+
"January", "February", "March",
|
131
|
+
"April", "May", "June",
|
132
|
+
"July", "August", "September",
|
133
|
+
"October", "November", "December"
|
134
|
+
];
|
135
|
+
|
136
|
+
SC.DateFormatter.M = function(date, count, isStandAlone) {
|
137
|
+
|
138
|
+
var month = date.getMonth(),
|
139
|
+
monthString = "" + (month + 1),
|
140
|
+
monthName = "SC.Date.Month." + (isStandAlone ? "StandAlone." : "") +
|
141
|
+
SC.DateFormatter.ENGLISH_MONTH_NAMES[month];
|
142
|
+
|
143
|
+
if (count === 1) {
|
144
|
+
return monthString;
|
145
|
+
} else if (count === 2) {
|
146
|
+
if (monthString.length < 2) monthString = "0" + monthString;
|
147
|
+
return monthString;
|
148
|
+
} else if (count === 3) {
|
149
|
+
return (monthName + ".Abbreviated").loc();
|
150
|
+
} else if (count === 4) {
|
151
|
+
return (monthName + ".Full").loc();
|
152
|
+
} else if (count === 5) {
|
153
|
+
return (monthName + ".Letter").loc();
|
154
|
+
} else {
|
155
|
+
throw "The number of Ms or Ls must be from 1 to 5. Supplied: " + count;
|
156
|
+
}
|
157
|
+
};
|
158
|
+
|
159
|
+
SC.DateFormatter.L = function(date, count) {
|
160
|
+
return SC.DateFormatter.M(date, count, YES);
|
161
|
+
};
|
162
|
+
|
163
|
+
// OMITTED: l; used only with Chinese calendar.
|
164
|
+
SC.DateFormatter.l = function() { throw "`l` date formatter not implemented."; };
|
165
|
+
|
166
|
+
//
|
167
|
+
// Omitted for now: Week Number
|
168
|
+
//
|
169
|
+
SC.DateFormatter.w = function(date, count) {
|
170
|
+
throw "Week number currently not supported for date formatting.";
|
171
|
+
};
|
172
|
+
|
173
|
+
SC.DateFormatter.W = function(date, count) {
|
174
|
+
throw "Week number currently not supported for date formatting.";
|
175
|
+
};
|
176
|
+
|
177
|
+
//
|
178
|
+
// Day
|
179
|
+
//
|
180
|
+
SC.DateFormatter.d = function(date, count) {
|
181
|
+
// day of month
|
182
|
+
var dayString = "" + date.getDate();
|
183
|
+
if (count > dayString.length) dayString = "0" + dayString;
|
184
|
+
return dayString;
|
185
|
+
};
|
186
|
+
|
187
|
+
SC.DateFormatter.D = function(date, count) {
|
188
|
+
// day of year
|
189
|
+
var firstDayOfYear = new Date(date.getFullYear(), 0, 1),
|
190
|
+
timestamp = firstDayOfYear.getTime(),
|
191
|
+
diff = date.getTime() - timestamp,
|
192
|
+
days = Math.floor(diff / (24 * 60 * 60 * 1000)) + 1;
|
193
|
+
|
194
|
+
days = "" + days;
|
195
|
+
while (days.length < count) days = "0" + days;
|
196
|
+
return days;
|
197
|
+
};
|
198
|
+
|
199
|
+
SC.DateFormatter.F = function(date, count) {
|
200
|
+
// day of week in month; for instance, 2 if it is the second wednesday in the month.
|
201
|
+
throw "Day of week in month (F) is not supported in date formatting";
|
202
|
+
};
|
203
|
+
|
204
|
+
SC.DateFormatter.g = function(date, count) {
|
205
|
+
// Julian day, modified: should be based on local timezone,
|
206
|
+
// and, more than that, local timezone midnight (not noon)
|
207
|
+
throw "Julian day not supported in date formatting.";
|
208
|
+
};
|
209
|
+
|
210
|
+
//
|
211
|
+
// Week Day
|
212
|
+
//
|
213
|
+
|
214
|
+
// See discussion of using a mapping to english names for months...
|
215
|
+
SC.DateFormatter.ENGLISH_DAY_NAMES = [
|
216
|
+
// JavaScript starts week on Sunday
|
217
|
+
"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
|
218
|
+
];
|
219
|
+
|
220
|
+
|
221
|
+
SC.DateFormatter.E = function(date, count) {
|
222
|
+
// E is like e, except that it doesn't ever create a day-of-week number,
|
223
|
+
// and therefore, if the count is less than three, it should be coerced
|
224
|
+
// up to three, because it means the same thing (short day)
|
225
|
+
if (count < 3) count = 3;
|
226
|
+
return SC.DateFormatter.e(date, count);
|
227
|
+
};
|
228
|
+
|
229
|
+
SC.DateFormatter.e = function(date, count, isStandAlone) {
|
230
|
+
var day = date.getDay(),
|
231
|
+
dayString = "" + (day + 1),
|
232
|
+
dayName = "SC.Date.Day." + (isStandAlone ? "StandAlone." : "") +
|
233
|
+
SC.DateFormatter.ENGLISH_DAY_NAMES[day];
|
234
|
+
|
235
|
+
if (count === 1) {
|
236
|
+
return dayString;
|
237
|
+
} else if (count === 2) {
|
238
|
+
dayString = "0" + dayString;
|
239
|
+
return dayString;
|
240
|
+
} else if (count === 3) {
|
241
|
+
return (dayName + ".Abbreviated").loc();
|
242
|
+
} else if (count === 4) {
|
243
|
+
return (dayName + ".Full").loc();
|
244
|
+
} else if (count === 5) {
|
245
|
+
return (dayName + ".Letter").loc();
|
246
|
+
} else {
|
247
|
+
throw "Unrecognized number of `e`s, `c`s, or `E`s in date format string.";
|
248
|
+
}
|
249
|
+
};
|
250
|
+
|
251
|
+
SC.DateFormatter.c = function(date, count) {
|
252
|
+
return SC.DateFormatter.e(date, count, YES);
|
253
|
+
};
|
254
|
+
|
255
|
+
|
256
|
+
|
257
|
+
//
|
258
|
+
// Period
|
259
|
+
//
|
260
|
+
SC.DateFormatter.a = function(date, count) {
|
261
|
+
if (count !== 1) {
|
262
|
+
throw "`a` can only be included in a date format string once.";
|
263
|
+
}
|
264
|
+
|
265
|
+
var name = "SC.Date.Period." + (date.getHours() > 11 ? "PM" : "AM");
|
266
|
+
return name.loc();
|
267
|
+
};
|
268
|
+
|
269
|
+
//
|
270
|
+
// Hour
|
271
|
+
//
|
272
|
+
// upper-case: 0-based. WEIRD PART: upper-case H and lower-case k are
|
273
|
+
// 24 hour. WTF? This makes NO SENSE AT ALL!
|
274
|
+
SC.DateFormatter._h = function(date, count, is24, base) {
|
275
|
+
var hour = date.getHours();
|
276
|
+
if (!is24) hour = hour % 12;
|
277
|
+
if (base) {
|
278
|
+
if (!is24) {
|
279
|
+
// if hour is 0, then we need to make it 12.
|
280
|
+
if (hour === 0) hour = 12;
|
281
|
+
} else {
|
282
|
+
// if hour is 0, hour needs to be 24
|
283
|
+
if (hour === 0) hour = 24;
|
284
|
+
}
|
285
|
+
}
|
286
|
+
|
287
|
+
var hourStr = "" + hour;
|
288
|
+
if (hourStr.length < count) hourStr = "0" + hourStr;
|
289
|
+
|
290
|
+
return hourStr;
|
291
|
+
};
|
292
|
+
|
293
|
+
SC.DateFormatter.h = function(date, count) {
|
294
|
+
return SC.DateFormatter._h(date, count, NO, 1);
|
295
|
+
};
|
296
|
+
|
297
|
+
SC.DateFormatter.H = function(date, count) {
|
298
|
+
return SC.DateFormatter._h(date, count, YES, 0);
|
299
|
+
};
|
300
|
+
|
301
|
+
SC.DateFormatter.K = function(date, count) {
|
302
|
+
return SC.DateFormatter._h(date, count, NO, 0);
|
303
|
+
};
|
304
|
+
|
305
|
+
SC.DateFormatter.k = function(date, count) {
|
306
|
+
return SC.DateFormatter._h(date, count, YES, 1);
|
307
|
+
};
|
308
|
+
|
309
|
+
//
|
310
|
+
// Minute
|
311
|
+
//
|
312
|
+
SC.DateFormatter.m = function(date, count) {
|
313
|
+
var str = "" + date.getMinutes();
|
314
|
+
if (str.length < count) str = "0" + str;
|
315
|
+
return str;
|
316
|
+
};
|
317
|
+
|
318
|
+
SC.DateFormatter.s = function(date, count) {
|
319
|
+
var str = "" + date.getSeconds();
|
320
|
+
if (str.length < count) str = "0" + str;
|
321
|
+
return str;
|
322
|
+
};
|
323
|
+
|
324
|
+
SC.DateFormatter.S = function(date, count) {
|
325
|
+
var fraction = date.getMilliseconds() / 1000.0,
|
326
|
+
mult = Math.pow(10, count);
|
327
|
+
|
328
|
+
fraction = Math.round(fraction * mult);
|
329
|
+
fraction = "" + fraction;
|
330
|
+
|
331
|
+
while(fraction.length < count) fraction="0" + fraction;
|
332
|
+
return fraction;
|
333
|
+
};
|
334
|
+
|
335
|
+
SC.DateFormatter.A = function(date, count) {
|
336
|
+
// ms in day...
|
337
|
+
var timestamp = new Date(date.getFullYear(), date.getMonth(), date.getDay()).getTime();
|
338
|
+
var res = date.getTime() - timestamp;
|
339
|
+
res = "" + res;
|
340
|
+
while (res.length < count) res = "0" + res;
|
341
|
+
return res;
|
342
|
+
};
|
343
|
+
|
344
|
+
SC.DateFormatter.z =
|
345
|
+
SC.DateFormatter.Z =
|
346
|
+
SC.DateFormatter.v =
|
347
|
+
SC.DateFormatter.V = function(date, count) {
|
348
|
+
throw "Timezone not supported in date format strings.";
|
349
|
+
};
|
350
|
+
|
351
|
+
|