From b18de084cefcf9f27c1cbab27f1d54a60fcbb7a5 Mon Sep 17 00:00:00 2001 From: Steven Zhang Date: Wed, 10 Sep 2025 21:23:42 -0700 Subject: [PATCH] Fixed table data refresh issue after data removal --- .../RegistriesConfiguration.vue | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/pkg/sbombastic-image-vulnerability-scanner/pages/c/_cluster/sbombastic-image-vulnerability-scanner/RegistriesConfiguration.vue b/pkg/sbombastic-image-vulnerability-scanner/pages/c/_cluster/sbombastic-image-vulnerability-scanner/RegistriesConfiguration.vue index 413d8aa..b8e1986 100644 --- a/pkg/sbombastic-image-vulnerability-scanner/pages/c/_cluster/sbombastic-image-vulnerability-scanner/RegistriesConfiguration.vue +++ b/pkg/sbombastic-image-vulnerability-scanner/pages/c/_cluster/sbombastic-image-vulnerability-scanner/RegistriesConfiguration.vue @@ -215,7 +215,8 @@ complete: 0, failed: 0 }; - const rows = registriesCRD.map((rec) => { + const rows = registriesCRD; + registriesCRD.forEach((rec, index) => { this.latestUpdateTime = new Date(); let scanjobs = scanJobMap[`${rec.metadata.namespace}/${rec.metadata.name}`] || []; const status = scanjobs[0] ? scanjobs[0].status.statusResult.type.toLowerCase() || "pending" : "none"; @@ -223,17 +224,17 @@ const prevScanStatus = scanjobs[1] ? scanjobs[1].status.statusResult.type.toLowerCase() || "pending" : "none"; // Reform the record for the table - rec.currStatus = status; - rec.prevScanStatus = prevScanStatus; - rec.progress = scanjobs[0] && scanjobs[0].status.imagesCount && scanjobs[0].status.scannedImagesCount? + rows[index].currStatus = status; + rows[index].prevScanStatus = prevScanStatus; + rows[index].progress = scanjobs[0] && scanjobs[0].status.imagesCount && scanjobs[0].status.scannedImagesCount? Math.ceil(scanjobs[0].status.scannedImagesCount / scanjobs[0].status.imagesCount * 100) : 0; - rec.progressDetail = `${this.t("imageScanner.registries.configuration.scanTable.header.imagesScanned")}: ${scanjobs[0] ? scanjobs[0].status.scannedImagesCount : 0} / ${this.t("imageScanner.registries.configuration.scanTable.header.imagesFound")}: ${scanjobs[0] ? scanjobs[0].status.imagesCount : 0}`; - rec.prevProgress = scanjobs[1] && scanjobs[1].status.imagesCount && scanjobs[1].status.scannedImagesCount? + rows[index].progressDetail = `${this.t("imageScanner.registries.configuration.scanTable.header.imagesScanned")}: ${scanjobs[0] ? scanjobs[0].status.scannedImagesCount : 0} / ${this.t("imageScanner.registries.configuration.scanTable.header.imagesFound")}: ${scanjobs[0] ? scanjobs[0].status.imagesCount : 0}`; + rows[index].prevProgress = scanjobs[1] && scanjobs[1].status.imagesCount && scanjobs[1].status.scannedImagesCount? Math.ceil(scanjobs[1].status.scannedImagesCount / scanjobs[1].status.imagesCount * 100) : 0; - rec.prevProgressDetail = `${this.t("imageScanner.registries.configuration.scanTable.header.imagesScanned")}: ${scanjobs[1] ? scanjobs[1].status.scannedImagesCount : 0} / ${this.t("imageScanner.registries.configuration.scanTable.header.imagesFound")}: ${scanjobs[1] ? scanjobs[1].status.imagesCount : 0}`; - rec.error = scanjobs[0] && scanjobs[0].status.statusResult.type.toLowerCase() === "failed" ? scanjobs[0].status.statusResult.message : ""; - rec.PrevError = scanjobs[1] && scanjobs[1].status.statusResult.type.toLowerCase() === "failed" ? scanjobs[1].status.statusResult.message : ""; - rec.refreshFn = this.refresh; + rows[index].prevProgressDetail = `${this.t("imageScanner.registries.configuration.scanTable.header.imagesScanned")}: ${scanjobs[1] ? scanjobs[1].status.scannedImagesCount : 0} / ${this.t("imageScanner.registries.configuration.scanTable.header.imagesFound")}: ${scanjobs[1] ? scanjobs[1].status.imagesCount : 0}`; + rows[index].error = scanjobs[0] && scanjobs[0].status.statusResult.type.toLowerCase() === "failed" ? scanjobs[0].status.statusResult.message : ""; + rows[index].prevError = scanjobs[1] && scanjobs[1].status.statusResult.type.toLowerCase() === "failed" ? scanjobs[1].status.statusResult.message : ""; + rows[index].refreshFn = this.refresh; // Summarize the data for Latest status updates panel registryStatusList.push({ @@ -249,8 +250,7 @@ if (status && statusSummary.hasOwnProperty(status)) { statusSummary[status]++; } - return rec; - }); + }); // Sort and limit the registryStatusList to 5 most recent updates registryStatusList = registryStatusList.sort((a, b) => new Date(b.lastTransitionTime) - new Date(a.lastTransitionTime)).slice(0, 5); while (registryStatusList.length < 5) { @@ -262,6 +262,7 @@ lastTransitionTime: new Date().toISOString() }); } + console.log("rows", rows) return { rows,