Skip to content

Commit 857627a

Browse files
xingzhang-suserushk014
authored andcommitted
Use regular page instead of resource page for registries configuration, Modified back routing on edit and detail page.
1 parent 244bc71 commit 857627a

File tree

10 files changed

+516
-18
lines changed

10 files changed

+516
-18
lines changed

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<div class="resource-header">
66
<div class="resource-header-name-state">
77
<span class="resource-header-name">
8-
<RouterLink :to="`/c/${this.$route.params.cluster}/${ this.PRODUCT_NAME }/${ this.RESOURCE.REGISTRY }/`">{{ t('imageScanner.registries.title') }}:</RouterLink>
8+
<RouterLink :to="`/c/${this.$route.params.cluster}/${ this.PRODUCT_NAME }/${this.PAGE.REGISTRIES}`">{{ t('imageScanner.registries.title') }}:</RouterLink>
99
{{ $route.params.id }}
1010
</span>
1111
<RegisterStatusBadge :status="registryStatus" />
@@ -33,7 +33,7 @@
3333

3434
<script>
3535
import { BadgeState } from '@rancher/components';
36-
import { PRODUCT_NAME, RESOURCE } from '@sbombastic-image-vulnerability-scanner/types';
36+
import { PRODUCT_NAME, RESOURCE, PAGE } from '@sbombastic-image-vulnerability-scanner/types';
3737
import ResourceTable from "@shell/components/ResourceTable";
3838
import RancherMeta from './common/RancherMeta.vue';
3939
import RegisterStatusBadge from './common/RegisterStatusBadge.vue';
@@ -53,6 +53,7 @@
5353
return {
5454
PRODUCT_NAME,
5555
RESOURCE,
56+
PAGE,
5657
registry: null,
5758
registryStatus: null,
5859
registryMetadata: [],

pkg/sbombastic-image-vulnerability-scanner/config/sbombastic-image-vulnerability-scanner.ts

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,19 @@ export function init($plugin: IPlugin, store: any) {
1212
icon: "pod_security",
1313
inStore: "cluster",
1414
});
15+
16+
virtualType({
17+
labelKey: 'imageScanner.registries.title',
18+
name: PAGE.REGISTRIES,
19+
namespaced: false,
20+
route: {
21+
name: `c-cluster-${PRODUCT_NAME}-${PAGE.REGISTRIES}`,
22+
params: {
23+
product: PRODUCT_NAME
24+
},
25+
meta: { pkg: PRODUCT_NAME, product: PRODUCT_NAME }
26+
}
27+
});
1528

1629
virtualType({
1730
labelKey: 'imageScanner.images.title',
@@ -72,6 +85,6 @@ export function init($plugin: IPlugin, store: any) {
7285
//"demo"
7386
]);
7487

75-
basicType([RESOURCE.REGISTRY, PAGE.VEX_MANAGEMENT], 'Advanced');
88+
basicType([PAGE.REGISTRIES, PAGE.VEX_MANAGEMENT], 'Advanced');
7689

7790
}

pkg/sbombastic-image-vulnerability-scanner/edit/sbombastic.rancher.io.registry.vue

