ortoni-report 2.0.3 → 2.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,117 +4,34 @@
4
4
  <head>
5
5
  <meta charset="UTF-8">
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
- <meta name="description" content="Playwright HTML report by LetCode Koushik - V2.0.3">
7
+ <meta name="description" content="Playwright HTML report by LetCode Koushik - V2.0.4">
8
8
  <title>{{title}}</title>
9
- <link rel="icon" href="https://raw.githubusercontent.com/ortoniKC/ortoni-report/refs/heads/main/favicon.png" type="image/x-icon">
9
+ <link rel="icon" href="https://raw.githubusercontent.com/ortoniKC/ortoni-report/refs/heads/main/favicon.png"
10
+ type="image/x-icon">
10
11
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.6.0/css/all.min.css"
11
12
  integrity="sha512-Kc323vGBEqzTmouAECnVceyQqyqdsSiqLQISBL29aUW4U/M7pSPA/gEUZQqv1cwx4OnYxTxve5UMg5GT6L4JJg=="
12
13
  crossorigin="anonymous" referrerpolicy="no-referrer" />
13
14
  </head>
14
15
  <style>
15
16
  {{{inlineCss}}}
16
- </style>
17
+ </style>
18
+
17
19
  <body>
18
- {{> navbar}}
20
+ {{> navbar }}
19
21
  <section class="section">
20
22
  <main class="container">
21
23
  <div class="columns">
22
24
  <aside class="column is-two-fifths">
23
25
  {{> testPanel}}
