@@ -24,12 +24,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
24
24
<template >
25
25
<g
26
26
class =" c8-task"
27
- :class =" {
28
- [task.state]: true,
29
- held: task.isHeld,
30
- queued: task.isQueued && !task.isHeld,
31
- runahead: task.isRunahead && !(task.isHeld || task.isQueued),
32
- }"
27
+ :class =" [task.state, modifier]"
33
28
>
34
29
<!-- status
35
30
@@ -99,53 +94,29 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
99
94
100
95
The "x" in the centre of the outline used to represent failure.
101
96
-->
102
- <g
103
- class =" cross"
104
- transform =" rotate(45, 50, 50)"
105
- >
106
- <rect
107
- x =" 43"
108
- y =" 15"
109
- width =" 14"
110
- height =" 70"
111
- rx =" 7.5"
112
- ry =" 7.5"
113
- />
114
- <rect
115
- x =" 15"
116
- y =" 43"
117
- width =" 70"
118
- height =" 14"
119
- rx =" 7.5"
120
- ry =" 7.5"
121
- />
122
- </g >
97
+ <path class =" cross"
98
+ d ="
99
+ m30,30
100
+ l40 40
101
+ m0,-40
102
+ l-40 40
103
+ "
104
+ />
105
+
123
106
<!-- expired
124
107
108
+ A clock face, at about 5pm.
125
109
-->
126
- <g
127
- class =" expired"
128
- >
129
- <rect
130
- x =" 50"
131
- y =" 46"
132
- width =" 42"
133
- height =" 8"
134
- rx =" 5"
135
- ry =" 5"
136
- transform =" rotate(-90, 50, 50)"
137
- />
138
- <rect
139
- x =" 50"
140
- y =" 46"
141
- width =" 30"
142
- height =" 8"
143
- rx =" 5"
144
- ry =" 5"
145
- transform =" rotate(45, 50, 50)"
146
- />
147
- </g >
110
+ <path
111
+ class =" clockhands_big"
112
+ d ="
113
+ m50,12
114
+ l0 38
115
+ l18 18
116
+ "
117
+ />
148
118
</g >
119
+
149
120
<!-- modifier
150
121
151
122
Represents any task state modifiers e.g. isHeld, isRunahead, isQueued.
@@ -175,26 +146,19 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
175
146
/>
176
147
<!-- held
177
148
178
- Paused icon representing isHeld.
149
+ Paused icon representing isHeld. Shown inside the outline
150
+ circle.
179
151
-->
180
152
<g
181
153
class =" held"
182
154
>
183
- <rect
184
- x =" 30"
185
- y =" 25"
186
- width =" 16"
187
- height =" 50"
188
- rx =" 10"
189
- ry =" 10"
190
- />
191
- <rect
192
- x =" 54"
193
- y =" 25"
194
- width =" 16"
195
- height =" 50"
196
- rx =" 10"
197
- ry =" 10"
155
+ <path
156
+ d ="
157
+ m37,33
158
+ l0 34
159
+ m25,0
160
+ l0, -34
161
+ "
198
162
/>
199
163
</g >
200
164
<!-- queued
@@ -204,29 +168,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
204
168
<g
205
169
class =" queued"
206
170
>
207
- <rect
208
- x =" 20"
209
- y =" 20"
210
- width =" 60"
211
- height =" 16"
212
- rx =" 10"
213
- ry =" 10"
214
- />
215
- <rect
216
- x =" 20"
217
- y =" 41"
218
- width =" 60"
219
- height =" 16"
220
- rx =" 10"
221
- ry =" 10"
222
- />
223
- <rect
224
- x =" 20"
225
- y =" 62"
226
- width =" 60"
227
- height =" 16"
228
- rx =" 10"
229
- ry =" 10"
171
+ <path
172
+ d ="
173
+ m28,28
174
+ l43 0
175
+ m-43,21
176
+ l43, 0
177
+ m-43,21
178
+ l43 0
179
+ "
230
180
/>
231
181
</g >
232
182
<!-- runahead
@@ -242,6 +192,56 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
242
192
r =" 20"
243
193
/>
244
194
</g >
195
+
196
+ <!-- xtriggered
197
+
198
+ Radio signal (similar to RSS logo) representing waiting on xtrigger(s).
199
+ -->
200
+ <g class =" xtriggered" >
201
+ <path
202
+ d ="
203
+ m10,70
204
+ a60, 60, 0, 0, 1, 60, -60
205
+ m-40, 60
206
+ a40, 40 0, 0, 1, 40, -40
207
+ m-6, 27
208
+ a9,9, 0, 1, 0, .1, 0
209
+ m0, 4
210
+ a6,6, 0, 1, 0, .1, 0
211
+ "
212
+ />
213
+ </g >
214
+
215
+ <!-- Retry
216
+
217
+ Circular arrow representing a retry.
218
+ -->
219
+ <g class =" retry" >
220
+ <!-- An arc describing the arrow -->
221
+ <path d =" m25, 50 a30 30 1 1 1 25 30 " />
222
+ <!-- The arrowhead -->
223
+ <polygon points =" 0,40 26,75 52,40, 25,46" />
224
+ </g >
225
+
226
+ <!-- Wallclock
227
+
228
+ A clock face representing an unsatisfied wallclock trigger.
229
+
230
+ The path is just the hands of the clock. The icon is created in
231
+ combination with the outline circle.
232
+ -->
233
+ <g class =" wallclock" >
234
+ <path
235
+ d ="
236
+ m50, 18
237
+ l0, 36
238
+ l14, 14
239
+ l3,3
240
+ l3,-3
241
+ l-18, -18
242
+ "
243
+ />
244
+ </g >
245
245
</g >
246
246
</g >
247
247
</template >
@@ -275,6 +275,17 @@ const props = defineProps({
275
275
*/
276
276
const animResetTime = inject (' animResetTime' , () => ref (0 ), true )
277
277
278
+ // Get modifier (if any) for the task state.
279
+ const modifier = computed (() => {
280
+ if (props .task .isHeld ) return ' held'
281
+ if (props .task .isQueued ) return ' queued'
282
+ if (props .task .isRunahead ) return ' runahead'
283
+ if (props .task .isRetry ) return ' retry'
284
+ if (props .task .isWallclock ) return ' wallclock'
285
+ if (props .task .isXtriggered ) return ' xtriggered'
286
+ return ' '
287
+ })
288
+
278
289
const runningStyle = computed (() => {
279
290
if (
280
291
props .task .state === TaskState .RUNNING .name &&
@@ -355,11 +366,11 @@ const modifierTransform = _getModifierTransform()
355
366
fill: none;
356
367
stroke: none;
357
368
}
358
- .cross rect {
369
+ .cross path {
359
370
fill: none;
360
371
stroke: none;
361
372
}
362
- .expired rect {
373
+ .clockhands_big {
363
374
fill: none;
364
375
stroke: none;
365
376
}
@@ -381,6 +392,18 @@ const modifierTransform = _getModifierTransform()
381
392
fill: none;
382
393
stroke: none;
383
394
}
395
+ .wallclock {
396
+ fill: none;
397
+ stroke: none;
398
+ }
399
+ .xtriggered {
400
+ fill: none;
401
+ stroke: none;
402
+ }
403
+ .retry {
404
+ fill: none;
405
+ stroke: none;
406
+ }
384
407
}
385
408
386
409
& .preparing .status .dot {
@@ -406,17 +429,21 @@ const modifierTransform = _getModifierTransform()
406
429
.outline {
407
430
fill: $foreground;
408
431
}
409
- .cross rect {
410
- fill: $background;
432
+ .cross {
433
+ stroke: $background;
434
+ stroke- width: 14px ;
435
+ stroke- linecap: round;
411
436
}
412
437
}
413
438
414
439
& .submit - failed .status {
415
440
.outline {
416
441
fill: $background;
417
442
}
418
- .cross rect {
419
- fill: $foreground;
443
+ .cross {
444
+ stroke: $foreground;
445
+ stroke- width: 14px ;
446
+ stroke- linecap: round;
420
447
}
421
448
}
422
449
@@ -427,23 +454,29 @@ const modifierTransform = _getModifierTransform()
427
454
.dot {
428
455
fill: $background;
429
456
}
430
- .expired rect {
431
- fill: $background;
457
+ .clockhands_big {
458
+ stroke: $background;
459
+ stroke- width: 8px ;
460
+ stroke- linecap: round;
432
461
}
433
462
}
434
463
435
464
& .held .modifier {
436
465
.outline {
437
466
stroke: $foreground;
438
467
}
439
- .held rect {
440
- fill: $foreground;
468
+ .held path {
469
+ stroke: $foreground;
470
+ stroke- linecap: round;
471
+ stroke- width: 16px ;
441
472
}
442
473
}
443
474
444
475
& .queued .modifier {
445
- .queued rect {
446
- fill: $foreground;
476
+ .queued path {
477
+ stroke: $foreground;
478
+ stroke- linecap: round;
479
+ stroke- width: 16px ;
447
480
}
448
481
}
449
482
@@ -456,6 +489,42 @@ const modifierTransform = _getModifierTransform()
456
489
}
457
490
}
458
491
492
+ & .xtriggered .modifier {
493
+ .xtriggered {
494
+ stroke: $foreground;
495
+ stroke- width: 12px ;
496
+ stroke- linecap: round;
497
+ fill: none;
498
+ }
499
+ }
500
+
501
+ & .wallclock .modifier {
502
+ .outline {
503
+ fill: $background;
504
+ stroke: $foreground;
505
+ stroke- width: 7px ;
506
+ }
507
+ .wallclock {
508
+ stroke: $foreground;
509
+ stroke- width: 8px ;
510
+ fill: none;
511
+ stroke- linecap: round;
512
+ stroke- linejoin: round;
513
+ }
514
+ }
515
+
516
+ & .retry .modifier {
517
+ .retry path {
518
+ stroke: $foreground;
519
+ stroke- width: 12px ;
520
+ stroke- linecap: round;
521
+ }
522
+ .retry polygon {
523
+ stroke: none;
524
+ fill: $foreground;
525
+ }
526
+ }
527
+
459
528
& .running .progress {
460
529
animation- name: c8- task- progress- animation;
461
530
animation- timing- function: steps (50 );
0 commit comments