Lines changed: 42 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import {
1414
REGISTRY_TYPE_OPTIONS,
1515
SCAN_INTERVAL_OPTIONS, SCAN_INTERVALS
1616
} from "@sbombastic-image-vulnerability-scanner/constants/scan-interval-options";
17+
import { PRODUCT_NAME, PAGE } from "@sbombastic-image-vulnerability-scanner/types";
1718
1819
export default {
1920
name: 'CruRegistry',
@@ -77,6 +78,44 @@ export default {
7778
},
7879
},
7980
81+
methods: {
82+
apply(event) {
83+
console.log('finish apply');
84+
this.save(event)
85+
.then(() => {
86+
this.$emit('done');
87+
})
88+
.catch((e) => {
89+
this.errors = e;
90+
})
91+
.finally(() => {
92+
this.$router.push({
93+
name: `c-cluster-${PRODUCT_NAME}-${PAGE.REGISTRIES}`,
94+
params: {
95+
cluster: this.$route.params.cluster,
96+
product: PRODUCT_NAME
97+
}
98+
});
99+
});
100+
},
101+
102+
cancel() {
103+
console.log('cancel done');
104+
this.done();
105+
this.$router.push({
106+
name: `c-cluster-${PRODUCT_NAME}-${PAGE.REGISTRIES}`,
107+
params: {
108+
cluster: this.$route.params.cluster,
109+
product: PRODUCT_NAME
110+
}
111+
});
112+
},
113+
doneRoute() {
114+
console.log('doneRoute');
115+
return `c-cluster-${PRODUCT_NAME}-${PAGE.REGISTRIES}`;
116+
},
117+
},
118+
80119
// Set default values for creating a new registry configuration
81120
created() {
82121
const spec = this.value.spec;
@@ -100,9 +139,10 @@ export default {
100139
:subtypes="[]"
101140
:validation-passed="true"
102141
:errors="errors"
142+
:cancel-event="true"
103143
@error="(e) => (errors = e)"
104-
@finish="save"
105-
@cancel="done"
144+
@finish="apply"
145+
@cancel="cancel"
106146
>
107147
<NameNsDescription
108148
:value="value"

pkg/sbombastic-image-vulnerability-scanner/formatters/PreviousScanCell.vue

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@ export default {
1313
},
1414
methods: {
1515
getStatusText(row) {
16-
return this.t(`imageScanner.enum.status.${row.prevScanStatus.toLowerCase()}`);
16+
return this.t(`imageScanner.enum.status.${row.prevScanStatus?.toLowerCase()}`);
1717
},
1818
getStatusLabelClass(row) {
19-
return row.prevScanStatus.toLowerCase();
19+
return row.prevScanStatus?.toLowerCase();
2020
},
2121
getStatusDotClass(row) {
22-
return `dot ${row.prevScanStatus.toLowerCase()}`;
22+
return `dot ${row.prevScanStatus?.toLowerCase()}`;
2323
}
2424
}
2525
};
@@ -32,6 +32,9 @@ export default {
3232
<div v-if="row.prevProgress">
3333
<ProgressCell :status="{ progress: row.prevProgress, error: row.error }" />
3434
</div>
35+
<div v-if="row.prevScanStatus.toLowerCase() === 'failed' && row.error">
36+
<span class="error-message">|<span style="margin-left: 10px;">{{ t("imageScanner.general.error") }}</span></span>
37+
</div>
3538
</div>
3639
</template>
3740

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,7 @@ imageScanner:
134134
ago: ago
135135
justNow: Just now
136136
none: none
137+
error: Error
137138

138139
typeLabel:
139140
sbombastic.rancher.io.registry: Registries configuration

pkg/sbombastic-image-vulnerability-scanner/list/sbombastic.rancher.io.registry.vue

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
<template>
22
<div>
33
<div>
4-
<button
5-
class="btn role-secondary"
6-
style="position: absolute; top: 80px; right: 120px;"
7-
@click="refresh()"
8-
>
9-
<i class="icon icon-refresh"></i>
10-
{{ t('imageScanner.registries.button.refresh') || 'Refresh data' }}
11-
</button>
4+
<!-- <button
5+
class="btn role-secondary"
6+
style="position: absolute; top: 80px; right: 120px;"
7+
@click="refresh()"
8+
>
9+
<i class="icon icon-refresh"></i>
10+
{{ t('imageScanner.registries.button.refresh') || 'Refresh data' }}
11+
</button> -->
1212
</div>
1313
<div class="state">State as of <span class="state-date-time">{{ latestUpdateTimeText }}</span></div>
1414
<div class="summary-section">

0 commit comments

Comments
 (0)