sproutcore 1.6.0.1-java → 1.7.1.beta-java
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +21 -0
- data/Gemfile +5 -0
- data/Rakefile +26 -13
- data/VERSION.yml +2 -2
- data/lib/Buildfile +43 -4
- data/lib/buildtasks/build.rake +10 -0
- data/lib/buildtasks/helpers/file_rule.rb +22 -0
- data/lib/buildtasks/helpers/file_rule_list.rb +137 -0
- data/lib/buildtasks/manifest.rake +133 -122
- data/lib/frameworks/sproutcore/CHANGELOG.md +69 -2
- data/lib/frameworks/sproutcore/apps/tests/english.lproj/strings.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/bootstrap/system/browser.js +28 -22
- data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/array.js +9 -5
- data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/controller.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/controls/button.js +18 -13
- data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/handlebars/bind.js +5 -3
- data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/handlebars/collection.js +2 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/action_support.js +80 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/template_helpers/text_field_support.js +84 -116
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/pane.js +8 -5
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/event.js +157 -157
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/platform.js +5 -3
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/root_responder.js +6 -6
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/sparse_array.js +10 -7
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/action_support.js +106 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template/collection.js +18 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template/handlebars.js +71 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/attribute_bindings_test.js +38 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/class_name_bindings_test.js +47 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layoutChildViews.js +18 -18
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layoutStyle.js +42 -10
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view.js +158 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/keyboard.js +26 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout_style.js +14 -8
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record.js +15 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +108 -108
- data/lib/frameworks/sproutcore/frameworks/datastore/system/query.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/system/record_array.js +2 -4
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/error_methods.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/single_attribute.js +26 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/builders.js +7 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/error_methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/system/datetime.js +4 -1
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/tests/system/datetime.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/menu.js +26 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/picker.js +97 -96
- data/lib/frameworks/sproutcore/frameworks/desktop/system/drag.js +4 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/ui.js +17 -4
- data/lib/frameworks/sproutcore/frameworks/desktop/views/collection.js +7 -7
- data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +7 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scroll.js +12 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/views/web.js +23 -14
- data/lib/frameworks/sproutcore/frameworks/experimental/Buildfile +5 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/menu/render_delegates/menu_scroller.js +28 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/menu/tests/menu/scroll.js +235 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/menu/views/menu/scroll.js +363 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/menu/views/menu/scroller.js +250 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/render_delegates/desktop_scroller.js +92 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/render_delegates/native_scroll.js +25 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/render_delegates/scroll.js +33 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/render_delegates/touch_scroller.js +76 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/tests/scroll/integration.js +50 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/tests/scroll/methods.js +143 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/tests/scroll/ui.js +258 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/core_scroll.js +1164 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/core_scroller.js +332 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/desktop/scroll.js +236 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/desktop/scroller.js +347 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/scroll.js +15 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/scroller.js +10 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/touch/scroll.js +804 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/touch/scroller.js +133 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/text_field.css +3 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/number.js +3 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/views/text_field.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/media/views/audio.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/media/views/controls.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/media/views/media_slider.js +2 -4
- data/lib/frameworks/sproutcore/frameworks/media/views/mini_controls.js +2 -4
- data/lib/frameworks/sproutcore/frameworks/media/views/simple_controls.js +2 -4
- data/lib/frameworks/sproutcore/frameworks/media/views/video.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/routing/system/routes.js +29 -3
- data/lib/frameworks/sproutcore/frameworks/runtime/core.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/replace.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/private/property_chain.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/system/binding.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/runtime/system/index_set.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/system/object.js +1 -1
- data/lib/frameworks/sproutcore/themes/ace/resources/collection/normal/list_item.css +2 -2
- data/lib/frameworks/sproutcore/themes/legacy_theme/english.lproj/segmented.css +1 -1
- data/lib/gen/app/templates/apps/@target_name@/Buildfile +3 -5
- data/lib/gen/app/templates/apps/@target_name@/resources/_theme.css +18 -0
- data/lib/gen/project/templates/@filename@/Buildfile +2 -2
- data/lib/sproutcore.rb +30 -5
- data/lib/sproutcore/builders.rb +1 -0
- data/lib/sproutcore/builders/chance_file.rb +9 -16
- data/lib/sproutcore/builders/html.rb +2 -1
- data/lib/sproutcore/builders/minify.rb +4 -35
- data/lib/sproutcore/builders/module.rb +38 -1
- data/lib/sproutcore/builders/split.rb +63 -0
- data/lib/sproutcore/builders/strings.rb +7 -1
- data/lib/sproutcore/helpers.rb +1 -1
- data/lib/sproutcore/helpers/css_split.rb +190 -0
- data/lib/sproutcore/helpers/entry_sorter.rb +2 -0
- data/lib/sproutcore/helpers/minifier.rb +40 -16
- data/lib/sproutcore/helpers/static_helper.rb +35 -17
- data/lib/sproutcore/models/manifest.rb +26 -0
- data/lib/sproutcore/models/target.rb +12 -1
- data/lib/sproutcore/rack.rb +1 -0
- data/lib/sproutcore/rack/proxy.rb +244 -225
- data/lib/sproutcore/rack/restrict_ip.rb +67 -0
- data/lib/sproutcore/rack/service.rb +8 -2
- data/lib/sproutcore/tools.rb +102 -46
- data/lib/sproutcore/tools/build.rb +91 -43
- data/lib/sproutcore/tools/gen.rb +2 -3
- data/lib/sproutcore/tools/manifest.rb +22 -16
- data/lib/sproutcore/tools/server.rb +21 -0
- data/spec/buildtasks/helpers/accept_list +22 -0
- data/spec/buildtasks/helpers/accept_list.rb +128 -0
- data/spec/buildtasks/helpers/list.json +11 -0
- data/spec/buildtasks/manifest/prepare_build_tasks/chance_2x_spec.rb +1 -39
- data/spec/buildtasks/manifest/prepare_build_tasks/chance_spec.rb +0 -38
- data/spec/buildtasks/manifest/prepare_build_tasks/combine_spec.rb +4 -4
- data/spec/buildtasks/manifest/prepare_build_tasks/module_spec.rb +2 -2
- data/spec/buildtasks/manifest/prepare_build_tasks/packed_2x_indirect_spec.rb +7 -16
- data/spec/buildtasks/manifest/prepare_build_tasks/packed_2x_spec.rb +7 -17
- data/spec/buildtasks/manifest/prepare_build_tasks/packed_spec.rb +11 -6
- data/spec/fixtures/builder_tests/Buildfile +2 -1
- data/spec/fixtures/builder_tests/apps/module_test/modules/required_module/core.js +0 -0
- data/spec/lib/builders/module_spec.rb +1 -1
- data/spec/spec_helper.rb +1 -0
- data/sproutcore.gemspec +4 -9
- data/vendor/chance/lib/chance.rb +25 -6
- data/vendor/chance/lib/chance/factory.rb +45 -0
- data/vendor/chance/lib/chance/instance.rb +173 -28
- data/vendor/chance/lib/chance/instance/data_url.rb +0 -29
- data/vendor/chance/lib/chance/instance/slicing.rb +57 -4
- data/vendor/chance/lib/chance/instance/spriting.rb +112 -21
- data/vendor/chance/lib/chance/parser.rb +80 -52
- data/vendor/sproutcore/SCCompiler.jar +0 -0
- data/vendor/sproutcore/lib/args4j-2.0.12.jar +0 -0
- data/vendor/sproutcore/lib/yuicompressor-2.4.2.jar +0 -0
- metadata +84 -25
@@ -0,0 +1,133 @@
|
|
1
|
+
// ==========================================================================
|
2
|
+
// Project: SproutCore - JavaScript Application Framework
|
3
|
+
// Copyright: ©2006-2011 Strobe Inc. and contributors.
|
4
|
+
// Portions ©2008-2011 Apple Inc. All rights reserved.
|
5
|
+
// License: Licensed under MIT license (see license.js)
|
6
|
+
// ==========================================================================
|
7
|
+
sc_require('views/core_scroller');
|
8
|
+
|
9
|
+
/** @class
|
10
|
+
Implementation of a touch scroller view to be used in tandem with
|
11
|
+
`SC.TouchScrollView`.
|
12
|
+
|
13
|
+
To style the touch scroller view, implement your own render delegate.
|
14
|
+
|
15
|
+
@extends SC.CoreScrollerView
|
16
|
+
*/
|
17
|
+
SC.TouchScrollerView = SC.CoreScrollerView.extend(
|
18
|
+
/** @scope SC.TouchScrollerView.prototype */{
|
19
|
+
|
20
|
+
/**
|
21
|
+
@type Array
|
22
|
+
@default ['sc-touch-scroller-view']
|
23
|
+
@see SC.View#classNames
|
24
|
+
*/
|
25
|
+
classNames: ['sc-touch-scroller-view'],
|
26
|
+
|
27
|
+
/**
|
28
|
+
@type Array
|
29
|
+
@default ['displayThumbPosition', 'displayThumbLength']
|
30
|
+
@see SC.View#displayProperties
|
31
|
+
*/
|
32
|
+
displayProperties: ['displayThumbPosition', 'displayThumbLength'],
|
33
|
+
|
34
|
+
/**
|
35
|
+
@type Number
|
36
|
+
@default 12
|
37
|
+
*/
|
38
|
+
scrollbarThickness: 12,
|
39
|
+
|
40
|
+
/**
|
41
|
+
@type Boolean
|
42
|
+
@default YES
|
43
|
+
*/
|
44
|
+
isTranslucent: YES,
|
45
|
+
|
46
|
+
/**
|
47
|
+
@type Number
|
48
|
+
@default 5
|
49
|
+
*/
|
50
|
+
capLength: 5,
|
51
|
+
|
52
|
+
/**
|
53
|
+
@type Number
|
54
|
+
@default 0
|
55
|
+
*/
|
56
|
+
capOverlap: 0,
|
57
|
+
|
58
|
+
/**
|
59
|
+
@type Boolean
|
60
|
+
@default NO
|
61
|
+
*/
|
62
|
+
hasButtons: NO,
|
63
|
+
|
64
|
+
/**
|
65
|
+
@type Number
|
66
|
+
@default 36
|
67
|
+
*/
|
68
|
+
buttonOverlap: 36,
|
69
|
+
|
70
|
+
/**
|
71
|
+
@type String
|
72
|
+
@default 'touchScrollerRenderDelegate'
|
73
|
+
*/
|
74
|
+
renderDelegateName: 'touchScrollerRenderDelegate',
|
75
|
+
|
76
|
+
/**
|
77
|
+
@type Number
|
78
|
+
@observes value
|
79
|
+
@observes _touchScrollValue
|
80
|
+
*/
|
81
|
+
displayValue: function () {
|
82
|
+
var touchValue = this.get('_touchScrollValue');
|
83
|
+
return !SC.none(touchValue) ? touchValue : this.get('value');
|
84
|
+
}.property("value", "_touchScrollValue").cacheable(),
|
85
|
+
|
86
|
+
// ..........................................................
|
87
|
+
// INTERNAL SUPPORT
|
88
|
+
//
|
89
|
+
|
90
|
+
/** @private */
|
91
|
+
touchScrollDidStart: function (value) {
|
92
|
+
this.set("_touchScrollValue", value);
|
93
|
+
},
|
94
|
+
|
95
|
+
/** @private */
|
96
|
+
touchScrollDidEnd: function (value) {
|
97
|
+
this.set("_touchScrollValue", null);
|
98
|
+
},
|
99
|
+
|
100
|
+
/** @private */
|
101
|
+
touchScrollDidChange: function (value) {
|
102
|
+
this.set("_touchScrollValue", value);
|
103
|
+
},
|
104
|
+
|
105
|
+
/** @private
|
106
|
+
Updates the thumb display length and position to reflect
|
107
|
+
the ability for touch scroll views to go out of bounds.
|
108
|
+
|
109
|
+
This makes the scroller shrink when scrolling out of the
|
110
|
+
bounds of the view, while ensuring that the scroller doesn't
|
111
|
+
go past it's minimum bounds.
|
112
|
+
*/
|
113
|
+
_sctcv_updateThumbDisplay: function () {
|
114
|
+
var max = this.get("scrollerLength") - this.get('capLength'),
|
115
|
+
min = this.get("minimum") + this.get('capLength'),
|
116
|
+
position = this.get('thumbPosition'),
|
117
|
+
length = this.get('thumbLength');
|
118
|
+
|
119
|
+
if (position + length > max) {
|
120
|
+
position = Math.min(max - 20, position);
|
121
|
+
length = max - position;
|
122
|
+
}
|
123
|
+
|
124
|
+
if (position < min) {
|
125
|
+
length -= min - position;
|
126
|
+
position = min;
|
127
|
+
}
|
128
|
+
|
129
|
+
this.setIfChanged('displayThumbPosition', position);
|
130
|
+
this.setIfChanged('displayThumbLength', Math.round(length - 1044));
|
131
|
+
}.observes('thumbPosition', 'thumbLength', 'scrollerLength', 'capLength', 'minimum')
|
132
|
+
|
133
|
+
});
|
@@ -27,8 +27,7 @@
|
|
27
27
|
top: 0px;
|
28
28
|
left: 0px;
|
29
29
|
width: 100%;
|
30
|
-
|
31
|
-
right: 0px;
|
30
|
+
height: 100%;
|
32
31
|
display: block;
|
33
32
|
background: transparent;
|
34
33
|
vertical-align: middle;
|
@@ -36,7 +35,7 @@
|
|
36
35
|
outline: none;
|
37
36
|
-webkit-appearance:none;
|
38
37
|
}
|
39
|
-
|
38
|
+
|
40
39
|
textarea {
|
41
40
|
position: absolute;
|
42
41
|
top: 0px;
|
@@ -44,6 +43,7 @@
|
|
44
43
|
width:100%;
|
45
44
|
bottom: 0px;
|
46
45
|
right: 0px;
|
46
|
+
padding-top: 10px;
|
47
47
|
display: block;
|
48
48
|
background: transparent;
|
49
49
|
vertical-align: middle;
|
@@ -51,7 +51,7 @@ SC.Validator.Number = SC.Validator.extend(
|
|
51
51
|
} else if (this.get('places') > 0) {
|
52
52
|
value = parseFloat(value) ;
|
53
53
|
} else {
|
54
|
-
if(value.length
|
54
|
+
if(value.length===1 && value.match(/-/)) value = null;
|
55
55
|
else {
|
56
56
|
result = parseInt(value,0) ;
|
57
57
|
if(isNaN(result)){
|
@@ -84,9 +84,11 @@ SC.Validator.Number = SC.Validator.extend(
|
|
84
84
|
Allow only numbers, dashes, period, and commas
|
85
85
|
*/
|
86
86
|
validateKeyDown: function(form, field, charStr) {
|
87
|
+
if(!charStr) charStr = "";
|
87
88
|
var text = field.$input().val();
|
88
89
|
if (!text) text='';
|
89
90
|
text+=charStr;
|
91
|
+
|
90
92
|
if(this.get('places')===0){
|
91
93
|
if(charStr.length===0) return true;
|
92
94
|
else return text.match(/^[\-{0,1}]?[0-9,\0]*/)[0]===text;
|
@@ -961,9 +961,9 @@ SC.TextFieldView = SC.FieldView.extend(SC.StaticLayout, SC.Editable,
|
|
961
961
|
the hint text if needed.
|
962
962
|
*/
|
963
963
|
didLoseKeyResponderTo: function(keyView) {
|
964
|
-
|
965
|
-
|
966
|
-
|
964
|
+
SC.RunLoop.begin();
|
965
|
+
this.fieldDidBlur();
|
966
|
+
SC.RunLoop.end();
|
967
967
|
this.invokeLater("scrollToOriginIfNeeded", 100);
|
968
968
|
},
|
969
969
|
|
@@ -8,12 +8,10 @@
|
|
8
8
|
|
9
9
|
sc_require('views/media_slider');
|
10
10
|
/** @class
|
11
|
-
|
12
|
-
(Document Your View Here)
|
13
|
-
|
14
11
|
@extends SC.View
|
15
12
|
*/
|
16
|
-
SC.MiniMediaControlsView = SC.View.extend(
|
13
|
+
SC.MiniMediaControlsView = SC.View.extend(
|
14
|
+
/** @scope SC.MiniMediaControlsView.prototype */{
|
17
15
|
|
18
16
|
target: null,
|
19
17
|
|
@@ -8,12 +8,10 @@
|
|
8
8
|
|
9
9
|
sc_require('views/media_slider');
|
10
10
|
/** @class
|
11
|
-
|
12
|
-
(Document Your View Here)
|
13
|
-
|
14
11
|
@extends SC.View
|
15
12
|
*/
|
16
|
-
SC.SimpleMediaControlsView = SC.View.extend(
|
13
|
+
SC.SimpleMediaControlsView = SC.View.extend(
|
14
|
+
/** @scope SC.SimpleMediaControlsView.prototype */{
|
17
15
|
|
18
16
|
target: null,
|
19
17
|
|
@@ -214,6 +214,30 @@ SC.routes = SC.Object.create(
|
|
214
214
|
@type {String}
|
215
215
|
*/
|
216
216
|
location: function(key, value) {
|
217
|
+
this._skipRoute = NO;
|
218
|
+
return this._extractLocation(key, value);
|
219
|
+
}.property(),
|
220
|
+
|
221
|
+
/*
|
222
|
+
Works exactly like 'location' but you usee this property only when
|
223
|
+
you want to just change the location w/out triggering the routes
|
224
|
+
*/
|
225
|
+
informLocation: function(key, value){
|
226
|
+
this._skipRoute = YES;
|
227
|
+
// This is a very special case where this property
|
228
|
+
// has a very heavy influence on the 'location' property
|
229
|
+
// this is a case where you might want to use idempotent
|
230
|
+
// but you would take a performance hit because it is possible
|
231
|
+
// call set() multiple time and we don't want to take the extra
|
232
|
+
// cost, so we just invalidate the cached set() value ourselves
|
233
|
+
// you shouldn't do this in your own code unless you REALLY
|
234
|
+
// know what you are doing.
|
235
|
+
var lsk = this.location.lastSetValueKey;
|
236
|
+
if (lsk && this._kvo_cache) this._kvo_cache[lsk] = value;
|
237
|
+
return this._extractLocation(key, value);
|
238
|
+
}.property(),
|
239
|
+
|
240
|
+
_extractLocation: function(key, value) {
|
217
241
|
var crumbs, encodedValue;
|
218
242
|
|
219
243
|
if (value !== undefined) {
|
@@ -243,7 +267,7 @@ SC.routes = SC.Object.create(
|
|
243
267
|
}
|
244
268
|
|
245
269
|
return this._location;
|
246
|
-
}
|
270
|
+
},
|
247
271
|
|
248
272
|
/**
|
249
273
|
You usually don't need to call this method. It is done automatically after
|
@@ -300,11 +324,12 @@ SC.routes = SC.Object.create(
|
|
300
324
|
loc = decodeURI(loc);
|
301
325
|
}
|
302
326
|
|
303
|
-
if (this.get('location') !== loc) {
|
327
|
+
if (this.get('location') !== loc && !this._skipRoute) {
|
304
328
|
SC.run(function() {
|
305
329
|
this.set('location', loc);
|
306
330
|
}, this);
|
307
331
|
}
|
332
|
+
this._skipRoute = false;
|
308
333
|
},
|
309
334
|
|
310
335
|
popState: function(event) {
|
@@ -316,12 +341,13 @@ SC.routes = SC.Object.create(
|
|
316
341
|
// Remove the base prefix and the extra '/'
|
317
342
|
loc = loc.slice(base.length + 1, loc.length);
|
318
343
|
|
319
|
-
if (this.get('location') !== loc) {
|
344
|
+
if (this.get('location') !== loc && !this._skipRoute) {
|
320
345
|
SC.run(function() {
|
321
346
|
this.set('location', loc);
|
322
347
|
}, this);
|
323
348
|
}
|
324
349
|
}
|
350
|
+
this._skipRoute = false;
|
325
351
|
},
|
326
352
|
|
327
353
|
/**
|
@@ -39,7 +39,7 @@ window.SproutCore = window.SproutCore || SC ;
|
|
39
39
|
// rest of the methods go into the mixin defined below.
|
40
40
|
|
41
41
|
/**
|
42
|
-
@version 1.
|
42
|
+
@version 1.7.1.beta
|
43
43
|
@namespace
|
44
44
|
|
45
45
|
All SproutCore methods and functions are defined
|
@@ -59,7 +59,7 @@ window.SproutCore = window.SproutCore || SC ;
|
|
59
59
|
*/
|
60
60
|
SC = window.SC; // This is dumb but necessary for jsdoc to get it right
|
61
61
|
|
62
|
-
SC.VERSION = '1.
|
62
|
+
SC.VERSION = '1.7.1.beta';
|
63
63
|
|
64
64
|
/**
|
65
65
|
@private
|
@@ -437,7 +437,7 @@ SC.Binding = /** @scope SC.Binding.prototype */{
|
|
437
437
|
/**
|
438
438
|
Invoked whenever the value of the "from" property changes. This will mark
|
439
439
|
the binding as dirty if the value has changed.
|
440
|
-
|
440
|
+
|
441
441
|
@param {Object} target The object that contains the key
|
442
442
|
@param {String} key The name of the property which changed
|
443
443
|
*/
|
@@ -467,7 +467,7 @@ SC.Binding = /** @scope SC.Binding.prototype */{
|
|
467
467
|
|
468
468
|
if the value does not match the transformedBindingValue, then it will
|
469
469
|
become the new bindingValue.
|
470
|
-
|
470
|
+
|
471
471
|
@param {Object} target The object that contains the key
|
472
472
|
@param {String} key The name of the property which changed
|
473
473
|
*/
|
@@ -983,7 +983,7 @@ SC.Binding = /** @scope SC.Binding.prototype */{
|
|
983
983
|
|
984
984
|
/**
|
985
985
|
Adds a transform that will return YES if the value is null or undefined, NO otherwise.
|
986
|
-
|
986
|
+
|
987
987
|
@param {String} [fromPath]
|
988
988
|
@returns {SC.Binding} this
|
989
989
|
*/
|
@@ -380,8 +380,8 @@ SC.IndexSet = SC.mixin({},
|
|
380
380
|
.set('max', start.max)
|
381
381
|
.set('length', start.length)
|
382
382
|
.set('source', start.source)
|
383
|
-
.enumerableContentDidChange()
|
384
|
-
.endPropertyChanges();
|
383
|
+
.enumerableContentDidChange();
|
384
|
+
this.endPropertyChanges();
|
385
385
|
return this ;
|
386
386
|
|
387
387
|
} else {
|