sw2at-ui 0.0.12 → 0.0.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/app/assets/javascripts/swat/app/app.coffee +9 -0
- data/app/assets/javascripts/swat/app/controllers/global_nav.coffee +2 -0
- data/app/assets/javascripts/swat/app/controllers/management/configuration.coffee +13 -0
- data/app/assets/javascripts/swat/app/controllers/revision.coffee +3 -2
- data/app/assets/javascripts/swat/app/controllers/revisions.coffee +5 -1
- data/app/assets/javascripts/swat/app/controllers/root.coffee +3 -1
- data/app/assets/javascripts/swat/app/controllers/summary.coffee +5 -36
- data/app/assets/javascripts/swat/app/factories/global_control.coffee +23 -0
- data/app/assets/javascripts/swat/app/factories/summary/exception_groups.coffee +17 -0
- data/app/assets/javascripts/swat/app/factories/{fails_graph.coffee → summary/fails_graph.coffee} +0 -0
- data/app/assets/javascripts/swat/app/factories/summary/revision_metrics.coffee +26 -0
- data/app/assets/javascripts/swat/app/services/configuration.coffee +4 -0
- data/app/assets/javascripts/swat/bower_components.coffee +1 -0
- data/app/assets/javascripts/swat/lib/angular-cookies.js +321 -0
- data/app/assets/stylesheets/swat/application.scss +22 -6
- data/app/assets/stylesheets/swat/configuration.scss +35 -0
- data/app/assets/stylesheets/swat/header.scss +35 -1
- data/app/assets/stylesheets/swat/nav.scss +85 -0
- data/app/assets/stylesheets/swat/swat_theme.scss +60 -67
- data/app/assets/stylesheets/swat/vars.scss +54 -0
- data/app/controllers/swat/api/configuration_controller.rb +12 -0
- data/app/controllers/swat/api/revisions_controller.rb +1 -0
- data/app/controllers/swat/pages/management_controller.rb +6 -0
- data/app/views/layouts/swat/application.slim +6 -3
- data/app/views/swat/pages/management/configuration.slim +28 -0
- data/app/views/swat/pages/revisions/index.slim +4 -3
- data/app/views/swat/pages/revisions/partials/_revision_header.slim +13 -0
- data/app/views/swat/pages/revisions/show.slim +1 -13
- data/app/views/swat/pages/revisions/summary.slim +4 -17
- data/app/views/swat/shared/_header.slim +2 -0
- data/app/views/swat/shared/_nav.slim +22 -0
- data/config/routes.rb +10 -0
- data/sw2at-ui.gemspec +19 -5
- metadata +18 -4
- data/app/controllers/swat/revisions_controller.rb +0 -4
@@ -1,5 +1,6 @@
|
|
1
|
+
@import "vars";
|
2
|
+
|
1
3
|
#swat {
|
2
|
-
$greenMain: greenyellow;
|
3
4
|
|
4
5
|
header {
|
5
6
|
background-color: black;
|
@@ -15,6 +16,39 @@
|
|
15
16
|
margin-top: 0;
|
16
17
|
padding: 12px;
|
17
18
|
|
19
|
+
.control {
|
20
|
+
float: left;
|
21
|
+
color: $greenMain;
|
22
|
+
padding: 14px;
|
23
|
+
border-radius: 24px;
|
24
|
+
width: 43px;
|
25
|
+
height: 40px;
|
26
|
+
font-size: 27px;
|
27
|
+
line-height: 15px;
|
28
|
+
cursor: pointer;
|
29
|
+
margin-left: 0;
|
30
|
+
|
31
|
+
&:hover {
|
32
|
+
background: rgba(255, 255, 255, 0.31);
|
33
|
+
}
|
34
|
+
|
35
|
+
&.closed {
|
36
|
+
&:after { content: '>' }
|
37
|
+
}
|
38
|
+
&.opened {
|
39
|
+
&:after { content: '<' }
|
40
|
+
}
|
41
|
+
&.refresh {
|
42
|
+
float: right;
|
43
|
+
width: 40px;
|
44
|
+
font-size: 21px;
|
45
|
+
margin-top: -3px;
|
46
|
+
padding: 7px;
|
47
|
+
line-height: 25px;
|
48
|
+
&:after { content: 'F5' }
|
49
|
+
}
|
50
|
+
}
|
51
|
+
|
18
52
|
a {
|
19
53
|
color: $greenMain;
|
20
54
|
&:hover {
|
@@ -0,0 +1,85 @@
|
|
1
|
+
@import "vars";
|
2
|
+
|
3
|
+
$sidebar-width: 200px;
|
4
|
+
$sidebar-width-negative: -$sidebar-width;
|
5
|
+
|
6
|
+
|
7
|
+
#swat {
|
8
|
+
|
9
|
+
#global-nav {
|
10
|
+
//background: grey;
|
11
|
+
|
12
|
+
width: $sidebar-width;
|
13
|
+
overflow: hidden;
|
14
|
+
padding: 0px 0px 10px 14px;
|
15
|
+
//border-right: 1px solid rgb(204, 200, 200);
|
16
|
+
|
17
|
+
h2.menu {
|
18
|
+
margin-top: 33px;
|
19
|
+
text-align: left;
|
20
|
+
}
|
21
|
+
|
22
|
+
ul {
|
23
|
+
margin: 0;
|
24
|
+
padding: 0;
|
25
|
+
|
26
|
+
li {
|
27
|
+
list-style: none;
|
28
|
+
font-size: 20px;
|
29
|
+
//border-top: 1px solid #d5d5d5;
|
30
|
+
margin-right: 20px;
|
31
|
+
|
32
|
+
|
33
|
+
a {
|
34
|
+
background: none;
|
35
|
+
width: 100%;
|
36
|
+
height: 100%;
|
37
|
+
display: inline-block;
|
38
|
+
padding: 9px 0px;
|
39
|
+
color: darken($successTitleColor,5);
|
40
|
+
text-decoration: none;
|
41
|
+
|
42
|
+
&:hover {
|
43
|
+
color: lighten($successTitleColor, 10);
|
44
|
+
}
|
45
|
+
&[disabled] {
|
46
|
+
color: $disabledLinkColor;
|
47
|
+
&:hover {
|
48
|
+
color: $disabledLinkColor;
|
49
|
+
}
|
50
|
+
}
|
51
|
+
}
|
52
|
+
}
|
53
|
+
}
|
54
|
+
}
|
55
|
+
}
|
56
|
+
|
57
|
+
.left-menu {
|
58
|
+
float: left;
|
59
|
+
width: 0;
|
60
|
+
margin-left: 0;
|
61
|
+
transition: all 0.3s;
|
62
|
+
overflow: hidden;
|
63
|
+
}
|
64
|
+
|
65
|
+
.wrapper {
|
66
|
+
min-width: 100px;
|
67
|
+
margin-left: 0;
|
68
|
+
transition: all 0.3s;
|
69
|
+
}
|
70
|
+
|
71
|
+
.main-view {
|
72
|
+
display: inline-block;
|
73
|
+
width: 100%;
|
74
|
+
background: rgb(240, 240, 240);
|
75
|
+
padding: 0 5px;
|
76
|
+
}
|
77
|
+
|
78
|
+
.opened {
|
79
|
+
margin-left: $sidebar-width;
|
80
|
+
.left-menu {
|
81
|
+
width: $sidebar-width;
|
82
|
+
margin-left: $sidebar-width-negative;
|
83
|
+
}
|
84
|
+
}
|
85
|
+
|
@@ -1,60 +1,77 @@
|
|
1
|
-
|
2
|
-
$negativeFooterSize: -$footerSize;
|
3
|
-
|
4
|
-
$commandWidth: 400px;
|
5
|
-
$copyIconWidth: 30px;
|
6
|
-
$commandTextWidth: $commandWidth - $copyIconWidth;
|
1
|
+
@import "vars";
|
7
2
|
|
8
3
|
html, body {
|
9
4
|
height: 100% !important;
|
10
5
|
min-height: 100%;
|
11
6
|
}
|
12
7
|
|
8
|
+
body {
|
9
|
+
overflow-y: scroll;
|
10
|
+
}
|
11
|
+
|
13
12
|
#swat {
|
14
13
|
height: 100%;
|
15
14
|
min-height: 100%;
|
16
15
|
|
16
|
+
.controls {
|
17
|
+
float: right;
|
18
|
+
.btn {
|
19
|
+
|
20
|
+
|
21
|
+
background-color: $greenBtnBg;
|
22
|
+
color: $greenBtnColor;
|
23
|
+
font-weight: bold;
|
24
|
+
margin-right: 10px;
|
25
|
+
&:hover {
|
26
|
+
background-color: $greenBtnBgHover;
|
27
|
+
}
|
28
|
+
}
|
29
|
+
}
|
30
|
+
|
31
|
+
|
17
32
|
#container {
|
33
|
+
background: $containerBg;
|
34
|
+
margin: 0px 15px 0 15px;
|
35
|
+
border: 1px solid $containerBorder;
|
18
36
|
|
19
37
|
.has-status {
|
20
|
-
|
21
38
|
&.in_progress_failed {
|
22
|
-
color:
|
23
|
-
background:
|
39
|
+
color: $failedColor;
|
40
|
+
background: $inProgressBg;
|
24
41
|
}
|
25
42
|
|
26
43
|
&.in_progress_success {
|
27
|
-
color:
|
28
|
-
background:
|
44
|
+
color: $successColor;
|
45
|
+
background: $inProgressBg;
|
29
46
|
}
|
30
47
|
|
31
48
|
&.completed_failed {
|
32
|
-
color:
|
33
|
-
background:
|
49
|
+
color: $failedColor;
|
50
|
+
background: $failedBg;
|
34
51
|
}
|
35
52
|
|
36
53
|
&.completed_passed {
|
37
|
-
color:
|
38
|
-
background:
|
54
|
+
color: $successColor;
|
55
|
+
background: $successBg;
|
39
56
|
}
|
40
57
|
|
41
58
|
&.terminated {
|
42
|
-
color:
|
43
|
-
background:
|
59
|
+
color: $terminatedColor;
|
60
|
+
background: $terminatedBg;
|
44
61
|
}
|
45
62
|
|
46
63
|
}
|
47
64
|
|
48
65
|
.backtrace {
|
49
|
-
background-color:
|
66
|
+
background-color: $backtraceBg;
|
50
67
|
padding: 10px;
|
51
68
|
margin-bottom: 5px;
|
52
|
-
color:
|
69
|
+
color: $backtraceColor;
|
53
70
|
border-radius: 3px;
|
54
71
|
p {
|
55
72
|
margin-bottom: 0;
|
56
73
|
&.spec {
|
57
|
-
color:
|
74
|
+
color: $backtraceSpecColor;
|
58
75
|
}
|
59
76
|
}
|
60
77
|
}
|
@@ -85,28 +102,10 @@ html, body {
|
|
85
102
|
float: left;
|
86
103
|
margin-left: 20px;
|
87
104
|
&.in_progress_success, &.completed_passed {
|
88
|
-
color:
|
105
|
+
color: $successTitleColor;
|
89
106
|
}
|
90
107
|
&.in_progress_failed,&.completed_failed {
|
91
|
-
color:
|
92
|
-
}
|
93
|
-
}
|
94
|
-
.controls {
|
95
|
-
float: right;
|
96
|
-
.btn {
|
97
|
-
background-color: rgb(124, 222, 124);
|
98
|
-
color: green;
|
99
|
-
font-weight: bold;
|
100
|
-
margin-right: 10px;
|
101
|
-
&:hover {
|
102
|
-
background-color: rgb(169, 222, 157);
|
103
|
-
}
|
104
|
-
}
|
105
|
-
.revisions {
|
106
|
-
opacity: 1;
|
107
|
-
}
|
108
|
-
.reload {
|
109
|
-
opacity: 1;
|
108
|
+
color: $failedTitleColor;
|
110
109
|
}
|
111
110
|
}
|
112
111
|
}
|
@@ -123,7 +122,7 @@ html, body {
|
|
123
122
|
|
124
123
|
#metrics-container {
|
125
124
|
background: white;
|
126
|
-
border: 1px solid
|
125
|
+
border: 1px solid $containerBorder;
|
127
126
|
border-top: none;
|
128
127
|
min-height: 500px;
|
129
128
|
overflow: hidden;
|
@@ -145,7 +144,7 @@ html, body {
|
|
145
144
|
#exceptions-groups {
|
146
145
|
.failed-tests {
|
147
146
|
.test-case {
|
148
|
-
color:
|
147
|
+
color: $failedCaseColor;
|
149
148
|
margin-top: 3px;
|
150
149
|
}
|
151
150
|
|
@@ -154,6 +153,7 @@ html, body {
|
|
154
153
|
|
155
154
|
#revisions-container {
|
156
155
|
min-height: 50px;
|
156
|
+
padding-top: 24px;
|
157
157
|
|
158
158
|
.revisions-header {
|
159
159
|
margin: 0;
|
@@ -205,6 +205,7 @@ html, body {
|
|
205
205
|
.cell {
|
206
206
|
padding: 8px;
|
207
207
|
display: block;
|
208
|
+
//background: $greyBg;
|
208
209
|
}
|
209
210
|
.detailed-info {
|
210
211
|
padding: 0 8px;
|
@@ -228,31 +229,30 @@ html, body {
|
|
228
229
|
margin: 0;
|
229
230
|
border: none;
|
230
231
|
font-weight: bold;
|
231
|
-
background:
|
232
|
-
color: red;
|
232
|
+
background: $commandBg;
|
233
233
|
}
|
234
234
|
}
|
235
235
|
&.failed {
|
236
|
-
background:
|
237
|
-
color:
|
236
|
+
background: $failedTestCaseBg;
|
237
|
+
color: $failedTestCaseColor;
|
238
238
|
.main-info {
|
239
239
|
cursor: pointer;
|
240
240
|
&:hover {
|
241
|
-
background:
|
241
|
+
background: $failedTestCaseBgHover;
|
242
242
|
}
|
243
243
|
}
|
244
244
|
td.command {
|
245
245
|
input {
|
246
|
-
color:
|
246
|
+
color: $failedTestCaseCommandColor;
|
247
247
|
}
|
248
248
|
}
|
249
249
|
}
|
250
250
|
&.passed {
|
251
|
-
background:
|
252
|
-
color:
|
251
|
+
background: $passedTestCaseBg;
|
252
|
+
color: $passedTestCaseColor;
|
253
253
|
td.command {
|
254
254
|
input {
|
255
|
-
color:
|
255
|
+
color: $passedTestCaseCommandColor;
|
256
256
|
}
|
257
257
|
}
|
258
258
|
}
|
@@ -272,28 +272,21 @@ html, body {
|
|
272
272
|
height: $footerSize;
|
273
273
|
margin-top: $negativeFooterSize;
|
274
274
|
text-align: center;
|
275
|
+
|
276
|
+
|
277
|
+
background-color: $blackColor;
|
278
|
+
color: $greenMain;
|
279
|
+
padding-top: 15px;
|
280
|
+
margin-left: 15px;
|
281
|
+
margin-right: 15px;
|
275
282
|
}
|
276
283
|
.nav-tabs {
|
277
284
|
margin-left: 12px;
|
278
285
|
margin-right: 12px;
|
279
286
|
span.label {
|
280
|
-
color:
|
287
|
+
color: $blackColor;
|
281
288
|
font-size: 15px;
|
282
289
|
}
|
283
|
-
span.status {
|
284
|
-
&.in_progress_success {
|
285
|
-
color: rgb(192, 175, 84);
|
286
|
-
}
|
287
|
-
&.in_progress_failed {
|
288
|
-
color: rgb(217, 140, 160);
|
289
|
-
}
|
290
|
-
&.completed_failed {
|
291
|
-
color: rgb(242, 40, 77);
|
292
|
-
}
|
293
|
-
&.completed_passed {
|
294
|
-
color: rgb(61, 168, 83);
|
295
|
-
}
|
296
|
-
}
|
297
290
|
}
|
298
291
|
.tab-content {
|
299
292
|
.tab-pane {
|
@@ -305,7 +298,7 @@ html, body {
|
|
305
298
|
font-size: 20px;
|
306
299
|
display: inline-block;
|
307
300
|
text-decoration: none;
|
308
|
-
color:
|
301
|
+
color: $blackColor;
|
309
302
|
margin-left: 5px;
|
310
303
|
}
|
311
304
|
}
|
@@ -0,0 +1,54 @@
|
|
1
|
+
$greyBg: #9f9f9f;
|
2
|
+
$greenMain: greenyellow;
|
3
|
+
|
4
|
+
$blackColor: black;
|
5
|
+
$whiteColor: white;
|
6
|
+
$lightBlueColor: #C2CAF2;
|
7
|
+
|
8
|
+
$disabledLinkColor: rgba(198, 198, 197, 0.68);
|
9
|
+
|
10
|
+
$footerSize: 45px;
|
11
|
+
$negativeFooterSize: -$footerSize;
|
12
|
+
|
13
|
+
$commandWidth: 400px;
|
14
|
+
$copyIconWidth: 30px;
|
15
|
+
$commandTextWidth: $commandWidth - $copyIconWidth;
|
16
|
+
|
17
|
+
$greenBtnBg: rgb(124, 222, 124);
|
18
|
+
$greenBtnBgHover: rgb(169, 222, 157);
|
19
|
+
$greenBtnColor: green;
|
20
|
+
|
21
|
+
$containerBg: rgb(240, 240, 240);
|
22
|
+
$containerBorder: rgb(215, 215, 215);
|
23
|
+
|
24
|
+
$failedColor: rgb(242, 40, 77);
|
25
|
+
$inProgressBg: #F2FFBA;
|
26
|
+
$successColor: rgb(59, 153, 78);
|
27
|
+
$successBg: rgba(134, 252, 148, 0.49);
|
28
|
+
$failedBg: rgba(252, 226, 222, 0.49);
|
29
|
+
$terminatedColor: rgba(78, 73, 71, 0.68);
|
30
|
+
$terminatedBg: rgba(205, 202, 201, 0.36);
|
31
|
+
|
32
|
+
$backtraceBg: #400e30;
|
33
|
+
$backtraceColor: #f8f8f8;
|
34
|
+
$backtraceSpecColor: #ff5860;
|
35
|
+
|
36
|
+
$successTitleColor: #50ce5f;
|
37
|
+
$failedTitleColor: #ff5246;
|
38
|
+
|
39
|
+
$failedCaseColor: #3F3F3F;
|
40
|
+
|
41
|
+
$commandBg: $blackColor;
|
42
|
+
|
43
|
+
$failedTestCaseCommandColor: rgb(223, 96, 96);
|
44
|
+
$failedTestCaseBg: mistyrose;
|
45
|
+
$failedTestCaseColor: red;
|
46
|
+
$failedTestCaseBgHover: #ffd7e5;
|
47
|
+
|
48
|
+
$passedTestCaseCommandColor: rgb(129, 192, 129);
|
49
|
+
$passedTestCaseBg: lightgreen;
|
50
|
+
$passedTestCaseColor: green;
|
51
|
+
$passedTestCaseBgHover: #ffd7e5;
|
52
|
+
|
53
|
+
$greyBg: rgb(236, 236, 236);
|
54
|
+
$lightBlueColor: #5967AB;
|
@@ -27,6 +27,7 @@ module Swat
|
|
27
27
|
def parse_revision_options
|
28
28
|
@options = params[:json_params] ? HashWithIndifferentAccess[JSON.parse(params[:json_params])] : params
|
29
29
|
@options[:time] = @options[:time].to_i if @options[:time]
|
30
|
+
@options[:branch] = URI.unescape(@options[:branch].to_s) if @options[:branch]
|
30
31
|
end
|
31
32
|
|
32
33
|
end
|
@@ -25,9 +25,12 @@ html lang="en" ng-app="SWAT"
|
|
25
25
|
= yield(:subheader)
|
26
26
|
nav
|
27
27
|
= yield(:nav)
|
28
|
-
#content
|
29
|
-
=
|
30
|
-
|
28
|
+
#content.wrapper ng-class="globalControl.status"
|
29
|
+
.left-menu ng-contoller="GlobalNavController"
|
30
|
+
= render partial: 'swat/shared/nav'
|
31
|
+
.main-view
|
32
|
+
= yield
|
33
|
+
#ui-view ui-view="content"
|
31
34
|
|
32
35
|
div.push
|
33
36
|
footer#footer
|
@@ -0,0 +1,28 @@
|
|
1
|
+
#configuration
|
2
|
+
span.loader ng-class="{ true: 'invisible' }[(configPromise && configPromise.$resolved)]"
|
3
|
+
h1.title Configuration
|
4
|
+
.configuration-info-container
|
5
|
+
#configuration-info
|
6
|
+
div ng-if="config"
|
7
|
+
h2.heading Firebase
|
8
|
+
table.info.firebase
|
9
|
+
tbody
|
10
|
+
tr
|
11
|
+
td.name
|
12
|
+
| Firebase Path
|
13
|
+
td.value
|
14
|
+
| {{ config.firebase_path }}
|
15
|
+
|
16
|
+
h2.heading Threads
|
17
|
+
table.info.threads
|
18
|
+
tbody
|
19
|
+
tr ng-repeat="thread in config.threads"
|
20
|
+
td.name
|
21
|
+
.cell
|
22
|
+
| {{ thread.name }}
|
23
|
+
td.options
|
24
|
+
.cell
|
25
|
+
.pattern
|
26
|
+
| {{ thread.file_pattern }}
|
27
|
+
.tags
|
28
|
+
| {{ thread.tag }} {{ thread.tags.join(',') }}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
#revisions-container
|
2
|
-
span.loader ng-class="{ true: 'invisible' }[(
|
2
|
+
span.loader ng-class="{ true: 'invisible' }[(revisionsPromise && revisionsPromise.$resolved)]"
|
3
3
|
h2.revisions-header Revisions
|
4
4
|
.controls
|
5
5
|
.list ng-if="revisions && (revisions.length > 0)"
|
@@ -13,8 +13,9 @@
|
|
13
13
|
th Status
|
14
14
|
tr.has-status ng-class="revision.data.status.name" ng-repeat="revision in revisions | orderBy: '-data.time'" ui-sref="revision(revision.data)"
|
15
15
|
td
|
16
|
-
|
17
|
-
|
16
|
+
a.has-status ui-sref="revision(revision.data)" ng-class="revision.data.status.name"
|
17
|
+
strong
|
18
|
+
| {{ revision.data.name || revision.data.time }}
|
18
19
|
td
|
19
20
|
| {{ revision.data.branch }}
|
20
21
|
td
|
@@ -0,0 +1,13 @@
|
|
1
|
+
h1.revision
|
2
|
+
revision-name revision="revision" ng-if="(revisionPromise && revisionPromise.$resolved)"
|
3
|
+
|
4
|
+
span.revision-status ng-class="revision.data.status.name"
|
5
|
+
| {{ ' '+revision.data.status.label }}
|
6
|
+
span.loader ng-class="{ true: 'invisible' }[(revisionPromise && revisionPromise.$resolved)]"
|
7
|
+
.controls
|
8
|
+
button.btn.revisions ui-sref="revisions" title="See all revisions list" ng-disabled="(currentState == 'revisions')"
|
9
|
+
| Revisions
|
10
|
+
button.btn.revisions ui-sref="summary(revision.data)" title="See this revision summary" ng-disabled="(!revision || currentState == 'summary')"
|
11
|
+
| Summary
|
12
|
+
button.btn.revisions ui-sref="revision(revision.data)" title="See this revision tests" ng-disabled="(!revision || currentState == 'revision')"
|
13
|
+
| Tests
|
@@ -1,17 +1,5 @@
|
|
1
1
|
#revision-info
|
2
|
-
|
3
|
-
revision-name revision="revision" ng-if="(revisionPromise && revisionPromise.$resolved)"
|
4
|
-
|
5
|
-
span.revision-status ng-class="revision.data.status.name"
|
6
|
-
| {{ ' '+revision.data.status.label }}
|
7
|
-
span.loader ng-class="{ true: 'invisible' }[(revisionPromise && revisionPromise.$resolved)]"
|
8
|
-
.controls
|
9
|
-
button.btn.revisions ui-sref="revisions" title="See all revisions list"
|
10
|
-
| Go to Revisions
|
11
|
-
button.btn.revisions ui-sref="summary(revision.data)" title="See this revision summary" ng-disabled="!revision"
|
12
|
-
| Summary
|
13
|
-
button.btn.reload ng-click="reloadData()" title="Refresh this revision"
|
14
|
-
| Refresh
|
2
|
+
= render partial: 'swat/pages/revisions/partials/revision_header'
|
15
3
|
|
16
4
|
div
|
17
5
|
tabset
|
@@ -1,31 +1,18 @@
|
|
1
1
|
#revision-info
|
2
|
-
|
3
|
-
revision-name revision="revision" ng-if="(revisionPromise && revisionPromise.$resolved)"
|
4
|
-
|
5
|
-
span.revision-status ng-class="revision.data.status.name"
|
6
|
-
| {{ ' '+revision.data.status.label }}
|
7
|
-
span.loader ng-class="{ true: 'invisible' }[(revisionPromise && revisionPromise.$resolved)]"
|
8
|
-
.controls
|
9
|
-
button.btn.revisions ui-sref="revisions" title="See all revisions list"
|
10
|
-
| Go to Revisions
|
11
|
-
button.btn.revisions ui-sref="revision(revision.data)" title="See this revision tests" ng-disabled="!revision"
|
12
|
-
| Tests
|
13
|
-
button.btn.reload ng-click="reloadData()" title="Refresh this revision"
|
14
|
-
| Refresh
|
2
|
+
= render partial: 'swat/pages/revisions/partials/revision_header'
|
15
3
|
|
16
4
|
div
|
17
5
|
tabset
|
18
6
|
tab
|
19
7
|
tab-heading
|
20
|
-
span.label
|
8
|
+
span.label Statistics
|
21
9
|
.tab-content
|
22
10
|
#metrics-container
|
23
11
|
#global-stats-container
|
24
|
-
table#global-stats.
|
12
|
+
table#global-stats.info
|
25
13
|
tr ng-repeat="metric in summary.metrics"
|
26
14
|
td.name
|
27
|
-
|
28
|
-
| {{ metric.name }}
|
15
|
+
| {{ metric.name }}
|
29
16
|
td.value
|
30
17
|
| {{ metric.value }}
|
31
18
|
|
@@ -0,0 +1,22 @@
|
|
1
|
+
#global-nav
|
2
|
+
h2.menu Main Menu
|
3
|
+
ul
|
4
|
+
li
|
5
|
+
a.revisions ui-sref="revisions" title="See all revisions list"
|
6
|
+
| Revisions
|
7
|
+
|
8
|
+
li
|
9
|
+
a.revisions ui-sref="configuration" title="Configuration"
|
10
|
+
| Configuration
|
11
|
+
|
12
|
+
li
|
13
|
+
a.revisions href="#" title="Run new revision" ng-disabled="true"
|
14
|
+
| Run
|
15
|
+
|
16
|
+
li
|
17
|
+
a.revisions href="#" title="Open console" ng-disabled="true"
|
18
|
+
| Console
|
19
|
+
|
20
|
+
li
|
21
|
+
a.revisions href="#" title="Read about us" ng-disabled="true"
|
22
|
+
| About Us
|
data/config/routes.rb
CHANGED
@@ -7,8 +7,11 @@ Swat::Engine.routes.draw do
|
|
7
7
|
namespace :api do
|
8
8
|
resources :test_cases
|
9
9
|
resources :revisions
|
10
|
+
|
10
11
|
get 'revision', to: 'revisions#show'
|
11
12
|
put 'revision/name/:name', to: 'revisions#set_name'
|
13
|
+
|
14
|
+
get 'configuration', to: 'configuration#show'
|
12
15
|
end
|
13
16
|
|
14
17
|
# Helper Methods
|
@@ -34,6 +37,13 @@ Swat::Engine.routes.draw do
|
|
34
37
|
get p, to: p
|
35
38
|
end
|
36
39
|
end
|
40
|
+
|
41
|
+
namespace :management do
|
42
|
+
pages = [ :console, :configuration, :about ]
|
43
|
+
pages.each do |p|
|
44
|
+
get p, to: p
|
45
|
+
end
|
46
|
+
end
|
37
47
|
end
|
38
48
|
|
39
49
|
end
|