sproutcore 0.9.1 → 0.9.2
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +233 -0
- data/Manifest.txt +67 -34
- data/bin/sc-build +12 -1
- data/bin/sc-gen +1 -1
- data/bin/sproutcore +14 -0
- data/clients/sc_docs/controllers/docs.js +38 -8
- data/clients/sc_docs/english.lproj/body.css +80 -127
- data/clients/sc_docs/english.lproj/body.rhtml +43 -23
- data/clients/sc_docs/english.lproj/no_docs.rhtml +2 -1
- data/clients/sc_docs/english.lproj/tabs.rhtml +16 -0
- data/clients/sc_docs/main.js +14 -9
- data/clients/sc_docs/models/doc.js +1 -1
- data/clients/sc_docs/tests/controllers/docs.rhtml +1 -2
- data/clients/sc_docs/tests/models/doc.rhtml +1 -2
- data/clients/sc_docs/tests/views/doc_frame.rhtml +1 -2
- data/clients/sc_docs/tests/views/doc_label_view.rhtml +1 -2
- data/clients/sc_docs/views/doc_frame.js +1 -1
- data/clients/sc_test_runner/controllers/runner.js +31 -8
- data/clients/sc_test_runner/english.lproj/body.css +62 -122
- data/clients/sc_test_runner/english.lproj/body.rhtml +62 -26
- data/clients/sc_test_runner/main.js +1 -6
- data/clients/sc_test_runner/models/test.js +14 -1
- data/clients/sc_test_runner/views/runner_frame.js +4 -2
- data/clients/view_builder/builders/builder.js +339 -0
- data/clients/view_builder/builders/button.js +81 -0
- data/clients/view_builder/controllers/document.js +21 -0
- data/clients/view_builder/core.js +19 -0
- data/clients/view_builder/english.lproj/body.css +77 -0
- data/clients/view_builder/english.lproj/body.rhtml +41 -0
- data/clients/{sc_docs → view_builder}/english.lproj/controls.css +0 -0
- data/clients/view_builder/english.lproj/strings.js +14 -0
- data/clients/view_builder/main.js +38 -0
- data/clients/view_builder/tests/controllers/document.rhtml +20 -0
- data/clients/view_builder/tests/views/builder.rhtml +20 -0
- data/clients/view_builder/views/builder.js +23 -0
- data/frameworks/prototype/prototype.js +1 -1
- data/frameworks/sproutcore/Core.js +32 -7
- data/frameworks/sproutcore/README +1 -1
- data/frameworks/sproutcore/animation/animation.js +411 -0
- data/frameworks/sproutcore/controllers/array.js +17 -9
- data/frameworks/sproutcore/controllers/collection.js +9 -110
- data/frameworks/sproutcore/controllers/controller.js +1 -1
- data/frameworks/sproutcore/controllers/object.js +2 -1
- data/frameworks/sproutcore/drag/drag.js +267 -56
- data/frameworks/sproutcore/drag/drag_data_source.js +24 -16
- data/frameworks/sproutcore/drag/drag_source.js +53 -42
- data/frameworks/sproutcore/drag/drop_target.js +2 -2
- data/frameworks/sproutcore/english.lproj/buttons.css +337 -236
- data/frameworks/sproutcore/english.lproj/core.css +115 -0
- data/frameworks/sproutcore/english.lproj/icons.css +227 -0
- data/{clients/sc_docs → frameworks/sproutcore}/english.lproj/images/indicator.gif +0 -0
- data/frameworks/sproutcore/english.lproj/images/sc-theme-sprite.png +0 -0
- data/frameworks/sproutcore/english.lproj/images/sc-theme-ysprite.png +0 -0
- data/frameworks/sproutcore/english.lproj/images/shared-icons.png +0 -0
- data/frameworks/sproutcore/english.lproj/menu.css +1 -1
- data/frameworks/sproutcore/english.lproj/strings.js +1 -1
- data/frameworks/sproutcore/english.lproj/theme.css +405 -31
- data/frameworks/sproutcore/foundation/application.js +15 -11
- data/frameworks/sproutcore/foundation/benchmark.js +1 -1
- data/frameworks/sproutcore/foundation/binding.js +2 -2
- data/frameworks/sproutcore/foundation/date.js +1 -1
- data/frameworks/sproutcore/foundation/error.js +1 -1
- data/frameworks/sproutcore/foundation/input_manager.js +32 -21
- data/frameworks/sproutcore/foundation/mock.js +1 -1
- data/frameworks/sproutcore/foundation/node_descriptor.js +9 -6
- data/frameworks/sproutcore/foundation/object.js +249 -177
- data/frameworks/sproutcore/foundation/page.js +5 -2
- data/frameworks/sproutcore/foundation/path_module.js +11 -10
- data/frameworks/sproutcore/foundation/responder.js +5 -2
- data/frameworks/sproutcore/foundation/routes.js +17 -13
- data/frameworks/sproutcore/foundation/run_loop.js +249 -11
- data/frameworks/sproutcore/foundation/server.js +1 -1
- data/frameworks/sproutcore/foundation/set.js +3 -3
- data/frameworks/sproutcore/foundation/string.js +5 -3
- data/frameworks/sproutcore/foundation/timer.js +371 -0
- data/frameworks/sproutcore/foundation/undo_manager.js +1 -1
- data/frameworks/sproutcore/foundation/unittest.js +3 -3
- data/frameworks/sproutcore/foundation/utils.js +161 -2
- data/frameworks/sproutcore/globals/panels.js +1 -1
- data/frameworks/sproutcore/globals/popups.js +4 -3
- data/frameworks/sproutcore/globals/window.js +44 -4
- data/frameworks/sproutcore/lib/button_views.rb +328 -0
- data/frameworks/sproutcore/lib/collection_view.rb +80 -0
- data/frameworks/sproutcore/lib/core_views.rb +281 -0
- data/frameworks/sproutcore/lib/form_views.rb +253 -0
- data/frameworks/sproutcore/lib/index.rhtml +2 -0
- data/frameworks/sproutcore/lib/menu_views.rb +88 -0
- data/frameworks/sproutcore/{foundation → mixins}/array.js +60 -29
- data/frameworks/sproutcore/mixins/control.js +265 -0
- data/frameworks/sproutcore/mixins/delegate_support.js +66 -0
- data/frameworks/sproutcore/{foundation → mixins}/observable.js +176 -6
- data/frameworks/sproutcore/mixins/scrollable.js +245 -0
- data/frameworks/sproutcore/mixins/selection_support.js +148 -0
- data/frameworks/sproutcore/mixins/validatable.js +152 -0
- data/frameworks/sproutcore/models/collection.js +5 -5
- data/frameworks/sproutcore/models/record.js +1 -1
- data/frameworks/sproutcore/models/store.js +1 -1
- data/frameworks/sproutcore/panes/dialog.js +1 -1
- data/frameworks/sproutcore/panes/manager.js +1 -1
- data/frameworks/sproutcore/panes/menu.js +1 -1
- data/frameworks/sproutcore/panes/overlay.js +2 -2
- data/frameworks/sproutcore/panes/panel.js +1 -1
- data/frameworks/sproutcore/panes/picker.js +1 -1
- data/frameworks/sproutcore/tests/controllers/array.rhtml +44 -4
- data/frameworks/sproutcore/tests/foundation/timer/invalidate.rhtml +33 -0
- data/frameworks/sproutcore/tests/foundation/timer/invokeLater.rhtml +145 -0
- data/frameworks/sproutcore/tests/foundation/timer/isPaused.rhtml +70 -0
- data/frameworks/sproutcore/tests/foundation/timer/schedule.rhtml +145 -0
- data/frameworks/sproutcore/tests/views/{scroll.rhtml → checkbox.rhtml} +3 -3
- data/frameworks/sproutcore/tests/views/{collection.rhtml → collection/base.rhtml} +33 -32
- data/frameworks/sproutcore/tests/views/collection/incremental_rendering.rhtml +260 -0
- data/frameworks/sproutcore/tests/views/image_cell.rhtml +19 -0
- data/frameworks/sproutcore/tests/views/label_item.rhtml +2 -4
- data/frameworks/sproutcore/tests/views/list.rhtml +2 -3
- data/frameworks/sproutcore/tests/views/list_item.rhtml +20 -0
- data/frameworks/sproutcore/tests/views/slider.rhtml +20 -0
- data/frameworks/sproutcore/tests/views/text_cell.rhtml +19 -0
- data/frameworks/sproutcore/tests/views/view/clippingFrame.rhtml +395 -0
- data/frameworks/sproutcore/tests/views/view/frame.rhtml +353 -0
- data/frameworks/sproutcore/tests/views/view/innerFrame.rhtml +347 -0
- data/frameworks/sproutcore/tests/views/view/isVisibleInWindow.rhtml +148 -0
- data/frameworks/sproutcore/tests/views/view/scrollFrame.rhtml +468 -0
- data/frameworks/sproutcore/validators/credit_card.js +33 -13
- data/frameworks/sproutcore/validators/date.js +26 -6
- data/frameworks/sproutcore/validators/email.js +21 -3
- data/frameworks/sproutcore/validators/not_empty.js +11 -1
- data/frameworks/sproutcore/validators/number.js +18 -4
- data/frameworks/sproutcore/validators/password.js +12 -1
- data/frameworks/sproutcore/validators/validator.js +204 -194
- data/frameworks/sproutcore/views/{button.js → button/button.js} +96 -94
- data/frameworks/sproutcore/views/button/checkbox.js +29 -0
- data/frameworks/sproutcore/views/button/disclosure.js +42 -0
- data/frameworks/sproutcore/views/button/radio.js +29 -0
- data/frameworks/sproutcore/views/{collection.js → collection/collection.js} +1373 -1024
- data/frameworks/sproutcore/views/collection/grid.js +124 -46
- data/frameworks/sproutcore/views/collection/image_cell.js +17 -46
- data/frameworks/sproutcore/views/collection/list.js +45 -35
- data/frameworks/sproutcore/views/collection/source_list.js +386 -0
- data/frameworks/sproutcore/views/collection/table.js +118 -0
- data/frameworks/sproutcore/views/container.js +7 -2
- data/frameworks/sproutcore/views/error_explanation.js +23 -10
- data/frameworks/sproutcore/views/{checkbox_field.js → field/checkbox_field.js} +16 -6
- data/frameworks/sproutcore/views/field/field.js +219 -0
- data/frameworks/sproutcore/views/{radio_field.js → field/radio_field.js} +27 -12
- data/frameworks/sproutcore/views/{select_field.js → field/select_field.js} +116 -90
- data/frameworks/sproutcore/views/{text_field.js → field/text_field.js} +57 -8
- data/frameworks/sproutcore/views/{textarea_field.js → field/textarea_field.js} +13 -3
- data/frameworks/sproutcore/views/filter_button.js +2 -2
- data/frameworks/sproutcore/views/form.js +3 -3
- data/frameworks/sproutcore/views/image.js +128 -21
- data/frameworks/sproutcore/views/inline_text_editor.js +1 -1
- data/frameworks/sproutcore/views/label.js +149 -92
- data/frameworks/sproutcore/views/list_item.js +225 -0
- data/frameworks/sproutcore/views/menu_item.js +10 -4
- data/frameworks/sproutcore/views/pagination.js +11 -4
- data/frameworks/sproutcore/views/popup_button.js +25 -21
- data/frameworks/sproutcore/views/popup_menu.js +10 -4
- data/frameworks/sproutcore/views/progress.js +29 -16
- data/frameworks/sproutcore/views/radio_group.js +1 -1
- data/frameworks/sproutcore/views/scroll.js +60 -20
- data/frameworks/sproutcore/views/segmented.js +1 -1
- data/frameworks/sproutcore/views/slider.js +132 -0
- data/frameworks/sproutcore/views/source_list_group.js +130 -0
- data/frameworks/sproutcore/views/spinner.js +1 -1
- data/frameworks/sproutcore/views/split.js +292 -0
- data/frameworks/sproutcore/views/split_divider.js +109 -0
- data/frameworks/sproutcore/views/tab.js +1 -1
- data/frameworks/sproutcore/views/toolbar.js +1 -1
- data/frameworks/sproutcore/views/view.js +1272 -591
- data/generators/client/templates/english.lproj/body.css +1 -1
- data/generators/controller/controller_generator.rb +1 -1
- data/generators/controller/templates/test.rhtml +2 -1
- data/generators/model/templates/test.rhtml +1 -1
- data/generators/test/templates/test.rhtml +1 -1
- data/generators/view/templates/test.rhtml +1 -1
- data/jsdoc/templates/sproutcore/class.tmpl +241 -338
- data/jsdoc/templates/sproutcore/default.css +105 -155
- data/jsdoc/templates/sproutcore/index.tmpl +43 -8
- data/jsdoc/templates/sproutcore/publish.js +9 -4
- data/lib/sproutcore/build_tools/html_builder.rb +29 -13
- data/lib/sproutcore/build_tools/resource_builder.rb +1 -1
- data/lib/sproutcore/bundle.rb +86 -25
- data/lib/sproutcore/jsdoc.rb +2 -0
- data/lib/sproutcore/version.rb +1 -1
- data/lib/sproutcore/view_helpers.rb +36 -3
- data/tasks/deployment.rake +1 -1
- metadata +69 -36
- data/clients/sc_docs/english.lproj/icons/small/next.png +0 -0
- data/clients/sc_docs/english.lproj/icons/small/reset.png +0 -0
- data/clients/sc_docs/english.lproj/images/gradients.png +0 -0
- data/clients/sc_docs/english.lproj/images/toolbar.png +0 -0
- data/clients/sc_docs/english.lproj/warning.rhtml +0 -6
- data/clients/sc_test_runner/english.lproj/warning.rhtml +0 -6
- data/frameworks/sproutcore/english.lproj/buttons.png +0 -0
- data/frameworks/sproutcore/english.lproj/collections.css +0 -82
- data/frameworks/sproutcore/english.lproj/images/buttons-sprite.png +0 -0
- data/frameworks/sproutcore/views/collection/collection_item.js +0 -36
- data/frameworks/sproutcore/views/collection/text_cell.js +0 -128
- data/frameworks/sproutcore/views/field.js +0 -214
- data/frameworks/sproutcore/views/workspace.js +0 -170
- data/generators/client/templates/english.lproj/controls.css +0 -0
- data/generators/framework/templates/english.lproj/body.css +0 -0
- data/generators/framework/templates/english.lproj/body.rhtml +0 -3
- data/generators/framework/templates/english.lproj/controls.css +0 -0
- data/lib/sproutcore/view_helpers/button_views.rb +0 -302
- data/lib/sproutcore/view_helpers/core_views.rb +0 -292
- data/lib/sproutcore/view_helpers/form_views.rb +0 -258
- data/lib/sproutcore/view_helpers/menu_views.rb +0 -94
@@ -1,4 +1,5 @@
|
|
1
|
-
|
1
|
+
|
2
|
+
<% view :no_docs_panel, :width => 400 do %>
|
2
3
|
<div>
|
3
4
|
<h1>Client Has No Documents</h1>
|
4
5
|
<p style="font-size: 15px;">This client does not currently have any unit tests. To add a unit test, open a terminal to the root directly and type:</p>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<%= view :runner_tab,
|
2
|
+
:tag => :iframe,
|
3
|
+
:visible => false,
|
4
|
+
:view => 'Docs.DocFrameView',
|
5
|
+
:bind => { :doc => 'Docs.docsController.selectedDoc' } %>
|
6
|
+
|
7
|
+
<% view :rebuilding_tab, :visible => false do %>
|
8
|
+
<div class="dialog">
|
9
|
+
<h1>
|
10
|
+
<img src="<%= static_url('indicator') %>" /> Rebuilding Reference Documentation...<br />(This may take awhile)
|
11
|
+
</h1>
|
12
|
+
</div>
|
13
|
+
<% end %>
|
14
|
+
|
15
|
+
<% view :empty_tab do %>
|
16
|
+
<% end %>
|
data/clients/sc_docs/main.js
CHANGED
@@ -4,18 +4,23 @@
|
|
4
4
|
|
5
5
|
function main() {
|
6
6
|
SC.page.awake() ;
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
7
|
+
|
8
|
+
// SproutCore loads the files from a pre-generated location unlike when
|
9
|
+
// this apps runs on your local box, hence this logic.
|
10
|
+
if (window.location.hostname.toString().indexOf('sproutcore.com') >= 0) {
|
11
|
+
var clientRoot = 'sproutcore/-docs' ;
|
12
|
+
var clientName = 'sproutcore' ;
|
13
|
+
var canRebuild = NO ;
|
14
|
+
} else {
|
15
|
+
var clientRoot = window.location.pathname.toString().replace(/-docs\/.*/,'-docs').substr(1,window.location.pathname.length);
|
16
|
+
var clientName = clientRoot.match(/([^\/]+)\/-docs/)[1];
|
17
|
+
var canRebuild = YES ;
|
18
|
+
}
|
19
|
+
|
12
20
|
Docs.docsController.set('selection',[]) ;
|
13
21
|
Docs.docsController.set('clientRoot', clientRoot) ;
|
14
22
|
Docs.docsController.set('clientName', clientName) ;
|
23
|
+
Docs.docsController.set('canRebuild', canRebuild) ;
|
15
24
|
Docs.docsController.reloadDocs() ;
|
16
25
|
} ;
|
17
26
|
|
18
|
-
Docs.hidePanels = function() {
|
19
|
-
SC.page.get('warningPanel').set('isVisible', false) ;
|
20
|
-
SC.page.get('noDocsPanel').set('isVisible',false) ;
|
21
|
-
} ;
|
@@ -14,7 +14,9 @@ TestRunner.runnerController = SC.Object.create({
|
|
14
14
|
|
15
15
|
// This is displayed as the main UI label.
|
16
16
|
displayClientName: function() {
|
17
|
-
|
17
|
+
var clientName = (this.get('clientName') || '').humanize().capitalize();
|
18
|
+
if (clientName == 'Sproutcore') clientName = 'SproutCore' ;
|
19
|
+
return "%@ Tests".fmt(clientName) ;
|
18
20
|
}.property('clientName'),
|
19
21
|
|
20
22
|
arrangedObjects: [],
|
@@ -45,18 +47,37 @@ TestRunner.runnerController = SC.Object.create({
|
|
45
47
|
return '' ;
|
46
48
|
}
|
47
49
|
}.property('testState'),
|
50
|
+
|
51
|
+
testStateIsRunning: function() {
|
52
|
+
return (this.get('testState') === TestRunner.TEST_RUNNING) ;
|
53
|
+
}.property('testState'),
|
48
54
|
|
49
55
|
isRunning: NO,
|
50
56
|
isContinuousIntegrationEnabled: NO,
|
51
57
|
|
52
58
|
runTestLabel: function() {
|
53
|
-
return (this.get('isRunning')) ? "Stop Tests" : "Run Tests" ;
|
59
|
+
return (this.get('isRunning')) ? "Stop All Tests" : "Run All Tests" ;
|
54
60
|
}.property('isRunning'),
|
55
61
|
|
56
62
|
toggleRunTests: function() {
|
57
63
|
this.toggleProperty('isRunning') ;
|
58
64
|
},
|
59
65
|
|
66
|
+
rerunCurrentTest: function() {
|
67
|
+
var test = this.get('selectedTest') ;
|
68
|
+
if (test) {
|
69
|
+
this.set('selection', []) ;
|
70
|
+
this.set('selection', [test]) ;
|
71
|
+
}
|
72
|
+
},
|
73
|
+
|
74
|
+
canRerunCurrentTest: function() {
|
75
|
+
if (this.get('isRunning')) return NO ;
|
76
|
+
var state = this.get('testState') ;
|
77
|
+
var ret = (state === TestRunner.TEST_FAILED || state === TestRunner.TEST_PASSED) ? YES : NO ;
|
78
|
+
return ret;
|
79
|
+
}.property('isRunning', 'testState'),
|
80
|
+
|
60
81
|
reloadTests: function() {
|
61
82
|
|
62
83
|
// Use Ajax to ask the server for the latest set of tests for the
|
@@ -85,16 +106,18 @@ TestRunner.runnerController = SC.Object.create({
|
|
85
106
|
// working away immediately.
|
86
107
|
if (recs.length == 0) {
|
87
108
|
SC.page.get('noTestsPanel').set('isVisible',true) ;
|
88
|
-
|
109
|
+
this.invokeLater(this.reloadTests,2000) ;
|
89
110
|
} else {
|
90
111
|
SC.page.get('noTestsPanel').set('isVisible',false) ;
|
91
112
|
}
|
92
113
|
|
93
114
|
// sort the records by name and set as the new arrangedObjects.
|
94
115
|
recs = recs.sort(function(a,b) {
|
95
|
-
|
96
|
-
|
97
|
-
|
116
|
+
var a_g = a.get('group') || '';
|
117
|
+
var b_g = b.get('group') || '';
|
118
|
+
|
119
|
+
var ret = a_g.localeCompare(b_g) ;
|
120
|
+
return (ret != 0) ? ret : (a.get('title') || '').localeCompare(b.get('title') || '') ;
|
98
121
|
}) ;
|
99
122
|
|
100
123
|
var hadArrangedObjects = this.get('arrangedObjects').length > 0 ;
|
@@ -122,9 +145,9 @@ TestRunner.runnerController = SC.Object.create({
|
|
122
145
|
var tests = this.get('arrangedObjects') ;
|
123
146
|
var firstTest = (tests && tests.length > 0) ? [tests[0]] : [] ;
|
124
147
|
this.set('selection', []) ; // clear selection.
|
125
|
-
|
148
|
+
var t = function() {
|
126
149
|
this.set('selection', firstTest) ;
|
127
|
-
}.
|
150
|
+
}.invokeLater(this,1) ;
|
128
151
|
}
|
129
152
|
}
|
130
153
|
}.observes('isRunning'),
|
@@ -1,151 +1,91 @@
|
|
1
|
+
/* @override
|
2
|
+
http://localhost:4020/static/sc_docs/en/_cache/body-1208633994.css
|
3
|
+
http://localhost:4020/static/sc_docs/en/_cache/body-1208635640.css
|
4
|
+
*/
|
1
5
|
|
6
|
+
/* @group Core */
|
2
7
|
|
3
|
-
|
4
|
-
|
5
|
-
#workspace {
|
6
|
-
background-color: #8db69a;
|
8
|
+
body {
|
7
9
|
position: absolute ;
|
8
|
-
top: 0;
|
9
10
|
left: 0;
|
10
|
-
right:
|
11
|
-
|
11
|
+
right: 0;
|
12
|
+
top: 0;
|
13
|
+
bottom: 0;
|
14
|
+
padding: 0;
|
15
|
+
margin: 0;
|
16
|
+
overflow: hidden ;
|
12
17
|
}
|
13
18
|
|
14
|
-
|
15
|
-
position: absolute
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
bottom:
|
20
|
-
background-color: white ;
|
21
|
-
overflow: auto;
|
19
|
+
.workspace .sidebar {
|
20
|
+
position: absolute;
|
21
|
+
left: 0;
|
22
|
+
top: 0;
|
23
|
+
width: 200px;
|
24
|
+
bottom: 0;
|
22
25
|
}
|
23
26
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
27
|
+
.sc-theme .workspace.horizontal .sc-split-divider-view {
|
28
|
+
position: absolute;
|
29
|
+
left: 200px;
|
30
|
+
top: 0;
|
31
|
+
bottom: 0;
|
29
32
|
}
|
30
33
|
|
31
|
-
|
32
|
-
position: absolute
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
text-align: center ;
|
40
|
-
font-weight: bold ;
|
34
|
+
.workspace .document_view {
|
35
|
+
position: absolute;
|
36
|
+
left: 205px;
|
37
|
+
right: 0;
|
38
|
+
top: 0;
|
39
|
+
bottom: 0;
|
40
|
+
border: none ;
|
41
|
+
background-color: #aaa ;
|
41
42
|
}
|
42
43
|
|
43
|
-
|
44
|
-
|
44
|
+
.document_view iframe {
|
45
|
+
position: absolute ;
|
46
|
+
left: 0;
|
47
|
+
top: 0;
|
48
|
+
width: 100%;
|
49
|
+
height: 100%;
|
50
|
+
border: none ;
|
51
|
+
padding: 0;
|
52
|
+
margin: 0;
|
53
|
+
background: white;
|
45
54
|
}
|
46
55
|
|
47
56
|
|
48
|
-
|
49
|
-
|
50
|
-
/* @group Toolbar */
|
51
|
-
|
52
|
-
#workspace .toolbar {
|
53
|
-
position: absolute ;
|
54
|
-
top: 0;
|
55
|
-
left: 0px;
|
56
|
-
right: 0px;
|
57
|
-
height: 48px;
|
58
|
-
border-bottom: 1px solid #62806d;
|
59
|
-
background: static_url('images/gradients') repeat-x center top;
|
57
|
+
.left.app-label {
|
58
|
+
padding-top: 5px;
|
60
59
|
}
|
61
|
-
|
62
|
-
|
63
|
-
text-
|
64
|
-
|
65
|
-
|
66
|
-
right: 10px ;
|
60
|
+
|
61
|
+
.sc-theme .app-label .sc-label-view {
|
62
|
+
text-shadow: white 0px 1px 0px;
|
63
|
+
font-weight: bold ;
|
64
|
+
font-size: 15px;
|
67
65
|
}
|
68
66
|
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
position:
|
74
|
-
|
75
|
-
|
76
|
-
font-size: 28px;
|
77
|
-
font-weight: normal ;
|
67
|
+
.app-label img {
|
68
|
+
width: 27px;
|
69
|
+
height: 27px;
|
70
|
+
vertical-align: middle;
|
71
|
+
position: relative ;
|
72
|
+
top: -3px;
|
73
|
+
margin-right: 2px;
|
78
74
|
}
|
79
75
|
|
80
76
|
/* @end */
|
81
77
|
|
82
78
|
/* @group Sidebar */
|
83
79
|
|
84
|
-
|
80
|
+
.sidebar .source_list {
|
85
81
|
position: absolute ;
|
86
|
-
top:
|
87
|
-
left:
|
88
|
-
|
89
|
-
bottom:
|
90
|
-
|
91
|
-
border-right: 1px #62806d solid;
|
92
|
-
overflow: auto ;
|
93
|
-
}
|
94
|
-
|
95
|
-
.sidebar {
|
96
|
-
list-style-type: none ;
|
97
|
-
padding: 0;
|
98
|
-
margin: 0;
|
99
|
-
}
|
100
|
-
|
101
|
-
.sidebar a {
|
102
|
-
display: block ;
|
103
|
-
text-decoration: none ;
|
104
|
-
color: black ;
|
105
|
-
border: 1px solid #e0efed;
|
106
|
-
padding-bottom: 4px;
|
107
|
-
padding-top: 7px ;
|
108
|
-
padding-left: 8px ;
|
109
|
-
border-left-style: none;
|
110
|
-
border-right-style: none;
|
111
|
-
-moz-user-select: none;
|
112
|
-
-khtml-user-select: none;
|
113
|
-
user-select: none;
|
114
|
-
}
|
115
|
-
|
116
|
-
.sidebar a.sel {
|
117
|
-
border: 1px solid #1e504a;
|
118
|
-
color: white ;
|
119
|
-
font-weight: bold;
|
120
|
-
padding-top: 6px;
|
121
|
-
background: static_url('images/gradients') repeat-x center -144px;
|
122
|
-
border-top-color: #188b7d;
|
123
|
-
border-right-style: none;
|
124
|
-
border-left-style: none;
|
125
|
-
}
|
126
|
-
|
127
|
-
.sidebar a.sel:active {
|
128
|
-
border: 1px solid #1e504a;
|
129
|
-
color: white ;
|
130
|
-
font-weight: bold;
|
131
|
-
padding-top: 6px;
|
132
|
-
background: static_url('images/gradients') repeat-x center -144px;
|
133
|
-
border-top-color: #188b7d;
|
134
|
-
border-right-style: none;
|
135
|
-
border-left-style: none;
|
82
|
+
top: 0;
|
83
|
+
left: 0;
|
84
|
+
right: 0;
|
85
|
+
bottom: 0;
|
86
|
+
border: none ;
|
136
87
|
}
|
137
88
|
|
138
|
-
|
139
|
-
background-color: #cedfdf;
|
140
|
-
border: 1px solid #cedfdf;
|
141
|
-
border-right-style: none;
|
142
|
-
border-left-style: none;
|
143
|
-
}
|
89
|
+
/* @end */
|
144
90
|
|
145
|
-
.sidebar hr {
|
146
|
-
border: none ;
|
147
|
-
border-top: #ccc solid 1px;
|
148
|
-
margin: 4px 8px;
|
149
|
-
}
|
150
91
|
|
151
|
-
/* @end */
|
@@ -1,35 +1,71 @@
|
|
1
1
|
<% content_for('body') do %>
|
2
2
|
|
3
|
-
<% view :
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
<div class="
|
11
|
-
|
12
|
-
|
13
|
-
|
3
|
+
<% view :header, :class => 'sc-header sc-square-theme' do %>
|
4
|
+
<div class="left app-label">
|
5
|
+
<img src="<%= static_url('images/sproutcore-logo.png') %>" /><%= label_view :outlet => true, :tag => :span,
|
6
|
+
:bind => { :value => 'TestRunner.runnerController.displayClientName' } %>
|
7
|
+
</div>
|
8
|
+
<div class="center">
|
9
|
+
</div>
|
10
|
+
<div class="right">
|
11
|
+
<%= checkbox_view :outlet => true, :label => "Continuous Integration", :bind => { :value => 'TestRunner.runnerController.isContinuousIntegrationEnabled' } %>
|
12
|
+
<%= button_view :outlet => true, :title => "Run All Tests", :bind => {
|
13
|
+
:title => 'TestRunner.runnerController.runTestLabel' }, :action => 'TestRunner.runnerController.toggleRunTests' %>
|
14
14
|
</div>
|
15
|
-
|
15
|
+
<% end %>
|
16
16
|
|
17
|
-
<%= collection_view :outlet => :sidebar, :class => :sidebar, :bind => {
|
18
|
-
:content => 'TestRunner.runnerController.arrangedObjects',
|
19
|
-
:selection => 'TestRunner.runnerController.selection'
|
20
|
-
}, :example_view => 'TestRunner.TestLabelView' %>
|
21
17
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
18
|
+
<% split_view :workspace, :class => 'sc-app-workspace header footer', :direction => :horizontal do %>
|
19
|
+
<% view :sidebar, :outlet => true do %>
|
20
|
+
<% scroll_view :source_list, :outlet => true do %>
|
21
|
+
<%= source_list_view :outlet => true,
|
22
|
+
:group => :group,
|
23
|
+
:group_visible_key => true,
|
24
|
+
:content_value_key => :title,
|
25
|
+
:content_icon_key => :icon,
|
26
|
+
:bind => {
|
27
|
+
:content => 'TestRunner.runnerController.arrangedObjects',
|
28
|
+
:selection => 'TestRunner.runnerController.selection'
|
29
|
+
} %>
|
30
|
+
|
31
|
+
<% end %>
|
32
|
+
<% end %>
|
33
|
+
|
34
|
+
<%= split_divider_view :outlet => true, :width => 5 %>
|
27
35
|
|
28
|
-
<%
|
29
|
-
|
30
|
-
|
31
|
-
|
36
|
+
<% view :document_view, :outlet => true do %>
|
37
|
+
<%= view :outlet => :runner_frame, :tag => :iframe,
|
38
|
+
:view => 'TestRunner.RunnerFrameView',
|
39
|
+
:bind => {
|
40
|
+
:test => 'TestRunner.runnerController.selectedTest',
|
41
|
+
:state => 'TestRunner.runnerController.testState'
|
42
|
+
} %>
|
43
|
+
<% end %>
|
44
|
+
|
45
|
+
<% end %>
|
32
46
|
|
47
|
+
<% view :footer, :class => 'sc-footer sc-square-theme' do %>
|
48
|
+
<div class="left">
|
49
|
+
</div>
|
50
|
+
<div class="center">
|
51
|
+
<%= image_view :outlet => true,
|
52
|
+
:value => static_url('indicator'),
|
53
|
+
:style => 'vertical-align: middle; position: relative; top: -1px;',
|
54
|
+
:bind => {
|
55
|
+
:visible => 'TestRunner.runnerController.testStateIsRunning'
|
56
|
+
} %>
|
57
|
+
<%= label_view :outlet => :runner_status, :tag => 'span',
|
58
|
+
:bind => {
|
59
|
+
:value => 'TestRunner.runnerController.testStateLabel'
|
60
|
+
} %>
|
61
|
+
</div>
|
62
|
+
<div class="right">
|
63
|
+
<%= button_view :outlet => true, :title => 'Rerun Current Test',
|
64
|
+
:action => 'TestRunner.runnerController.rerunCurrentTest',
|
65
|
+
:bind => {
|
66
|
+
:enabled => 'TestRunner.runnerController.canRerunCurrentTest'
|
67
|
+
} %>
|
68
|
+
</div>
|
33
69
|
<% end %>
|
34
70
|
|
35
71
|
<script>
|
@@ -37,4 +73,4 @@ window.urlPrefix = "<%= bundle.url_prefix %>";
|
|
37
73
|
window.indexPrefix = "<%= bundle.index_prefix %>";
|
38
74
|
</script>
|
39
75
|
|
40
|
-
<% end %>
|
76
|
+
<% end %>
|