sproutcore 1.5.0.pre.4 → 1.5.0.pre.4.1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +6 -0
- data/VERSION.yml +1 -1
- data/lib/Buildfile +1 -1
- data/lib/buildtasks/build.rake +14 -6
- data/lib/buildtasks/manifest.rake +171 -72
- data/lib/frameworks/sproutcore/Buildfile +3 -5
- data/lib/frameworks/sproutcore/CHANGELOG.md +9 -0
- data/lib/frameworks/sproutcore/apps/test_controls/resources/main_page.js +2 -1
- data/lib/frameworks/sproutcore/apps/test_controls/resources/progress_page.js +7 -17
- data/lib/frameworks/sproutcore/frameworks/bootstrap/system/browser.js +7 -1
- data/lib/frameworks/sproutcore/frameworks/bootstrap/system/loader.js +14 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/browser.js +0 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/event.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/root_responder.js +14 -3
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/template/collection.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/system/store.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/scrollable.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/alert.js +49 -4
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/menu.js +8 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/panel.js +46 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/button.js +32 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/checkbox.js +32 -6
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js +31 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/progress.js +15 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/radio.js +28 -7
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segmented.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/slider.js +20 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/well.js +2 -4
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/alert/ui.js +40 -34
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/ui.js +35 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/panel/ui.js +43 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/ui.js +47 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/methods.js +6 -16
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/ui.js +21 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/disclosure/ui.js +41 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/progress/ui.js +128 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/radio/ui.js +93 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/ui.js +13 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroller.js +28 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/methods.js +47 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/ui.js +51 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/toolbar/method.js +33 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/toolbar/ui.js +29 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +28 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/disclosure.js +9 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/list_item.js +148 -134
- data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +18 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_scroll.js +30 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/views/progress.js +9 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/radio.js +52 -4
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scroll.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scroller.js +36 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/views/segmented.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/slider.js +9 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/split.js +15 -4
- data/lib/frameworks/sproutcore/frameworks/desktop/views/split_divider.js +1 -6
- data/lib/frameworks/sproutcore/frameworks/desktop/views/tab.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/toolbar.js +7 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/well.js +1 -2
- data/lib/frameworks/sproutcore/frameworks/forms/views/form.js +3 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/bootstrap.rhtml +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_resize.js +0 -9
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/editable.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/flowed_layout.js +2 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/canvas_image.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/label.js +25 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/system/chance.js +64 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/system/module.js +34 -27
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/editable/ui.js +42 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_text_field/ui.js +62 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/image/ui.js +0 -8
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/label/ui.js +12 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/ui.js +48 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/views/field.js +19 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/views/image.js +2 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/views/label.js +11 -5
- data/lib/frameworks/sproutcore/frameworks/foundation/views/text_field.js +152 -74
- data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_queue.js +12 -9
- data/lib/frameworks/sproutcore/frameworks/runtime/system/logger.js +1476 -176
- data/lib/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +0 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/logger.js +227 -32
- data/lib/frameworks/sproutcore/frameworks/statechart/system/state.js +11 -11
- data/lib/frameworks/sproutcore/frameworks/statechart/system/statechart.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/testing/system/runner.js +10 -0
- data/lib/frameworks/sproutcore/lib/index.rhtml +30 -8
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/18px/segmented.css +4 -4
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented.css +4 -4
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented.css +4 -4
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/44px/segmented.css +4 -4
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/segmented.css +4 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/slider.css +5 -1
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/slider.js +11 -3
- data/lib/frameworks/sproutcore/themes/ace/resources/well/well.css +7 -8
- data/lib/frameworks/sproutcore/themes/ace/resources/well/well.js +2 -4
- data/lib/gen/app/templates/apps/@target_name@/Buildfile +14 -0
- data/lib/gen/app/templates/apps/@target_name@/theme.js +27 -0
- data/lib/gen/html_app/templates/apps/@target_name@/resources/stylesheets/@target_name@.css +4 -0
- data/lib/gen/project/templates/@filename@/Buildfile +7 -2
- data/lib/gen/theme/templates/themes/@target_name@/Buildfile +3 -0
- data/lib/gen/theme/templates/themes/@target_name@/theme.js +23 -0
- data/lib/sproutcore/builders.rb +2 -0
- data/lib/sproutcore/builders/chance.rb +64 -0
- data/lib/sproutcore/builders/chance_file.rb +59 -0
- data/lib/sproutcore/builders/combine.rb +0 -45
- data/lib/sproutcore/builders/html.rb +1 -1
- data/lib/sproutcore/builders/minify.rb +5 -17
- data/lib/sproutcore/builders/module.rb +2 -2
- data/lib/sproutcore/builders/string_wrapper.rb +13 -15
- data/lib/sproutcore/helpers.rb +1 -1
- data/lib/sproutcore/helpers/minifier.rb +56 -0
- data/lib/sproutcore/helpers/static_helper.rb +86 -40
- data/lib/sproutcore/models/generator.rb +16 -0
- data/lib/sproutcore/models/manifest_entry.rb +8 -1
- data/lib/sproutcore/models/target.rb +101 -33
- data/lib/sproutcore/tools.rb +0 -7
- data/lib/sproutcore/tools/build.rb +2 -37
- data/spec/buildtasks/manifest/prepare_build_tasks/chance_spec.rb +100 -0
- data/spec/buildtasks/manifest/prepare_build_tasks/combine_spec.rb +86 -9
- data/spec/buildtasks/manifest/prepare_build_tasks/css_spec.rb +1 -1
- data/spec/buildtasks/manifest/prepare_build_tasks/minify_spec.rb +1 -1
- data/spec/buildtasks/manifest/prepare_build_tasks/module_info_spec.rb +96 -0
- data/spec/buildtasks/manifest/prepare_build_tasks/module_spec.rb +83 -0
- data/spec/buildtasks/manifest/prepare_build_tasks/packed_spec.rb +37 -4
- data/spec/buildtasks/manifest/spec_helper.rb +4 -0
- data/spec/fixtures/builder_tests/Buildfile +11 -9
- data/spec/fixtures/builder_tests/apps/chance_test/Buildfile +14 -0
- data/spec/fixtures/builder_tests/apps/chance_test/core.js +27 -0
- data/spec/fixtures/builder_tests/apps/chance_test/main.js +30 -0
- data/spec/fixtures/builder_tests/apps/chance_test/resources/demo.css +6 -0
- data/spec/fixtures/builder_tests/apps/chance_test/resources/last_file.css +7 -0
- data/spec/fixtures/builder_tests/apps/chance_test/resources/loading.rhtml +9 -0
- data/spec/fixtures/builder_tests/apps/chance_test/resources/main_page.js +24 -0
- data/spec/fixtures/builder_tests/apps/chance_test/resources/z_first_file.css +6 -0
- data/spec/fixtures/builder_tests/apps/chance_test/theme.js +27 -0
- data/spec/fixtures/builder_tests/apps/module_test/module.js +1 -0
- data/spec/fixtures/builder_tests/apps/module_test/modules/deferred_module/english.lproj/req_style_2.css +0 -0
- data/spec/fixtures/builder_tests/apps/module_test/modules/deferred_module/english.lproj/test.rhtml +1 -0
- data/spec/fixtures/builder_tests/apps/module_test/modules/deferred_module/javascript.js +1 -0
- data/spec/fixtures/builder_tests/apps/module_test/modules/deferred_module/lib/alt_layout.rhtml +0 -0
- data/spec/fixtures/builder_tests/apps/module_test/modules/deferred_module/req_js_2.js +0 -0
- data/spec/fixtures/builder_tests/apps/module_test/modules/dynamic_req_target_1/dynamic_req_js_1.js +0 -0
- data/spec/fixtures/builder_tests/apps/module_test/modules/dynamic_req_target_1/english.lproj/dynamic_req_style_1.css +0 -0
- data/spec/fixtures/builder_tests/apps/module_test/modules/inlined_module/README +0 -0
- data/spec/fixtures/builder_tests/apps/module_test/modules/required_target/english.lproj/req_style_1.css +0 -0
- data/spec/fixtures/builder_tests/apps/module_test/modules/required_target/english.lproj/strings.js +4 -0
- data/spec/fixtures/builder_tests/apps/module_test/modules/required_target/english.lproj/test.rhtml +1 -0
- data/spec/fixtures/builder_tests/apps/module_test/modules/required_target/req_js_1.js +0 -0
- data/spec/fixtures/helper_tests/apps/minifier_test/core.js +8 -0
- data/spec/fixtures/real_world/Buildfile +11 -1
- data/spec/fixtures/real_world/apps/account/modules/preferences/README +0 -0
- data/spec/fixtures/real_world/apps/calendar/modules/preferences/README +0 -0
- data/spec/fixtures/real_world/apps/contacts/modules/preferences/README +0 -0
- data/spec/fixtures/real_world/apps/contacts/modules/printing/README +0 -0
- data/spec/fixtures/real_world/apps/mail/modules/preferences/README +0 -0
- data/spec/fixtures/real_world/apps/mail/modules/printing/README +0 -0
- data/spec/fixtures/real_world/apps/photos/modules/email/README +0 -0
- data/spec/fixtures/real_world/apps/photos/modules/preferences/README +0 -0
- data/spec/lib/builders/chance_file_spec.rb +63 -0
- data/spec/lib/builders/chance_spec.rb +81 -0
- data/spec/lib/builders/module_spec.rb +133 -0
- data/spec/lib/helpers/minifier.rb +31 -0
- data/spec/lib/models/project/find_targets_for_spec.rb +1 -1
- data/vendor/chance/lib/chance/imagers/data_url.rb +68 -17
- data/vendor/chance/lib/chance/instance.rb +55 -30
- data/vendor/chance/lib/chance/parser.rb +1 -1
- data/vendor/chance/lib/chance/slicing.rb +39 -3
- metadata +52 -7
- data/lib/frameworks/sproutcore/frameworks/foundation/system/logger.js +0 -163
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/logger.js +0 -44
- data/spec/buildtasks/manifest/prepare_build_tasks/bundle_spec.rb +0 -254
- data/spec/fixtures/builder_tests/apps/bundle_test/bundle.js +0 -1
- data/spec/lib/builders/bundle_spec.rb +0 -295
@@ -160,15 +160,6 @@ SC.AutoResize = {
|
|
160
160
|
this.measureSizeLater();
|
161
161
|
},
|
162
162
|
|
163
|
-
/**
|
164
|
-
@private
|
165
|
-
When the view is appended to the document, various factors (such as class names)
|
166
|
-
could have changed, so it will need to be remeasured.
|
167
|
-
*/
|
168
|
-
didAppendToDocument: function(){
|
169
|
-
this.measureSizeLater();
|
170
|
-
},
|
171
|
-
|
172
163
|
/**
|
173
164
|
@private
|
174
165
|
When the layer is first created, measurement will need to take place.
|
@@ -157,6 +157,7 @@ SC.FlowedLayout = {
|
|
157
157
|
c.addObserver('useAbsoluteLayout', this, '_scfl_layoutPropertyDidChange');
|
158
158
|
c.addObserver('calculatedWidth', this, '_scfl_layoutPropertyDidChange');
|
159
159
|
c.addObserver('calculatedHeight', this, '_scfl_layoutPropertyDidChange');
|
160
|
+
c.addObserver('startsNewRow', this, '_scfl_layoutPropertyDidChange');
|
160
161
|
},
|
161
162
|
|
162
163
|
/**
|
@@ -168,6 +169,7 @@ SC.FlowedLayout = {
|
|
168
169
|
c.removeObserver('useAbsoluteLayout', this, '_scfl_layoutPropertyDidChange');
|
169
170
|
c.removeObserver('calculatedWidth', this, '_scfl_layoutPropertyDidChange');
|
170
171
|
c.removeObserver('calculatedHeight', this, '_scfl_layoutPropertyDidChange');
|
172
|
+
c.removeObserver('startsNewRow', this, '_scfl_layoutPropertyDidChange');
|
171
173
|
},
|
172
174
|
|
173
175
|
/**
|
@@ -68,7 +68,7 @@ SC.BaseTheme.canvasImageRenderDelegate = SC.RenderDelegate.create({
|
|
68
68
|
update: function(dataSource, jquery) {
|
69
69
|
var elem = jquery[0],
|
70
70
|
image = dataSource.get('image'),
|
71
|
-
frame = dataSource.get('frame'),
|
71
|
+
frame = dataSource.view.get('frame'),
|
72
72
|
frameWidth = frame.width,
|
73
73
|
frameHeight = frame.height,
|
74
74
|
innerFrame = dataSource.get('innerFrame'),
|
@@ -38,6 +38,13 @@ SC.BaseTheme.labelRenderDelegate = SC.RenderDelegate.create({
|
|
38
38
|
name: 'label',
|
39
39
|
|
40
40
|
render: function(dataSource, context) {
|
41
|
+
var view = dataSource.get('view'),
|
42
|
+
ariaLabeledBy;
|
43
|
+
|
44
|
+
if(view) {
|
45
|
+
ariaLabeledBy = view.get('ariaLabeledBy');
|
46
|
+
}
|
47
|
+
|
41
48
|
// CONSIDER DEPRECATING THESE PROPERTIES BECAUSE THEY ARE
|
42
49
|
// ANNOYING PAINS IN THE BUTT THAT EVERYONE HATES
|
43
50
|
context.addStyle({
|
@@ -47,6 +54,11 @@ SC.BaseTheme.labelRenderDelegate = SC.RenderDelegate.create({
|
|
47
54
|
|
48
55
|
context.setClass('ellipsis', dataSource.get('needsEllipsis') || NO);
|
49
56
|
context.setClass('icon', dataSource.get('icon') || NO);
|
57
|
+
|
58
|
+
//addressing accessibility
|
59
|
+
if(ariaLabeledBy && ariaLabeledBy !== "") {
|
60
|
+
context.attr('aria-labelledby', ariaLabeledBy);
|
61
|
+
}
|
50
62
|
|
51
63
|
var html = this._htmlForTitleAndIcon(dataSource);
|
52
64
|
context.push(html);
|
@@ -58,6 +70,13 @@ SC.BaseTheme.labelRenderDelegate = SC.RenderDelegate.create({
|
|
58
70
|
},
|
59
71
|
|
60
72
|
update: function(dataSource, jquery) {
|
73
|
+
var view = dataSource.get('view'),
|
74
|
+
ariaLabeledBy;
|
75
|
+
|
76
|
+
if(view) {
|
77
|
+
ariaLabeledBy = view.get('ariaLabeledBy');
|
78
|
+
}
|
79
|
+
|
61
80
|
// CONSIDER DEPRECATING THESE PROPERTIES BECAUSE THEY ARE
|
62
81
|
// ANNOYING PAINS IN THE BUTT THAT EVERYONE HATES
|
63
82
|
jquery.css({
|
@@ -66,7 +85,12 @@ SC.BaseTheme.labelRenderDelegate = SC.RenderDelegate.create({
|
|
66
85
|
});
|
67
86
|
|
68
87
|
jquery.setClass('ellipsis', dataSource.get('needsEllipsis') || NO);
|
69
|
-
|
88
|
+
|
89
|
+
//addressing accessibility
|
90
|
+
if(ariaLabeledBy && ariaLabeledBy !== "") {
|
91
|
+
jquery.attr('aria-labelledby', ariaLabeledBy);
|
92
|
+
}
|
93
|
+
|
70
94
|
var html = this._htmlForTitleAndIcon(dataSource);
|
71
95
|
if (dataSource.get('renderState')._lastHTMLForTitleAndIcon !== html) {
|
72
96
|
jquery.html(html);
|
@@ -0,0 +1,64 @@
|
|
1
|
+
// ==========================================================================
|
2
|
+
// Project: SproutCore - JavaScript Application Framework
|
3
|
+
// Copyright: ©2006-2010 Sprout Systems, Inc. and contributors.
|
4
|
+
// Portions ©2008-2011 Apple Inc. All rights reserved.
|
5
|
+
// License: Licensed under MIT license (see license.js)
|
6
|
+
// ==========================================================================
|
7
|
+
|
8
|
+
sc_require("system/task_queue");
|
9
|
+
|
10
|
+
SC.chance = {
|
11
|
+
|
12
|
+
preload_task: SC.Task.create({
|
13
|
+
run: function(queue) {
|
14
|
+
var bank = SC.chance.bank, idx, len = bank.length, images = SC.chance.images;
|
15
|
+
for (idx = 0; idx < len; idx++) {
|
16
|
+
if (images.length < 1) {
|
17
|
+
return SC.chance.didPreloadImages();
|
18
|
+
}
|
19
|
+
|
20
|
+
var img = images.pop();
|
21
|
+
bank[idx].className = img;
|
22
|
+
}
|
23
|
+
|
24
|
+
// to force a break:
|
25
|
+
setTimeout(function(){
|
26
|
+
SC.run(function() {
|
27
|
+
SC.backgroundTaskQueue.push(SC.chance.preload_task);
|
28
|
+
});
|
29
|
+
}, 0);
|
30
|
+
}
|
31
|
+
}),
|
32
|
+
|
33
|
+
|
34
|
+
images: [],
|
35
|
+
bank: [],
|
36
|
+
PRELOAD_CONCURRENCY: 50,
|
37
|
+
|
38
|
+
preloadImages: function() {
|
39
|
+
if (window.CHANCE_SLICES) {
|
40
|
+
this.images = window.CHANCE_SLICES;
|
41
|
+
}
|
42
|
+
|
43
|
+
var bank = this.bank, idx, con = this.PRELOAD_CONCURRENCY;
|
44
|
+
for (idx = 0; idx < con; idx++) {
|
45
|
+
var img = document.createElement('div');
|
46
|
+
document.body.appendChild(img);
|
47
|
+
bank.push(img);
|
48
|
+
}
|
49
|
+
|
50
|
+
SC.run(function(){
|
51
|
+
SC.backgroundTaskQueue.push(SC.chance.preload_task);
|
52
|
+
});
|
53
|
+
},
|
54
|
+
|
55
|
+
didPreloadImages: function() {
|
56
|
+
var bank = this.bank, idx, len = bank.length;
|
57
|
+
for (idx = 0; idx < len; idx++) {
|
58
|
+
document.body.removeChild(bank[idx]);
|
59
|
+
bank[idx] = undefined;
|
60
|
+
}
|
61
|
+
}
|
62
|
+
};
|
63
|
+
|
64
|
+
SC.ready(SC.chance, 'preloadImages');
|
@@ -279,9 +279,17 @@ SC.Module = SC.Object.create(/** @scope SC.Module */ {
|
|
279
279
|
el.setAttribute('type', "text/javascript") ;
|
280
280
|
el.setAttribute('src', url) ;
|
281
281
|
|
282
|
-
|
283
|
-
|
284
|
-
|
282
|
+
if (SC.browser.isIE) {
|
283
|
+
el.onreadystatechange = function() {
|
284
|
+
if (this.readyState == 'complete' || this.readyState == 'loaded') {
|
285
|
+
SC.Module._moduleDidLoad(moduleName);
|
286
|
+
}
|
287
|
+
};
|
288
|
+
} else {
|
289
|
+
el.onload = function() {
|
290
|
+
SC.Module._moduleDidLoad(moduleName);
|
291
|
+
};
|
292
|
+
}
|
285
293
|
|
286
294
|
document.body.appendChild(el) ;
|
287
295
|
}
|
@@ -479,7 +487,6 @@ SC.Module = SC.Object.create(/** @scope SC.Module */ {
|
|
479
487
|
var dependenciesMet;
|
480
488
|
var callbacks, targets;
|
481
489
|
|
482
|
-
|
483
490
|
if (log) console.log("SC.Module: Module '%@' finished loading.".fmt(moduleName));
|
484
491
|
|
485
492
|
if (!module) {
|
@@ -510,38 +517,38 @@ SC.Module = SC.Object.create(/** @scope SC.Module */ {
|
|
510
517
|
}
|
511
518
|
},
|
512
519
|
|
513
|
-
|
514
|
-
|
520
|
+
/**
|
521
|
+
@private
|
515
522
|
|
516
|
-
|
523
|
+
If necessary, converts a property path into a target object.
|
517
524
|
|
518
|
-
|
519
|
-
|
525
|
+
@param {String|Object} targetName the string or object representing the target
|
526
|
+
@returns Object
|
520
527
|
*/
|
521
|
-
|
522
|
-
|
523
|
-
|
524
|
-
|
528
|
+
_targetForTargetName: function(targetName){
|
529
|
+
if (SC.typeOf(targetName) === SC.T_STRING) {
|
530
|
+
return SC.objectForPropertyPath(targetName);
|
531
|
+
}
|
525
532
|
|
526
|
-
|
527
|
-
|
533
|
+
return targetName;
|
534
|
+
},
|
528
535
|
|
529
|
-
|
530
|
-
|
536
|
+
/**
|
537
|
+
@private
|
531
538
|
|
532
|
-
|
539
|
+
If necessary, converts a property path into a method object.
|
533
540
|
|
534
|
-
|
535
|
-
|
536
|
-
|
541
|
+
@param {String|Object} methodName the string or object representing the method
|
542
|
+
@param {Object} target the target from which to retrieve the method
|
543
|
+
@returns Object
|
537
544
|
*/
|
538
|
-
|
539
|
-
|
540
|
-
|
541
|
-
|
545
|
+
_methodForMethodNameInTarget: function(methodName, target){
|
546
|
+
if (SC.typeOf(methodName) === SC.T_STRING) {
|
547
|
+
return SC.objectForPropertyPath(methodName, target);
|
548
|
+
}
|
542
549
|
|
543
|
-
|
544
|
-
|
550
|
+
return methodName;
|
551
|
+
}
|
545
552
|
});
|
546
553
|
|
547
554
|
/**
|
@@ -0,0 +1,42 @@
|
|
1
|
+
// ==========================================================================
|
2
|
+
// Project: SproutCore - JavaScript Application Framework
|
3
|
+
// Copyright: ©2006-2011 Apple Inc. and contributors.
|
4
|
+
// License: Licensed under MIT license (see license.js)
|
5
|
+
// ==========================================================================
|
6
|
+
|
7
|
+
/*global module test equals context ok same */
|
8
|
+
|
9
|
+
htmlbody('<style> .sc-static-layout { border: 1px red dotted; } </style>');
|
10
|
+
|
11
|
+
|
12
|
+
var pane = SC.ControlTestPane.design()
|
13
|
+
.add("aria-role", SC.FieldView.extend(SC.StaticLayout, SC.Editable,
|
14
|
+
{
|
15
|
+
localize: YES
|
16
|
+
})
|
17
|
+
)
|
18
|
+
|
19
|
+
.add("aria-multiline", SC.FieldView.extend(SC.StaticLayout, SC.Editable,
|
20
|
+
{
|
21
|
+
isTextArea: YES
|
22
|
+
})
|
23
|
+
);
|
24
|
+
|
25
|
+
pane.show();
|
26
|
+
module('SC.Editable ui', {
|
27
|
+
setup: function() {
|
28
|
+
var view = pane.view('aria-role');
|
29
|
+
}
|
30
|
+
});
|
31
|
+
|
32
|
+
test("should have role as textbox", function() {
|
33
|
+
var view = pane.view('aria-role');
|
34
|
+
var label = view.$();
|
35
|
+
equals(label.attr('role'), 'textbox', 'role should be textbox');
|
36
|
+
});
|
37
|
+
|
38
|
+
test("should have aria-multiline as YES", function() {
|
39
|
+
var view = pane.view('aria-multiline');
|
40
|
+
var label = view.$();
|
41
|
+
equals(label.attr('aria-multiline'), 'true', 'aria-multiline should be true');
|
42
|
+
});
|
@@ -0,0 +1,62 @@
|
|
1
|
+
// ==========================================================================
|
2
|
+
// Project: SproutCore - JavaScript Application Framework
|
3
|
+
// Copyright: ©2006-2011 Apple Inc. and contributors.
|
4
|
+
// License: Licensed under MIT license (see license.js)
|
5
|
+
// ==========================================================================
|
6
|
+
|
7
|
+
/*global module test equals context ok same */
|
8
|
+
|
9
|
+
htmlbody('<style> .sc-static-layout { border: 1px red dotted; } </style>');
|
10
|
+
|
11
|
+
|
12
|
+
var pane = SC.ControlTestPane.design()
|
13
|
+
.add("aria-role", SC.InlineTextFieldView.extend({
|
14
|
+
localize: YES
|
15
|
+
})
|
16
|
+
)
|
17
|
+
|
18
|
+
.add("aria-multiline", SC.InlineTextFieldView.extend({
|
19
|
+
isTextArea: YES
|
20
|
+
})
|
21
|
+
)
|
22
|
+
|
23
|
+
.add("aria-disabled", SC.InlineTextFieldView.extend({
|
24
|
+
isEnabled: NO
|
25
|
+
})
|
26
|
+
)
|
27
|
+
|
28
|
+
.add("aria-invalid", SC.InlineTextFieldView.extend({
|
29
|
+
value: SC.Error.create({errorValue:'Error Message'})
|
30
|
+
})
|
31
|
+
);
|
32
|
+
pane.show();
|
33
|
+
|
34
|
+
module('SC.InlineTextFieldView ui', {
|
35
|
+
setup: function() {
|
36
|
+
var view = pane.view('aria-role');
|
37
|
+
}
|
38
|
+
});
|
39
|
+
|
40
|
+
test("should have role as textbox", function() {
|
41
|
+
var view = pane.view('aria-role');
|
42
|
+
var label = view.$();
|
43
|
+
equals(label.attr('role'), 'textbox', 'role should be textbox');
|
44
|
+
});
|
45
|
+
|
46
|
+
test("should have aria-multiline as YES", function() {
|
47
|
+
var view = pane.view('aria-multiline');
|
48
|
+
var label = view.$();
|
49
|
+
equals(label.attr('aria-multiline'), 'true', 'aria-multiline should be true');
|
50
|
+
});
|
51
|
+
|
52
|
+
test("should have aria-disabled as YES", function() {
|
53
|
+
var view = pane.view('aria-disabled');
|
54
|
+
var label = view.$();
|
55
|
+
equals(label.attr('aria-disabled'), 'true', 'aria-disabled should be true');
|
56
|
+
});
|
57
|
+
|
58
|
+
test("should have aria-invalid as YES", function() {
|
59
|
+
var view = pane.view('aria-invalid');
|
60
|
+
var label = view.$();
|
61
|
+
equals(label.attr('aria-invalid'), 'true', 'aria-invalid should be true');
|
62
|
+
});
|
@@ -99,14 +99,6 @@ htmlbody('<style></style>');
|
|
99
99
|
stop();
|
100
100
|
});
|
101
101
|
|
102
|
-
test("Verify sprite image class", function() {
|
103
|
-
var imageView = pane.view('sprite_image'),
|
104
|
-
imgEl;
|
105
|
-
|
106
|
-
imgEl = imageView.$('img');
|
107
|
-
|
108
|
-
ok(imgEl.hasClass('sprite-class'), "The class value should be on the img element");
|
109
|
-
});
|
110
102
|
|
111
103
|
test("Verify canvas rendering and properties", function() {
|
112
104
|
var view = pane.view('image_canvas'),
|
@@ -71,6 +71,13 @@ var pane = SC.ControlTestPane.design()
|
|
71
71
|
.add("editable", SC.LabelView, {
|
72
72
|
value: "double click me",
|
73
73
|
isEditable: YES
|
74
|
+
})
|
75
|
+
|
76
|
+
.add("aria-labelledby", SC.LabelView, {
|
77
|
+
value: "aria-labelledby",
|
78
|
+
fontWeight: SC.BOLD_WEIGHT,
|
79
|
+
height: 16,
|
80
|
+
ariaLabeledBy: 'Label View'
|
74
81
|
});
|
75
82
|
|
76
83
|
pane.show(); // add a test to show the test pane
|
@@ -90,6 +97,7 @@ test("Check that all Label are visible", function() {
|
|
90
97
|
ok(pane.view('bold').get('isVisibleInWindow'), 'title,toolTip.isVisibleInWindow should be YES');
|
91
98
|
ok(pane.view('bold height').get('isVisibleInWindow'), 'title,toolTip.isVisibleInWindow should be YES');
|
92
99
|
ok(pane.view('editable').get('isVisibleInWindow'), 'title,toolTip.isVisibleInWindow should be YES');
|
100
|
+
ok(pane.view('aria-labelledby').get('isVisibleInWindow'), 'aria-labelledby isVisibleInWindow should be YES');
|
93
101
|
});
|
94
102
|
|
95
103
|
|
@@ -154,4 +162,8 @@ test("Check that the title is set or not and if it is in the appropriate element
|
|
154
162
|
|
155
163
|
});
|
156
164
|
|
165
|
+
test("Check that the aria-labelledby is set to Label View", function() {
|
166
|
+
var viewElem=pane.view('aria-labelledby').$();
|
167
|
+
equals(viewElem.attr('aria-labelledby'), 'Label View', 'should have value set to Label view');
|
168
|
+
});
|
157
169
|
})();
|
@@ -54,9 +54,33 @@
|
|
54
54
|
value: 'John Doe',
|
55
55
|
isTextArea: YES,
|
56
56
|
isEnabled: NO
|
57
|
-
})
|
57
|
+
})
|
58
58
|
|
59
|
+
.add("aria-role", SC.TextFieldView, {
|
60
|
+
hint: "Full Name",
|
61
|
+
value: 'John Doe',
|
62
|
+
isTextArea: YES,
|
63
|
+
isEnabled: YES
|
64
|
+
})
|
65
|
+
|
66
|
+
.add("aria-multiline", SC.TextFieldView, {
|
67
|
+
hint: "Full Name",
|
68
|
+
value: 'John Doe',
|
69
|
+
isTextArea: YES,
|
70
|
+
isEnabled: YES
|
71
|
+
})
|
59
72
|
|
73
|
+
.add("aria-disabled",SC.TextFieldView, {
|
74
|
+
hint: "Full Name",
|
75
|
+
value: 'John Doe',
|
76
|
+
isTextArea: YES,
|
77
|
+
isEnabled: NO
|
78
|
+
})
|
79
|
+
|
80
|
+
.add("aria-invalid", SC.TextFieldView, {
|
81
|
+
value: SC.Error.create({errorValue:'Error Message'}),
|
82
|
+
isEnabled: YES
|
83
|
+
});
|
60
84
|
|
61
85
|
pane.show(); // add a test to show the test pane
|
62
86
|
|
@@ -527,4 +551,27 @@ test("editing a field should not change the cursor position", function() {
|
|
527
551
|
ok(selection.get('start') == 2 && selection.get('end') == 3, 'cursor position should be unchanged');
|
528
552
|
});
|
529
553
|
|
554
|
+
test("should have role as textbox", function() {
|
555
|
+
var view = pane.view('aria-role');
|
556
|
+
var label = view.$();
|
557
|
+
equals(label.attr('role'), 'textbox', 'role should be textbox');
|
558
|
+
});
|
559
|
+
|
560
|
+
test("should have aria-multiline as YES", function() {
|
561
|
+
var view = pane.view('aria-multiline');
|
562
|
+
var label = view.$();
|
563
|
+
equals(label.attr('aria-multiline'), 'true', 'aria-multiline should be true');
|
564
|
+
});
|
565
|
+
|
566
|
+
test("should have aria-disabled as YES", function() {
|
567
|
+
var view = pane.view('aria-disabled');
|
568
|
+
var label = view.$();
|
569
|
+
equals(label.attr('aria-disabled'), 'true', 'aria-disabled should be true');
|
570
|
+
});
|
571
|
+
|
572
|
+
test("should have aria-invalid as YES", function() {
|
573
|
+
var view = pane.view('aria-invalid');
|
574
|
+
var label = view.$();
|
575
|
+
equals(label.attr('aria-invalid'), 'true', 'aria-invalid should be true');
|
576
|
+
});
|
530
577
|
})();
|