24
- <div class="content sidebar">
25
- {{#if showProject}}
26
- {{#each groupedResults}}
27
- <details class="box">
28
- <summary class="is-size-5 has-icon-right">
29
- <div class="icon-text">
30
- <span class="icon has-text-info">
31
- <svg class="image is-16x16" height="512" viewBox="0 0 32 32" width="512" xmlns="http://www.w3.org/2000/svg"><g data-name="Layer 2"><path d="M11.612 30.945a3.986 3.986 0 01-2.829-1.17l-5.209-5.208a4.006 4.006 0 010-5.657l3.955-3.954a1 1 0 011.414 1.414l-3.955 3.954a2.003 2.003 0 000 2.829l5.21 5.208a2.004 2.004 0 002.828 0l7.235-7.234a2.003 2.003 0 000-2.828l-4.63-4.63a1 1 0 011.414-1.414l4.63 4.63a4.006 4.006 0 010 5.657l-7.235 7.233a3.988 3.988 0 01-2.828 1.17z" fill="#232323"/><path d="M15.662 20.038a.997.997 0 01-.707-.293l-4.63-4.63a4.006 4.006 0 010-5.656l7.235-7.234a4.004 4.004 0 015.657 0l5.209 5.208a4.006 4.006 0 010 5.657l-3.955 3.954a1 1 0 01-1.414-1.414l3.955-3.954a2.003 2.003 0 000-2.829l-5.21-5.208a2.002 2.002 0 00-2.828 0l-7.235 7.234a2.003 2.003 0 000 2.828l4.63 4.63a1 1 0 01-.707 1.707z" fill="#7fbde7"/></g></svg>
32
- </span>
33
- <span>{{@key}}</span>
34
- </div>
35
- </summary>
36
- <ul class="mt-4 mb-4">
37
- {{#each this}}
38
- <details class="mt-2 mb-2">
39
- <summary class="is-size-5 is-capitalized">
40
- <div class="icon-text">
41
- <span class="icon has-text-info">
42
- <svg class="image is-16x16"xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M181.344 42.656v394.671C181.344 478.562 214.781 512 256 512c41.25 0 74.672-33.438 74.672-74.673V42.656H181.344z" fill="#e6e9ed"/><path d="M352 32c0 17.672-14.312 32-32 32H192c-17.656 0-32-14.328-32-32s14.344-32 32-32h128c17.688 0 32 14.328 32 32z" fill="#ccd1d9"/><path d="M181.344 192v245.327C181.344 478.562 214.781 512 256 512c41.25 0 74.672-33.438 74.672-74.673V192H181.344z" fill="#a0d468"/><g fill="#434a54"><path d="M245.344 266.655c0-5.89-4.781-10.655-10.672-10.655h-53.328v21.328h53.328c5.89 0 10.672-4.781 10.672-10.673zM234.672 319.999h-53.328v21.328h53.328c5.891 0 10.672-4.781 10.672-10.671s-4.782-10.657-10.672-10.657zM245.344 202.656c0-5.891-4.781-10.656-10.672-10.656h-53.328v21.328h53.328c5.89 0 10.672-4.781 10.672-10.672z"/></g></svg>
43
- </span>
44
- <span>{{@key}}</span>
45
- </div>
46
- </summary>
47
- <ul class="mt-4 mb-4">
48
- {{#each this}}
49
- <details class="mt-2 mb-2">
50
- <summary class="is-capitalized is-size-6">{{@key}}</summary>
51
- <ul class="mt-4 mb-4">
52
- {{#each this}}
53
- <li class="media {{#if (eq status 'skipped')}}is-hidden{{/if}}" data-suite-name="{{suite}}"
54
- data-test-duration="{{duration}}" data-test-tags="{{joinWithSpace testTags}}"
55
- data-project-name="{{projectName}}" data-test-id="{{index}}"
56
- data-test-status="{{status}} {{retry}}">
57
- {{> testStatus}}
58
- </li>
59
- {{/each}}
60
- </ul>
61
- </details>
62
- {{/each}}
63
- </ul>
64
- </details>
65
- {{/each}}
66
- </ul>
67
- </details>
68
- {{/each}}
69
- {{else}}
70
- {{#each groupedResults}}
71
- <details class="box">
72
- <summary class="is-size-5 has-icon-right">
73
- <div class="icon-text">
74
- <span class="icon has-text-info">
75
- <svg class="image is-16x16" height="512" viewBox="0 0 32 32" width="512" xmlns="http://www.w3.org/2000/svg"><g data-name="Layer 2"><path d="M11.612 30.945a3.986 3.986 0 01-2.829-1.17l-5.209-5.208a4.006 4.006 0 010-5.657l3.955-3.954a1 1 0 011.414 1.414l-3.955 3.954a2.003 2.003 0 000 2.829l5.21 5.208a2.004 2.004 0 002.828 0l7.235-7.234a2.003 2.003 0 000-2.828l-4.63-4.63a1 1 0 011.414-1.414l4.63 4.63a4.006 4.006 0 010 5.657l-7.235 7.233a3.988 3.988 0 01-2.828 1.17z" fill="#232323"/><path d="M15.662 20.038a.997.997 0 01-.707-.293l-4.63-4.63a4.006 4.006 0 010-5.656l7.235-7.234a4.004 4.004 0 015.657 0l5.209 5.208a4.006 4.006 0 010 5.657l-3.955 3.954a1 1 0 01-1.414-1.414l3.955-3.954a2.003 2.003 0 000-2.829l-5.21-5.208a2.002 2.002 0 00-2.828 0l-7.235 7.234a2.003 2.003 0 000 2.828l4.63 4.63a1 1 0 01-.707 1.707z" fill="#7fbde7"/></g></svg>
76
- </span>
77
- <span>{{@key}}</span>
78
- </div>
79
- </summary>
80
- <ul class="mt-4 mb-4">
81
- {{#each this}}
82
- <details class="mt-2 mb-2">
83
- <summary class="is-size-5 is-capitalized">
84
- <div class="icon-text">
85
- <span class="icon has-text-info">
86
- <svg class="image is-16x16"xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M181.344 42.656v394.671C181.344 478.562 214.781 512 256 512c41.25 0 74.672-33.438 74.672-74.673V42.656H181.344z" fill="#e6e9ed"/><path d="M352 32c0 17.672-14.312 32-32 32H192c-17.656 0-32-14.328-32-32s14.344-32 32-32h128c17.688 0 32 14.328 32 32z" fill="#ccd1d9"/><path d="M181.344 192v245.327C181.344 478.562 214.781 512 256 512c41.25 0 74.672-33.438 74.672-74.673V192H181.344z" fill="#a0d468"/><g fill="#434a54"><path d="M245.344 266.655c0-5.89-4.781-10.655-10.672-10.655h-53.328v21.328h53.328c5.89 0 10.672-4.781 10.672-10.673zM234.672 319.999h-53.328v21.328h53.328c5.891 0 10.672-4.781 10.672-10.671s-4.782-10.657-10.672-10.657zM245.344 202.656c0-5.891-4.781-10.656-10.672-10.656h-53.328v21.328h53.328c5.89 0 10.672-4.781 10.672-10.672z"/></g></svg>
87
- </span>
88
- <span>{{@key}}</span>
89
- </div>
90
- </summary>
91
- <ul class="mt-4 mb-4">
92
- {{#each this}}
93
- <li class="media {{#if (eq status 'skipped')}}is-hidden{{/if}}" data-suite-name="{{suite}}"
94
- data-test-duration="{{duration}}" data-test-tags="{{joinWithSpace testTags}}"
95
- data-project-name="{{projectName}}" data-test-id="{{index}}"
96
- data-test-status="{{status}} {{retry}}">
97
- {{> testStatus}}
98
- </li>
99
- {{/each}}
100
- </ul>
101
- </details>
102
- {{/each}}
103
- </ul>
104
- </details>
105
- {{/each}}
106
- {{/if}}
107
- </div>
26
+ {{> project}}
108
27
  </aside>
109
28
  <section class="column is-three-fifths">
110
29
  {{!-- Overall summary --}}
111
30
  <div id="summary">
112
- <div class="columns is-multiline">
31
+ <div class="columns is-multiline has-text-centered">
113
32
  {{> summaryCard bg="primary" status="all" statusHeader="All Tests" statusCount=totalCount}}
114
33
  {{> summaryCard bg="success" status="passed" statusHeader="Passed" statusCount=passCount}}
115
34
  {{> summaryCard bg="danger" status="failed" statusHeader="Failed" statusCount=failCount}}
116
- </div>
117
- <div class="columns is-multiline">
118
35
  {{> summaryCard bg="info" status="skipped" statusHeader="Skipped" statusCount=skipCount}}
119
36
  {{> summaryCard bg="warning" status="flaky" statusHeader="Flaky" statusCount=flakyCount}}
120
37
  {{> summaryCard bg="retry" status="retry" statusHeader="Retry" statusCount=retryCount}}
@@ -134,22 +51,9 @@
134
51
  </div>
135
52
  </main>
136
53
  </section>
137
- <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
138
54
  <script>
139
- function escapeHtml(unsafe) {
140
- return unsafe.replace(/[&<"']/g, function (match) {
141
- const escapeMap = {
142
- '&': '&amp;',
143
- '<': '&lt;',
144
- '>': '&gt;',
145
- '"': '&quot;',
146
- "'": '&#039;'
147
- };
148
- return escapeMap[match];
149
- });
150
- }
151
55
  document.addEventListener('DOMContentLoaded', () => {
152
- const testData = {{{ json results }}};
56
+ let testData = {{{ json results }}};
153
57
  const testDetails = document.getElementById('testDetails');
154
58
  const summary = document.getElementById('summary');
155
59
  const backButton = document.querySelector('button#back-to-summary');
@@ -158,21 +62,21 @@
158
62
  const preferredTheme = themeButton.getAttribute("data-theme-status");
159
63
  const themeIcon = document.getElementById("theme-icon");
160
64
  const htmlElement = document.documentElement;
161
-
65
+
162
66
  if (preferredTheme === 'dark') {
163
67
  htmlElement.setAttribute('data-theme', 'dark');
164
- themeIcon.classList='';
165
- themeIcon.classList.add("fa","fa-moon");
68
+ themeIcon.classList = '';
69
+ themeIcon.classList.add("fa", "fa-moon");
166
70
  } else if (preferredTheme === 'light') {
167
71
  htmlElement.setAttribute('data-theme', 'light');
168
- themeIcon.classList='';
169
- themeIcon.classList.add("fa","fa-sun");
72
+ themeIcon.classList = '';
73
+ themeIcon.classList.add("fa", "fa-sun");
170
74
  } else {
171
- if(window.matchMedia('(prefers-color-scheme: light)').matches){
172
- themeIcon.classList.add("fa","fa-sun");
75
+ if (window.matchMedia('(prefers-color-scheme: light)').matches) {
76
+ themeIcon.classList.add("fa", "fa-sun");
173
77
  }
174
- else{
175
- themeIcon.classList.add("fa","fa-moon");
78
+ else {
79
+ themeIcon.classList.add("fa", "fa-moon");
176
80
  }
177
81
  }
178
82
  themeButton.addEventListener('click', () => {
@@ -180,11 +84,11 @@
180
84
  const newTheme = currentTheme === 'light' ? 'dark' : 'light';
181
85
  htmlElement.setAttribute('data-theme', newTheme);
182
86
  if (newTheme === 'dark') {
183
- themeIcon.classList='';
184
- themeIcon.classList.add("fa","fa-moon");
87
+ themeIcon.classList = '';
88
+ themeIcon.classList.add("fa", "fa-moon");
185
89
  } else {
186
- themeIcon.classList='';
187
- themeIcon.classList.add("fa","fa-sun");
90
+ themeIcon.classList = '';
91
+ themeIcon.classList.add("fa", "fa-sun");
188
92
  }
189
93
  });
190
94
 
@@ -245,7 +149,7 @@
245
149
  }
246
150
 
247
151
  testDetails.innerHTML = `
248
- <button class="button content" id="back-to-summary" style="display: block"
152
+ <button class="button is-info is-light mb-4" id="back-to-summary" style="display: block"
249
153
  onclick="showSummary()">
250
154
  <span class="icon"><i class="fa-solid fa-chevron-left" style="color: #63E6BE;"></i></span>
251
155
  <span>Back to Summary</span></button>
@@ -323,12 +227,27 @@
323
227
  </ul>
324
228
  </nav>
325
229
  ` : ''}
230
+ </div>
326
231
  </div>
327
-
328
- </div>
232
+ ${test.annotations && test.annotations.length ? `
233
+ <article class="message">
234
+ <div class="message-body">
235
+ ${test.annotations
236
+ .filter(annotation => annotation !== null && annotation !== undefined)
237
+ .map(annotation => `
238
+ <div>
239
+ ${annotation?.type ? `<strong class="has-text-link">Type: </strong><span>${annotation?.type}</span>` : ''}
240
+ <br>
241
+ ${annotation?.description ? `<strong class="has-text-link">Description: </strong><span>${annotation?.description}</span>` : ''}
242
+ </div>
243
+ <br>
244
+ `).join('')}
245
+ </div>
246
+ </article>
247
+ ` : ``}
329
248
  <div class="content">
330
249
  ${test.steps.length > 0 ? `
331
- <details id="stepopen">
250
+ <details id="stepopen" open>
332
251
  <summary><h4 class="title is-4">Steps</h4></summary>
333
252
  <span id="stepDetails" class="content"></span>
334
253
  </details>
@@ -338,32 +257,30 @@
338
257
  ${test.errors.length ? `
339
258
  <h4 class="title is-4">Errors</h4>
340
259
  <div class="content">
341
- <pre><code class="data-lang=js">${escapeHtml(test.errors.join('\n'))}</code></pre>
260
+ <pre><code class="data-lang=js">${test.errors.join('\n')}</code></pre>
342
261
  </div>` : ''}
343
262
  </div>
344
263
  <div>
345
264
  ${test.logs ? `
346
265
  <h4 class="title is-4">Logs</h4>
347
266
  <div class="box">
348
- <pre>${escapeHtml(test.logs)}</pre>
267
+ <pre>${test.logs}</pre>
349
268
  </div>` : ''}
350
269
  </div>
351
270
  `;
352
- document.querySelector('.pagination-previous').addEventListener('click', () => changeScreenshot(-1));
353
- document.querySelector('.pagination-next').addEventListener('click', () => changeScreenshot(1));
354
- document.querySelectorAll('.pagination-link').forEach((link, index) => {
355
- link.addEventListener('click', () => gotoScreenshot(index));
356
- });
271
+ if(test.screenshots.length > 0){
272
+ document.querySelector('.pagination-previous').addEventListener('click', () => changeScreenshot(-1));
273
+ document.querySelector('.pagination-next').addEventListener('click', () => changeScreenshot(1));
274
+ document.querySelectorAll('.pagination-link').forEach((link, index) => {
275
+ link.addEventListener('click', () => gotoScreenshot(index));
276
+ });
277
+ }
357
278
  const stepDetailsDiv = document.getElementById('stepDetails');
358
279
  if (stepDetailsDiv) {
359
280
  const stepsList = attachSteps(test);
360
281
  const detail = document.getElementById("stepopen");
361
- if (test.errors.length > 0) {
362
- detail.setAttribute("open", "");
363
- }
364
282
  stepDetailsDiv.appendChild(stepsList);
365
283
  }
366
-
367
284
  }
368
285
 
369
286
  function attachSteps(test) {
@@ -377,7 +294,7 @@
377
294
  const pre = document.createElement('pre');
378
295
  const code = document.createElement('code');
379
296
  const locationText = step.location ? `\n\nat: ${step.location}` : '';
380
- code.textContent = `${step.snippet}${locationText}`;
297
+ code.innerHTML = `${step.snippet}${locationText}`;
381
298
  code.setAttribute('data-lang', 'js');
382
299
  pre.appendChild(code);
383
300
  li.appendChild(pre);
@@ -555,28 +472,8 @@
555
472
 
556
473
  searchInput.addEventListener('input', debouncedSearch);
557
474
 
558
- const ctx = document.getElementById('testChart');
559
- new Chart(ctx, {
560
- type: 'doughnut',
561
- data: {
562
- labels: ['Passed', 'Failed', 'Skipped', 'Flaky'],
563
- datasets: [{
564
- data: [{{ passCount }}, {{ failCount }}, {{ skipCount }}, {{ flakyCount }}],
565
- backgroundColor: ['#28a745', '#ff6685', '#66d1ff', '#ffb70f']
566
- }]
567
- },
568
- options: {
569
- responsive: true,
570
- maintainAspectRatio: false,
571
- plugins: {
572
- legend: {
573
- display: false
574
- }
575
- }
576
- }
577
- });
578
475
  attachEventListeners();
579
- });
476
+ });
580
477
  </script>
581
478
  </body>
582
479
 
@@ -0,0 +1,132 @@
1
+ <div class="content sidebar">
2
+ {{#if showProject}}
3
+ {{#each groupedResults}}
4
+ <details class="box">
5
+ <summary class="is-size-5 has-icon-right">
6
+ <div class="icon-text">
7
+ <span class="icon has-text-info">
8
+ <svg class="image is-16x16" height="512" viewBox="0 0 32 32" width="512"
9
+ xmlns="http://www.w3.org/2000/svg">
10
+ <g data-name="Layer 2">
11
+ <path
12
+ d="M11.612 30.945a3.986 3.986 0 01-2.829-1.17l-5.209-5.208a4.006 4.006 0 010-5.657l3.955-3.954a1 1 0 011.414 1.414l-3.955 3.954a2.003 2.003 0 000 2.829l5.21 5.208a2.004 2.004 0 002.828 0l7.235-7.234a2.003 2.003 0 000-2.828l-4.63-4.63a1 1 0 011.414-1.414l4.63 4.63a4.006 4.006 0 010 5.657l-7.235 7.233a3.988 3.988 0 01-2.828 1.17z"
13
+ fill="#232323" />
14
+ <path
15
+ d="M15.662 20.038a.997.997 0 01-.707-.293l-4.63-4.63a4.006 4.006 0 010-5.656l7.235-7.234a4.004 4.004 0 015.657 0l5.209 5.208a4.006 4.006 0 010 5.657l-3.955 3.954a1 1 0 01-1.414-1.414l3.955-3.954a2.003 2.003 0 000-2.829l-5.21-5.208a2.002 2.002 0 00-2.828 0l-7.235 7.234a2.003 2.003 0 000 2.828l4.63 4.63a1 1 0 01-.707 1.707z"
16
+ fill="#7fbde7" />
17
+ </g>
18
+ </svg>
19
+ </span>
20
+ <span>{{@key}}</span>
21
+ </div>
22
+ </summary>
23
+ <ul class="mt-4 mb-4">
24
+ {{#each this}}
25
+ <details class="mt-2 mb-2">
26
+ <summary class="is-size-5 is-capitalized">
27
+ <div class="icon-text">
28
+ <span class="icon has-text-info">
29
+ <svg class="image is-16x16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
30
+ <path
31
+ d="M181.344 42.656v394.671C181.344 478.562 214.781 512 256 512c41.25 0 74.672-33.438 74.672-74.673V42.656H181.344z"
32
+ fill="#e6e9ed" />
33
+ <path
34
+ d="M352 32c0 17.672-14.312 32-32 32H192c-17.656 0-32-14.328-32-32s14.344-32 32-32h128c17.688 0 32 14.328 32 32z"
35
+ fill="#ccd1d9" />
36
+ <path
37
+ d="M181.344 192v245.327C181.344 478.562 214.781 512 256 512c41.25 0 74.672-33.438 74.672-74.673V192H181.344z"
38
+ fill="#a0d468" />
39
+ <g fill="#434a54">
40
+ <path
41
+ d="M245.344 266.655c0-5.89-4.781-10.655-10.672-10.655h-53.328v21.328h53.328c5.89 0 10.672-4.781 10.672-10.673zM234.672 319.999h-53.328v21.328h53.328c5.891 0 10.672-4.781 10.672-10.671s-4.782-10.657-10.672-10.657zM245.344 202.656c0-5.891-4.781-10.656-10.672-10.656h-53.328v21.328h53.328c5.89 0 10.672-4.781 10.672-10.672z" />
42
+ </g>
43
+ </svg>
44
+ </span>
45
+ <span>{{@key}}</span>
46
+ </div>
47
+ </summary>
48
+ <ul class="mt-4 mb-4">
49
+ {{#each this}}
50
+ <details class="mt-2 mb-2">
51
+ <summary class="is-capitalized is-size-6">{{@key}}</summary>
52
+ <ul class="mt-4 mb-4">
53
+ {{#each this}}
54
+ <li class="media {{#if (eq status 'skipped')}}is-hidden{{/if}}" data-suite-name="{{suite}}"
55
+ data-test-duration="{{duration}}" data-test-tags="{{joinWithSpace testTags}}"
56
+ data-project-name="{{projectName}}" data-test-id="{{index}}"
57
+ data-test-status="{{status}} {{retry}}">
58
+ {{> testStatus}}
59
+ </li>
60
+ {{/each}}
61
+ </ul>
62
+ </details>
63
+ {{/each}}
64
+ </ul>
65
+ </details>
66
+ {{/each}}
67
+ </ul>
68
+ </details>
69
+ {{/each}}
70
+ {{else}}
71
+ {{#each groupedResults}}
72
+ <details class="box">
73
+ <summary class="is-size-5 has-icon-right">
74
+ <div class="icon-text">
75
+ <span class="icon has-text-info">
76
+ <svg class="image is-16x16" height="512" viewBox="0 0 32 32" width="512"
77
+ xmlns="http://www.w3.org/2000/svg">
78
+ <g data-name="Layer 2">
79
+ <path
80
+ d="M11.612 30.945a3.986 3.986 0 01-2.829-1.17l-5.209-5.208a4.006 4.006 0 010-5.657l3.955-3.954a1 1 0 011.414 1.414l-3.955 3.954a2.003 2.003 0 000 2.829l5.21 5.208a2.004 2.004 0 002.828 0l7.235-7.234a2.003 2.003 0 000-2.828l-4.63-4.63a1 1 0 011.414-1.414l4.63 4.63a4.006 4.006 0 010 5.657l-7.235 7.233a3.988 3.988 0 01-2.828 1.17z"
81
+ fill="#232323" />
82
+ <path
83
+ d="M15.662 20.038a.997.997 0 01-.707-.293l-4.63-4.63a4.006 4.006 0 010-5.656l7.235-7.234a4.004 4.004 0 015.657 0l5.209 5.208a4.006 4.006 0 010 5.657l-3.955 3.954a1 1 0 01-1.414-1.414l3.955-3.954a2.003 2.003 0 000-2.829l-5.21-5.208a2.002 2.002 0 00-2.828 0l-7.235 7.234a2.003 2.003 0 000 2.828l4.63 4.63a1 1 0 01-.707 1.707z"
84
+ fill="#7fbde7" />
85
+ </g>
86
+ </svg>
87
+ </span>
88
+ <span>{{@key}}</span>
89
+ </div>
90
+ </summary>
91
+ <ul class="mt-4 mb-4">
92
+ {{#each this}}
93
+ <details class="mt-2 mb-2">
94
+ <summary class="is-size-5 is-capitalized">
95
+ <div class="icon-text">
96
+ <span class="icon has-text-info">
97
+ <svg class="image is-16x16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
98
+ <path
99
+ d="M181.344 42.656v394.671C181.344 478.562 214.781 512 256 512c41.25 0 74.672-33.438 74.672-74.673V42.656H181.344z"
100
+ fill="#e6e9ed" />
101
+ <path
102
+ d="M352 32c0 17.672-14.312 32-32 32H192c-17.656 0-32-14.328-32-32s14.344-32 32-32h128c17.688 0 32 14.328 32 32z"
103
+ fill="#ccd1d9" />
104
+ <path
105
+ d="M181.344 192v245.327C181.344 478.562 214.781 512 256 512c41.25 0 74.672-33.438 74.672-74.673V192H181.344z"
106
+ fill="#a0d468" />
107
+ <g fill="#434a54">
108
+ <path
109
+ d="M245.344 266.655c0-5.89-4.781-10.655-10.672-10.655h-53.328v21.328h53.328c5.89 0 10.672-4.781 10.672-10.673zM234.672 319.999h-53.328v21.328h53.328c5.891 0 10.672-4.781 10.672-10.671s-4.782-10.657-10.672-10.657zM245.344 202.656c0-5.891-4.781-10.656-10.672-10.656h-53.328v21.328h53.328c5.89 0 10.672-4.781 10.672-10.672z" />
110
+ </g>
111
+ </svg>
112
+ </span>
113
+ <span>{{@key}}</span>
114
+ </div>
115
+ </summary>
116
+ <ul class="mt-4 mb-4">
117
+ {{#each this}}
118
+ <li class="media {{#if (eq status 'skipped')}}is-hidden{{/if}}" data-suite-name="{{suite}}"
119
+ data-test-duration="{{duration}}" data-test-tags="{{joinWithSpace testTags}}"
120
+ data-project-name="{{projectName}}" data-test-id="{{index}}"
121
+ data-test-status="{{status}} {{retry}}">
122
+ {{> testStatus}}
123
+ </li>
124
+ {{/each}}
125
+ </ul>
126
+ </details>
127
+ {{/each}}
128
+ </ul>
129
+ </details>
130
+ {{/each}}
131
+ {{/if}}
132
+ </div>
@@ -1,14 +1,8 @@
1
1
  {{#if (gr statusCount) }}
2
- <div class="column is-one-third">
3
- <div class="card is-clickable has-background-{{bg}} filter" data-status="{{status}}">
4
- <header class="card-header has-text-centered">
5
- <p class="card-header-title has-text-white">{{statusHeader}}</p>
6
- </header>
7
- <div class="card-content">
8
- <div class="content">
9
- <p class="has-text-centered has-text-white">{{statusCount}}</p>
10
- </div>
11
- </div>
2
+ <div class="column is-one-sixth">
3
+ <div class="box has-background-{{bg}} filter" data-status="{{status}}">
4
+ <p class="has-text-white is-size-6">{{statusHeader}}</p>
5
+ <p class="has-text-white is-size-4">{{statusCount}}</p>
12
6
  </div>
13
7
  </div>
14
- {{/if}}
8
+ {{/if}}
@@ -17,7 +17,7 @@
17
17
  {{#each projects}}
18
18
  <div class="dropdown-item">
19
19
  <label class="checkbox is-capitalized">
20
- <input type="checkbox" data-filter-type="project" value="{{this}}"> {{this}}
20
+ <input name="{{this}}" type="checkbox" data-filter-type="project" value="{{this}}"> {{this}}
21
21
  </label>
22
22
  </div>
23
23
  {{/each}}
@@ -25,7 +25,7 @@
25
25
  {{#each allTags}}
26
26
  <div class="dropdown-item">
27
27
  <label class="checkbox">
28
- <input type="checkbox" data-filter-type="test-tags" value="{{this}}"> {{this}}
28
+ <input name="{{this}}" type="checkbox" data-filter-type="test-tags" value="{{this}}"> {{this}}
29
29
  </label>
30
30
  </div>
31
31
  {{/each}}