Skip to content

Commit 00e69d4

Browse files
rushk014xingzhang-suse
authored andcommitted
feat(vulnerabilities): Add Vulnerabilities overview action buttons and dropdown
1 parent ba32c52 commit 00e69d4

File tree

2 files changed

+63
-5
lines changed

2 files changed

+63
-5
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ imageScanner:
7777
image:
7878
allImages: All images
7979
excludeBaseImages: Exclude base images
80-
includeBaseImages: Include base images
80+
includeBaseImages: Include base images only
8181
cve:
8282
allCves: All identified CVEs
8383
affectingCvesOnly: Affecting CVEs only

pkg/sbombastic-image-vulnerability-scanner/pages/c/_cluster/sbombastic-image-vulnerability-scanner/Vulnerabilities.vue

Lines changed: 62 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,23 @@
11
<template>
22
<div class="page">
33
<div class="header-section">
4-
<h1>Vulnerabilities</h1>
4+
<div class="title">
5+
{{ t("imageScanner.vulnerabilities.title") }}
6+
</div>
7+
<div class="filter-dropdown">
8+
<LabeledSelect
9+
v-model:value="selectedImageFilter"
10+
:options="filterImageOptions"
11+
:close-on-select="true"
12+
:multiple="false"
13+
/>
14+
</div>
15+
<div>
16+
<button class="btn role-primary">
17+
<i class="icon icon-download"></i>
18+
{{ t('imageScanner.images.downloadReport') }}
19+
</button>
20+
</div>
521
</div>
622
<div class="summary-section">
723
<TopSevereVulnerabilitiesChart
@@ -21,15 +37,27 @@
2137
:headers="VULNERABILITIES_TABLE"
2238
:key-field="'id'"
2339
@selection="onSelectionChange"
24-
/>
40+
>
41+
<template #header-left>
42+
<div class="table-top-left">
43+
<DownloadCustomReport
44+
class="table-btn"
45+
:selectedRows="selectedRows"
46+
:buttonName="t('imageScanner.images.buttons.downloadCustomReport')"
47+
/>
48+
</div>
49+
</template>
50+
</SortableTable>
2551
</div>
2652
</div>
2753
</template>
2854

2955
<script>
3056
import SortableTable from '@shell/components/SortableTable';
31-
import SeverityDistribution from '@sbombastic-image-vulnerability-scanner/components/SeverityDistribution.vue';
32-
import TopSevereVulnerabilitiesChart from '@sbombastic-image-vulnerability-scanner/components/TopSevereVulnerabilitiesChart.vue';
57+
import LabeledSelect from "@shell/components/form/LabeledSelect";
58+
import SeverityDistribution from '@sbombastic-image-vulnerability-scanner/components/SeverityDistribution';
59+
import TopSevereVulnerabilitiesChart from '@sbombastic-image-vulnerability-scanner/components/TopSevereVulnerabilitiesChart';
60+
import DownloadCustomReport from '@sbombastic-image-vulnerability-scanner/components/common/DownloadCustomReport';
3361
import { VULNERABILITIES_TABLE } from '@sbombastic-image-vulnerability-scanner/config/table-headers';
3462
import { severityDistribution, cves } from '@sbombastic-image-vulnerability-scanner/data/sbombastic.rancher.io.vulnerability';
3563
@@ -38,15 +66,24 @@
3866
components: {
3967
SeverityDistribution,
4068
TopSevereVulnerabilitiesChart,
69+
DownloadCustomReport,
4170
SortableTable,
71+
LabeledSelect,
4272
},
4373
data() {
74+
const filterImageOptions = [
75+
this.t('imageScanner.images.filters.image.allImages'),
76+
this.t('imageScanner.images.filters.image.excludeBaseImages'),
77+
this.t('imageScanner.images.filters.image.includeBaseImages')
78+
];
4479
return {
4580
VULNERABILITIES_TABLE,
4681
severityDistribution: null,
4782
topSevereVulnerabilities: [],
4883
vulnerabilities: [],
4984
selectedRows: [],
85+
filterImageOptions,
86+
selectedImageFilter: filterImageOptions[0],
5087
};
5188
},
5289
async fetch() {
@@ -87,6 +124,27 @@
87124
align-items: flex-start;
88125
gap: 24px;
89126
align-self: stretch;
127+
128+
.title {
129+
display: flex;
130+
flex-direction: column;
131+
justify-content: center;
132+
align-items: flex-start;
133+
gap: 4px;
134+
flex: 1 0 0;
135+
color: #141419;
136+
font-family: Lato;
137+
font-size: 24px;
138+
font-style: normal;
139+
font-weight: 600;
140+
line-height: 32px; /* 133.333% */
141+
}
142+
143+
.filter-dropdown {
144+
display: flex;
145+
width: 225px;
146+
height: 40px;
147+
}
90148
}
91149
92150
.summary-section {

0 commit comments

Comments
 (0)