Skip to content

Commit f29bd58

Browse files
rushk014xingzhang-suse
authored andcommitted
Add Registry details scan history table using mock data
1 parent be836e2 commit f29bd58

File tree

3 files changed

+149
-58
lines changed

3 files changed

+149
-58
lines changed

pkg/sbombastic-image-vulnerability-scanner/components/RegistryDetails.vue

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,25 +28,58 @@
2828
<RancherMeta :properties="registryMetaProperties" />
2929
</div>
3030
Recent scans
31-
31+
<ResourceTable
32+
:headers="headers"
33+
:rows="scanHistory"
34+
:namespaced="false"
35+
:rowActions="false"
36+
:search="false"
37+
class="table"
38+
/>
3239
</div>
3340
</template>
3441

3542
<script>
3643
import { BadgeState } from '@rancher/components';
3744
import { RESOURCE } from '@sbombastic-image-vulnerability-scanner/types';
45+
import ResourceTable from "@shell/components/ResourceTable";
3846
import RancherMeta from './common/RancherMeta.vue';
3947
import RegisterStatusBadge from './common/RegisterStatusBadge.vue';
48+
import { REGISTRY_SCAN_HISTORY_TABLE } from '@sbombastic-image-vulnerability-scanner/config/table-headers';
4049
4150
export default {
4251
name: 'registryDetails',
4352
components: {
4453
BadgeState,
54+
ResourceTable,
4555
RancherMeta,
46-
RegisterStatusBadge
56+
RegisterStatusBadge,
4757
},
4858
data() {
4959
return {
60+
scanHistory: [
61+
{
62+
status: 'completed',
63+
timestamp: '2023-10-01T12:00:00Z',
64+
progress: '100',
65+
imagesScanned: 50,
66+
imagesFound: 45,
67+
errors: [],
68+
},
69+
{
70+
status: 'failed',
71+
timestamp: '2023-10-02T12:00:00Z',
72+
progress: '35',
73+
imagesScanned: 1339,
74+
imagesFound: 3826,
75+
errors: [
76+
{
77+
message: "Not enough resources to complete the scan. Could not connect to proxyu",
78+
}
79+
],
80+
},
81+
],
82+
headers: REGISTRY_SCAN_HISTORY_TABLE
5083
}
5184
},
5285
async fetch() {
@@ -105,6 +138,10 @@
105138
gap: 24px;
106139
flex: 1 0 0;
107140
align-self: stretch;
141+
142+
.table {
143+
width: 100%;
144+
}
108145
}
109146
110147
.about {
Lines changed: 102 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,103 @@
11
import { elapsedTime } from "@shell/utils/time";
2-
export const REGISTRY_SCAN_TABLE =[
3-
{
4-
name: "scan",
5-
labelKey: "imageScanner.registries.registrytable.header.scan",
6-
value: 'metadata.name',
7-
formatter: "ScanNameCell",
8-
sort: "scan",
9-
},
10-
{
11-
name: "registry",
12-
labelKey: "imageScanner.registries.registrytable.header.registry",
13-
value: "registry.id",
14-
sort: "id",
15-
},
16-
{
17-
name: "namespace",
18-
labelKey: "imageScanner.registries.registrytable.header.namespace",
19-
value: "metadata.namespace",
20-
sort: "metadata.namespace",
21-
},
22-
{
23-
name: "repositories",
24-
labelKey: "imageScanner.registries.registrytable.header.repos",
25-
value: "registry.spec.repositories",
26-
sort: "registry.spec.repositories",
27-
},
28-
{
29-
name: "schedule",
30-
labelKey: "imageScanner.registries.registrytable.header.schedule",
31-
value: "schedule",
32-
getValue: (row: any) => elapsedTime(row.schedule * 3600 * 1000).label,
33-
sort: "schedule",
34-
},
35-
{
36-
name: "status",
37-
labelKey: "imageScanner.registries.registrytable.header.status",
38-
value: "registry.status.conditions.0.type",
39-
formatter: "RegistryStatusCellBadge",
40-
sort: "registry.status.conditions.0.type",
41-
},
42-
{
43-
name: "_progress",
44-
labelKey: "imageScanner.registries.registrytable.header.progress",
45-
value: "progress",
46-
getValue: (row: any) => row.progress.toString(),
47-
formatter: "ProgressCell",
48-
sort: "progress",
49-
},
50-
{
51-
name: "previousScan",
52-
labelKey: "imageScanner.registries.registrytable.header.prevScan",
53-
value: "status.conditions.1.type",
54-
formatter: "PreviousScanCell",
55-
sort: "status.conditions.1.type",
56-
},
57-
];
2+
3+
export const REGISTRY_SCAN_TABLE = [
4+
{
5+
name: "scan",
6+
labelKey: "imageScanner.registries.registrytable.header.scan",
7+
value: "metadata.name",
8+
formatter: "ScanNameCell",
9+
sort: "scan",
10+
},
11+
{
12+
name: "registry",
13+
labelKey: "imageScanner.registries.registrytable.header.registry",
14+
value: "registry.id",
15+
sort: "id",
16+
},
17+
{
18+
name: "namespace",
19+
labelKey: "imageScanner.registries.registrytable.header.namespace",
20+
value: "metadata.namespace",
21+
sort: "metadata.namespace",
22+
},
23+
{
24+
name: "repositories",
25+
labelKey: "imageScanner.registries.registrytable.header.repos",
26+
value: "registry.spec.repositories",
27+
sort: "registry.spec.repositories",
28+
},
29+
{
30+
name: "schedule",
31+
labelKey: "imageScanner.registries.registrytable.header.schedule",
32+
value: "schedule",
33+
getValue: (row: any) => elapsedTime(row.schedule * 3600 * 1000).label,
34+
sort: "schedule",
35+
},
36+
{
37+
name: "status",
38+
labelKey: "imageScanner.registries.registrytable.header.status",
39+
value: "registry.status.conditions.0.type",
40+
formatter: "RegistryStatusCellBadge",
41+
sort: "registry.status.conditions.0.type",
42+
},
43+
{
44+
name: "_progress",
45+
labelKey: "imageScanner.registries.registrytable.header.progress",
46+
value: "progress",
47+
getValue: (row: any) => row.progress.toString(),
48+
formatter: "ProgressCell",
49+
sort: "progress",
50+
},
51+
{
52+
name: "previousScan",
53+
labelKey: "imageScanner.registries.registrytable.header.prevScan",
54+
value: "status.conditions.1.type",
55+
formatter: "PreviousScanCell",
56+
sort: "status.conditions.1.type",
57+
},
58+
];
59+
60+
export const REGISTRY_SCAN_HISTORY_TABLE = [
61+
{
62+
name: "status",
63+
labelKey: "imageScanner.registries.configuration.scanTable.header.status",
64+
value: "status",
65+
formatter: "RegisterStatusCellBadge",
66+
sort: "status",
67+
},
68+
{
69+
name: "since",
70+
labelKey: "imageScanner.registries.configuration.scanTable.header.since",
71+
value: "timestamp",
72+
formatter: "Date",
73+
sort: "timestamp",
74+
},
75+
{
76+
name: "progress",
77+
labelKey: "imageScanner.registries.configuration.scanTable.header.progress",
78+
value: "progress",
79+
getValue: (row: any) => row.progress.toString(),
80+
formatter: "Percentage",
81+
sort: "progress",
82+
},
83+
{
84+
name: "imagesScanned",
85+
labelKey:
86+
"imageScanner.registries.configuration.scanTable.header.imagesScanned",
87+
value: "imagesScanned",
88+
sort: "imagesScanned",
89+
},
90+
{
91+
name: "imagesFound",
92+
labelKey:
93+
"imageScanner.registries.configuration.scanTable.header.imagesFound",
94+
value: "imagesFound",
95+
sort: "imagesFound",
96+
},
97+
{
98+
name: "errors",
99+
labelKey: "imageScanner.registries.configuration.scanTable.header.errors",
100+
value: "errors",
101+
sort: "errors",
102+
},
103+
];

pkg/sbombastic-image-vulnerability-scanner/l10n/en-us.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,14 @@ imageScanner:
2626
namespace: Namespace
2727
repositories: Repositories
2828
schedule: Schedule
29+
scanTable:
30+
header:
31+
status: Status
32+
since: Since
33+
progress: Progress
34+
imagesScanned: Images scan
35+
imagesFound: Images found
36+
errors: Error(s)
2937
images:
3038
title: Images
3139
downloadReport: Download full report

0 commit comments

Comments
 (0)