diff --git a/admin/webapp/package-lock.json b/admin/webapp/package-lock.json index 34b1bc268..856c35e38 100644 --- a/admin/webapp/package-lock.json +++ b/admin/webapp/package-lock.json @@ -655,6 +655,31 @@ "npm": "1.2.8000 || >= 1.4.16" } }, + "node_modules/@angular-devkit/build-angular/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, "node_modules/@angular-devkit/build-angular/node_modules/content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", @@ -851,16 +876,6 @@ "node": ">=4" } }, - "node_modules/@angular-devkit/build-angular/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/@angular-devkit/build-angular/node_modules/mime-types": { "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", @@ -874,6 +889,16 @@ "node": ">= 0.6" } }, + "node_modules/@angular-devkit/build-angular/node_modules/mime-types/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/@angular-devkit/build-angular/node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", @@ -1033,6 +1058,19 @@ "node": ">= 0.6" } }, + "node_modules/@angular-devkit/build-angular/node_modules/watchpack": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.6.3.tgz", + "integrity": "sha512-s3NZy0QpTY9qGqzc0wtz4qI28z3+5qKbbAec4MV4G9N3CfgZ9wgvQRr0cl2jh/tqkWG1NWHkmVMHZpCamev5Wg==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/@angular-devkit/build-angular/node_modules/webpack": { "version": "5.112.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.112.0.tgz", @@ -1132,35 +1170,10 @@ } } }, - "node_modules/@angular-devkit/build-angular/node_modules/webpack-dev-server/node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, "node_modules/@angular-devkit/build-angular/node_modules/webpack-dev-server/node_modules/http-proxy-middleware": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.10.tgz", - "integrity": "sha512-RKzRWNPxUZqbuk3BC5mGVJbBnWgr+diEnjJexIOytFbBzDy88Fbh/YvBr3DsNrl1jYAfjWfpATEv0NO35FDuPQ==", + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.11.tgz", + "integrity": "sha512-vTR6+QTUDDOQ3a5RI5YwSwSx3roJjLLAi+PBNFmBWDfrfk7zVteTFSMq6E8+FhnJ8yjMOTZfk71fRAFv1gl2OQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1192,29 +1205,6 @@ "node": ">=10.13.0" } }, - "node_modules/@angular-devkit/build-angular/node_modules/webpack/node_modules/mime-db": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/webpack/node_modules/watchpack": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.6.3.tgz", - "integrity": "sha512-s3NZy0QpTY9qGqzc0wtz4qI28z3+5qKbbAec4MV4G9N3CfgZ9wgvQRr0cl2jh/tqkWG1NWHkmVMHZpCamev5Wg==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/@angular-devkit/core": { "version": "20.3.41", "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-20.3.41.tgz", @@ -7789,6 +7779,18 @@ "integrity": "sha512-jhAJzaanK5LqyLQ50jJNIrB8fjL9gwWZTgYjevPvkDLMU+kTAZkYsobI59nYoeSrH1PucuyJEi247Pb90t6XUg==", "license": "MIT" }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, "node_modules/@types/esrecurse": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/@types/esrecurse/-/esrecurse-4.3.1.tgz", @@ -12239,9 +12241,9 @@ } }, "node_modules/hono": { - "version": "4.13.13", - "resolved": "https://registry.npmjs.org/hono/-/hono-4.13.13.tgz", - "integrity": "sha512-CQ46U0ZkAGmbT/4UxdzzGJpacP2IeKgY4a5/tOI9AABbpOMfK739wfDXmv1usCk+3RkKj1hQy4/fjhiwa2xlrA==", + "version": "4.13.14", + "resolved": "https://registry.npmjs.org/hono/-/hono-4.13.14.tgz", + "integrity": "sha512-yhRLQ21U6qa9Hsu2N7Qcbh8tE+WKEcoErjIo56LeSGiGXGp9sA7UpE86Ui9uexb61KakiGwuHMn2QdV7w6i6kQ==", "dev": true, "license": "MIT", "engines": { diff --git a/admin/webapp/websrc/app/common/api/risks-http.service.ts b/admin/webapp/websrc/app/common/api/risks-http.service.ts index 505548f9f..9aeb95cd9 100644 --- a/admin/webapp/websrc/app/common/api/risks-http.service.ts +++ b/admin/webapp/websrc/app/common/api/risks-http.service.ts @@ -145,12 +145,16 @@ export class RisksHttpService { ); } - postAssetsViewData(queryId: string, lastModifiedTime: number, includeNoVulAssets: boolean = false) { + postAssetsViewData( + queryId: string, + lastModifiedTime: number, + includeNoVulAssets: boolean = false + ) { return GlobalVariable.http.patch( PathConstant.ASSETS_VULS_URL, { last_modified_timestamp: lastModifiedTime, - include_no_vul_assets: includeNoVulAssets + include_no_vul_assets: includeNoVulAssets, }, { params: { queryId: queryId } } ); diff --git a/admin/webapp/websrc/app/common/services/containers.service.ts b/admin/webapp/websrc/app/common/services/containers.service.ts index 952cba75b..87cbb7bd5 100644 --- a/admin/webapp/websrc/app/common/services/containers.service.ts +++ b/admin/webapp/websrc/app/common/services/containers.service.ts @@ -317,7 +317,9 @@ export class ContainersService { ].join(','); const csvRows = vulnerabilities.map(vul => { - const { image_name, tags } = this.splitImageNameAndTag(vul.workload_image); + const { image_name, tags } = this.splitImageNameAndTag( + vul.workload_image + ); const digest = vul.workload_image_digest || ''; const workload_name = vul.workload_name || ''; const namespace = vul.workload_domain || ''; diff --git a/admin/webapp/websrc/app/common/types/common/common.ts b/admin/webapp/websrc/app/common/types/common/common.ts index 918f18e64..90ca38523 100644 --- a/admin/webapp/websrc/app/common/types/common/common.ts +++ b/admin/webapp/websrc/app/common/types/common/common.ts @@ -5,34 +5,20 @@ export type PolicyMode = 'Discover' | 'Monitor' | 'Protect' | ''; export type ProfileBaseline = 'basic' | 'zero-drift'; export type ScannerAutoscaleStrategy = - | 'immediate' - | 'delayed' - | 'disabled' - | 'n/a' - | ''; + 'immediate' | 'delayed' | 'disabled' | 'n/a' | ''; export type VulnerabilityView = - | 'all' - | 'containers' - | 'infrastructure' - | 'registry'; + 'all' | 'containers' | 'infrastructure' | 'registry'; export type DataOps = 'add' | 'edit' | 'delete'; export type VulQueryPublishedTimeOption = 'all' | 'before' | 'after'; export type VulQueryPackageTypeOption = - | 'all' - | 'withFix' - | 'withoutFix' - | 'withFixAll'; + 'all' | 'withFix' | 'withoutFix' | 'withFixAll'; export type VulQuerySeverityTypeOption = - | 'all' - | 'critical' - | 'high' - | 'medium' - | 'low'; + 'all' | 'critical' | 'high' | 'medium' | 'low'; export type VulQueryScoreTypeOption = 'v2' | 'v3'; @@ -47,21 +33,12 @@ export type VulQueryOrderByColumnOption = | 'impact'; export type ImageQueryOrderByColumnOption = - | 'repository' - | 'imageid' - | 'createdat' - | 'os' - | 'size' - | 'scannedat'; + 'repository' | 'imageid' | 'createdat' | 'os' | 'size' | 'scannedat'; export type OrderByOption = 'desc' | 'asc'; export type LastModifiedDateOption = - | 'all' - | 'twoweeks' - | 'onemonth' - | 'threemonths' - | 'custom'; + 'all' | 'twoweeks' | 'onemonth' | 'threemonths' | 'custom'; export type CfgType = 'ground' | 'user_created' | ''; diff --git a/admin/webapp/websrc/app/common/types/settings/certificate.ts b/admin/webapp/websrc/app/common/types/settings/certificate.ts index ef1f91b90..836d72d61 100644 --- a/admin/webapp/websrc/app/common/types/settings/certificate.ts +++ b/admin/webapp/websrc/app/common/types/settings/certificate.ts @@ -1,4 +1,4 @@ -import * as forge from 'node-forge'; +import forge from 'node-forge'; import * as moment from 'moment'; export enum CertificateKeyAlgorithmType { diff --git a/admin/webapp/websrc/app/common/types/settings/settings.ts b/admin/webapp/websrc/app/common/types/settings/settings.ts index f1f8ac558..ea8fb8d7d 100644 --- a/admin/webapp/websrc/app/common/types/settings/settings.ts +++ b/admin/webapp/websrc/app/common/types/settings/settings.ts @@ -220,12 +220,7 @@ export interface Role { } export type ApikeyExpiration = - | 'never' - | 'onehour' - | 'oneday' - | 'onemonth' - | 'oneyear' - | 'hours'; + 'never' | 'onehour' | 'oneday' | 'onemonth' | 'oneyear' | 'hours'; export interface Apikey { expiration_type: ApikeyExpiration; diff --git a/admin/webapp/websrc/app/frame/header/header.component.ts b/admin/webapp/websrc/app/frame/header/header.component.ts index 63537185f..7772bba91 100644 --- a/admin/webapp/websrc/app/frame/header/header.component.ts +++ b/admin/webapp/websrc/app/frame/header/header.component.ts @@ -146,9 +146,8 @@ export class HeaderComponent implements OnInit, OnDestroy { this.email = this.localStorage.get( GlobalConstant.LOCAL_STORAGE_TOKEN )?.emailHash; - this.username = this.localStorage.get( - GlobalConstant.LOCAL_STORAGE_TOKEN - )?.token?.username; + this.username = this.localStorage.get(GlobalConstant.LOCAL_STORAGE_TOKEN) + ?.token?.username; const role = this.localStorage.get(GlobalConstant.LOCAL_STORAGE_TOKEN) ?.token?.role; this.displayRole = role diff --git a/admin/webapp/websrc/app/routes/compliance-profile/compliance-profile.service.ts b/admin/webapp/websrc/app/routes/compliance-profile/compliance-profile.service.ts index ab79f1bd3..529bea542 100644 --- a/admin/webapp/websrc/app/routes/compliance-profile/compliance-profile.service.ts +++ b/admin/webapp/websrc/app/routes/compliance-profile/compliance-profile.service.ts @@ -8,8 +8,8 @@ import { ComplianceProfileData, complianceProfileEntries, ComplianceProfileTemplateData, - DomainGetResponse, } from '@common/types'; +import type { DomainGetResponse } from '@common/types'; import { MapConstant } from '@common/constants/map.constant'; import { AuthUtilsService } from '@common/utils/auth.utils'; diff --git a/admin/webapp/websrc/app/routes/components/roles-grid/add-edit-role-dialog/permission.service.ts b/admin/webapp/websrc/app/routes/components/roles-grid/add-edit-role-dialog/permission.service.ts index 45ebf4dd4..3e2483829 100644 --- a/admin/webapp/websrc/app/routes/components/roles-grid/add-edit-role-dialog/permission.service.ts +++ b/admin/webapp/websrc/app/routes/components/roles-grid/add-edit-role-dialog/permission.service.ts @@ -1,6 +1,7 @@ import { Injectable } from '@angular/core'; import { FormBuilder } from '@angular/forms'; -import { Permission, PermissionOption, Role } from '@common/types'; +import { Permission } from '@common/types'; +import type { PermissionOption, Role } from '@common/types'; import { TranslateService } from '@ngx-translate/core'; export interface PermissionDialogOption extends PermissionOption { diff --git a/admin/webapp/websrc/app/routes/components/security-risk-printable-report/assets-view-report/assets-view-report-assets-images-table/assets-view-report-assets-images-table.component.html b/admin/webapp/websrc/app/routes/components/security-risk-printable-report/assets-view-report/assets-view-report-assets-images-table/assets-view-report-assets-images-table.component.html index d1e14277b..d4d3efd9d 100644 --- a/admin/webapp/websrc/app/routes/components/security-risk-printable-report/assets-view-report/assets-view-report-assets-images-table/assets-view-report-assets-images-table.component.html +++ b/admin/webapp/websrc/app/routes/components/security-risk-printable-report/assets-view-report/assets-view-report-assets-images-table/assets-view-report-assets-images-table.component.html @@ -61,20 +61,26 @@ " [attr.data-index]="i"> -
{{ reportPage === 'vulnerabilities' ? image.name : image.image_name }}
-
+
+ {{ reportPage === 'vulnerabilities' ? image.name : image.image_name }} +
+
{{ image.digest }}
+ class="print-cell" + style="width: 10%">
{{ image.cvedb_version }}
{{ 'scan.report.gridHeader.CVE_DB_LAST_UPDATED' | translate }}
- {{ image.cvedb_create_time | date:'yyyy-MM-dd HH:mm:ss' }} + {{ image.cvedb_create_time | date: 'yyyy-MM-dd HH:mm:ss' }}
- + diff --git a/admin/webapp/websrc/app/routes/components/security-risk-printable-report/assets-view-report/assets-view-report-assets-platforms-table/assets-view-report-assets-platforms-table.component.html b/admin/webapp/websrc/app/routes/components/security-risk-printable-report/assets-view-report/assets-view-report-assets-platforms-table/assets-view-report-assets-platforms-table.component.html index bc1f532a8..d15d1adc5 100644 --- a/admin/webapp/websrc/app/routes/components/security-risk-printable-report/assets-view-report/assets-view-report-assets-platforms-table/assets-view-report-assets-platforms-table.component.html +++ b/admin/webapp/websrc/app/routes/components/security-risk-printable-report/assets-view-report/assets-view-report-assets-platforms-table/assets-view-report-assets-platforms-table.component.html @@ -80,7 +80,10 @@
0 @@ -103,7 +106,10 @@
{{ diff --git a/admin/webapp/websrc/app/routes/components/security-risk-printable-report/risks-view-report/risk-view-report-impact-col/risk-view-report-impact-col.component.html b/admin/webapp/websrc/app/routes/components/security-risk-printable-report/risks-view-report/risk-view-report-impact-col/risk-view-report-impact-col.component.html index 56243eca6..00e8d0a6a 100644 --- a/admin/webapp/websrc/app/routes/components/security-risk-printable-report/risks-view-report/risk-view-report-impact-col/risk-view-report-impact-col.component.html +++ b/admin/webapp/websrc/app/routes/components/security-risk-printable-report/risks-view-report/risk-view-report-impact-col/risk-view-report-impact-col.component.html @@ -31,7 +31,9 @@
{{ image.display_name }}
-
+
{{ image.digest }}
diff --git a/admin/webapp/websrc/app/routes/containers/container-details/container-details.component.html b/admin/webapp/websrc/app/routes/containers/container-details/container-details.component.html index 40153f76e..c7aae15a8 100644 --- a/admin/webapp/websrc/app/routes/containers/container-details/container-details.component.html +++ b/admin/webapp/websrc/app/routes/containers/container-details/container-details.component.html @@ -60,7 +60,9 @@ class="me-3" (click)="toggleAcceptedVuls()" mat-icon-button> - {{ !showAcceptedVuls ? 'visibility' : 'visibility_off' }} + {{ + !showAcceptedVuls ? 'visibility' : 'visibility_off' + }}
diff --git a/admin/webapp/websrc/app/routes/pages/login/login.component.ts b/admin/webapp/websrc/app/routes/pages/login/login.component.ts index a7b8f4d46..b52759318 100644 --- a/admin/webapp/websrc/app/routes/pages/login/login.component.ts +++ b/admin/webapp/websrc/app/routes/pages/login/login.component.ts @@ -17,7 +17,7 @@ import { MatDialog } from '@angular/material/dialog'; import { AgreementComponent } from '@routes/pages/login/eula/agreement/agreement.component'; import { NotificationService } from '@services/notification.service'; import { SummaryService } from '@services/summary.service'; -import { +import type { ErrorResponse, PublicPasswordProfile, SystemSummary, diff --git a/admin/webapp/websrc/app/routes/registries/registries-communication.service.ts b/admin/webapp/websrc/app/routes/registries/registries-communication.service.ts index 832767f2f..cd52fb0b7 100644 --- a/admin/webapp/websrc/app/routes/registries/registries-communication.service.ts +++ b/admin/webapp/websrc/app/routes/registries/registries-communication.service.ts @@ -1,5 +1,12 @@ import { Injectable } from '@angular/core'; -import { BehaviorSubject, combineLatest, Observable, Subject, timer, of } from 'rxjs'; +import { + BehaviorSubject, + combineLatest, + Observable, + Subject, + timer, + of, +} from 'rxjs'; import { RepoGetResponse, Summary } from '@common/types'; import { filter, @@ -10,7 +17,7 @@ import { tap, takeWhile, take, - catchError + catchError, } from 'rxjs/operators'; import { RegistriesService } from '@services/registries.service'; import { FormControl } from '@angular/forms'; @@ -41,44 +48,30 @@ export class RegistriesCommunicationService { registryDetails$ = combineLatest([ this.selectedRegistry$.pipe(filter(summary => summary !== undefined)), this.refreshDetailsSubject$.pipe(startWith(null)), - ]) - .pipe( - switchMap(([summary]) => { - if (!!summary!.isAllView) { - return this.registriesService.getAllScannedImagesSummary().pipe( - map(allScannedImagesSummary => ({ - selectedRegistry: summary!, - isAllView: true, - isFedRepo: false, - allScannedImagesSummary, - })), - finalize(() => { - if (this.refreshingDetailsSubject$.value) { - this.refreshingDetailsSubject$.next(false); - } - }) - ); - } else if (!!summary!.isFedRepo) { - return this.registriesService - .getFederatedRepoScanRegistrySummary(summary!.name) - .pipe( - map(repositories => ({ - selectedRegistry: summary!, - isAllView: false, - isFedRepo: true, - repositories, - })), - finalize(() => { - if (this.refreshingDetailsSubject$.value) { - this.refreshingDetailsSubject$.next(false); - } - }) - ); - } else { - return this.registriesService.getRepo(summary!.name).pipe( + ]).pipe( + switchMap(([summary]) => { + if (!!summary!.isAllView) { + return this.registriesService.getAllScannedImagesSummary().pipe( + map(allScannedImagesSummary => ({ + selectedRegistry: summary!, + isAllView: true, + isFedRepo: false, + allScannedImagesSummary, + })), + finalize(() => { + if (this.refreshingDetailsSubject$.value) { + this.refreshingDetailsSubject$.next(false); + } + }) + ); + } else if (!!summary!.isFedRepo) { + return this.registriesService + .getFederatedRepoScanRegistrySummary(summary!.name) + .pipe( map(repositories => ({ selectedRegistry: summary!, isAllView: false, + isFedRepo: true, repositories, })), finalize(() => { @@ -87,9 +80,22 @@ export class RegistriesCommunicationService { } }) ); - } - }) - ) as Observable; + } else { + return this.registriesService.getRepo(summary!.name).pipe( + map(repositories => ({ + selectedRegistry: summary!, + isAllView: false, + repositories, + })), + finalize(() => { + if (this.refreshingDetailsSubject$.value) { + this.refreshingDetailsSubject$.next(false); + } + }) + ); + } + }) + ) as Observable; private startingScanSubject$ = new BehaviorSubject(false); startingScan$ = this.startingScanSubject$.asObservable(); @@ -141,11 +147,19 @@ export class RegistriesCommunicationService { } } - refreshUntilFound(expectedName: string, maxAttempts = 20, intervalMs = 500): void { + refreshUntilFound( + expectedName: string, + maxAttempts = 20, + intervalMs = 500 + ): void { timer(0, intervalMs) .pipe( take(maxAttempts), - switchMap(() => this.registriesService.getRegistries().pipe(catchError(() => of({ summarys: [] })))), + switchMap(() => + this.registriesService + .getRegistries() + .pipe(catchError(() => of({ summarys: [] }))) + ), tap(({ summarys }) => { const found = summarys.some(s => s.name === expectedName); if (found) { @@ -153,7 +167,10 @@ export class RegistriesCommunicationService { this.refreshRegistriesSubject$.next(true); } }), - takeWhile(({ summarys }) => !summarys.some(s => s.name === expectedName), true) + takeWhile( + ({ summarys }) => !summarys.some(s => s.name === expectedName), + true + ) ) .subscribe(); } diff --git a/admin/webapp/websrc/app/routes/registries/registries-table/add-registry-dialog/add-registry-dialog.component.ts b/admin/webapp/websrc/app/routes/registries/registries-table/add-registry-dialog/add-registry-dialog.component.ts index 8f424dade..912bb264f 100644 --- a/admin/webapp/websrc/app/routes/registries/registries-table/add-registry-dialog/add-registry-dialog.component.ts +++ b/admin/webapp/websrc/app/routes/registries/registries-table/add-registry-dialog/add-registry-dialog.component.ts @@ -175,7 +175,9 @@ export class AddRegistryDialogComponent implements OnInit, AfterViewChecked { .subscribe({ complete: () => { this.dialogRef.close(true); - this.registriesCommunicationService.refreshUntilFound(body.config.name); + this.registriesCommunicationService.refreshUntilFound( + body.config.name + ); }, error: ({ error }: { error: ErrorResponse }) => { this.notificationService.open( diff --git a/admin/webapp/websrc/app/routes/registries/registries-table/registries-table.component.ts b/admin/webapp/websrc/app/routes/registries/registries-table/registries-table.component.ts index c16378ed7..5ca54b1dc 100644 --- a/admin/webapp/websrc/app/routes/registries/registries-table/registries-table.component.ts +++ b/admin/webapp/websrc/app/routes/registries/registries-table/registries-table.component.ts @@ -239,12 +239,16 @@ export class RegistriesTableComponent implements OnInit, OnChanges { onSelectionChanged(params: GridReadyEvent): void { if (params.api.getSelectedNodes().length > 0) { const newSelectedRegistry = params.api.getSelectedNodes()[0].data; - const currentSelectedRegistry = this.registriesCommunicationService.selectedRegistry; + const currentSelectedRegistry = + this.registriesCommunicationService.selectedRegistry; this.registriesCommunicationService.setSelectedRegistry( newSelectedRegistry ); - if(!currentSelectedRegistry || currentSelectedRegistry.name !== newSelectedRegistry.name) { + if ( + !currentSelectedRegistry || + currentSelectedRegistry.name !== newSelectedRegistry.name + ) { this.registriesCommunicationService.detailFilter.setValue(''); } } @@ -419,7 +423,11 @@ export class RegistriesTableComponent implements OnInit, OnChanges { }); dialog.afterClosed().subscribe(change => { if (change) { - if (isEdit && this.gridApi && this.gridApi.getSelectedNodes().length > 0) { + if ( + isEdit && + this.gridApi && + this.gridApi.getSelectedNodes().length > 0 + ) { this.registriesCommunicationService.setSelectedRegistry( this.gridApi.getSelectedNodes()[0].data ); diff --git a/admin/webapp/websrc/app/routes/registries/registry-details/registry-details-table/registry-details-dialog/registry-details-dialog.component.html b/admin/webapp/websrc/app/routes/registries/registry-details/registry-details-table/registry-details-dialog/registry-details-dialog.component.html index f662bfc36..042962f0c 100644 --- a/admin/webapp/websrc/app/routes/registries/registry-details/registry-details-table/registry-details-dialog/registry-details-dialog.component.html +++ b/admin/webapp/websrc/app/routes/registries/registry-details/registry-details-table/registry-details-dialog/registry-details-dialog.component.html @@ -1,10 +1,11 @@
-

+

{{ registryTitle }}

diff --git a/admin/webapp/websrc/app/routes/settings/configuration/config-form/config-form.component.html b/admin/webapp/websrc/app/routes/settings/configuration/config-form/config-form.component.html index ca2d7e0b6..90dc236ab 100644 --- a/admin/webapp/websrc/app/routes/settings/configuration/config-form/config-form.component.html +++ b/admin/webapp/websrc/app/routes/settings/configuration/config-form/config-form.component.html @@ -12,7 +12,12 @@ *appDisplayControl="'write_config'" [appearance]="'mat-raised-button'" [color]="'primary'" - [disabled]="hasPendingCertificateEdit || !configForm.valid || (!configForm.dirty && !hasWebhookValueChanged) || submittingForm" + [disabled]=" + hasPendingCertificateEdit || + !configForm.valid || + (!configForm.dirty && !hasWebhookValueChanged) || + submittingForm + " [loading]="submittingForm" [text]="'setting.SUBMIT' | translate" [type]="'submit'"> diff --git a/admin/webapp/websrc/app/routes/settings/configuration/config-form/config-form.component.ts b/admin/webapp/websrc/app/routes/settings/configuration/config-form/config-form.component.ts index 83d2fc20b..ff0d71097 100644 --- a/admin/webapp/websrc/app/routes/settings/configuration/config-form/config-form.component.ts +++ b/admin/webapp/websrc/app/routes/settings/configuration/config-form/config-form.component.ts @@ -82,8 +82,7 @@ export class ConfigFormComponent implements OnInit, OnDestroy { private updatePendingCertificateEdit(): void { const formValue = this.configForm?.getRawValue() as any; - const certs = - formValue?.tls?.cacerts ?? this._config?.tls?.cacerts ?? []; + const certs = formValue?.tls?.cacerts ?? this._config?.tls?.cacerts ?? []; this.hasPendingCertificateEdit = Array.isArray(certs) && certs.some(c => c?.isEditable === true); } @@ -92,7 +91,10 @@ export class ConfigFormComponent implements OnInit, OnDestroy { const formValue = this.configForm?.getRawValue() as any; const currentWebhooks = cloneDeep(formValue?.webhooks ?? []); - if (!Array.isArray(currentWebhooks) || !Array.isArray(this.originalWebhooks)) { + if ( + !Array.isArray(currentWebhooks) || + !Array.isArray(this.originalWebhooks) + ) { this.hasWebhookValueChanged = false; return; } diff --git a/admin/webapp/websrc/app/routes/settings/saml/saml-form/saml-form.component.html b/admin/webapp/websrc/app/routes/settings/saml/saml-form/saml-form.component.html index d037b4549..195267f06 100644 --- a/admin/webapp/websrc/app/routes/settings/saml/saml-form/saml-form.component.html +++ b/admin/webapp/websrc/app/routes/settings/saml/saml-form/saml-form.component.html @@ -98,7 +98,9 @@ class="mb-4" mat-icon-button type="button"> - {{ sloCertVisible ? 'visibility' : 'visibility_off' }} + {{ + sloCertVisible ? 'visibility' : 'visibility_off' + }}
@@ -125,7 +127,9 @@ class="mb-4" mat-icon-button type="button"> - {{ sloKeyVisible ? 'visibility' : 'visibility_off' }} + {{ + sloKeyVisible ? 'visibility' : 'visibility_off' + }}
@@ -152,7 +156,9 @@ class="mb-4" mat-icon-button type="button"> - {{ x509CertVisible[i] ? 'visibility' : 'visibility_off' }} + {{ + x509CertVisible[i] ? 'visibility' : 'visibility_off' + }} @@ -173,7 +179,9 @@ class="mb-4" mat-icon-button type="button"> - {{ x509CertVisible[i] ? 'visibility' : 'visibility_off' }} + {{ + x509CertVisible[i] ? 'visibility' : 'visibility_off' + }}