diff --git a/src/Web/StellaOps.Web/src/app/features/evidence-export/export-center.component.ts b/src/Web/StellaOps.Web/src/app/features/evidence-export/export-center.component.ts index 803ef7b24..f0695b42c 100644 --- a/src/Web/StellaOps.Web/src/app/features/evidence-export/export-center.component.ts +++ b/src/Web/StellaOps.Web/src/app/features/evidence-export/export-center.component.ts @@ -2,6 +2,7 @@ import { ChangeDetectionStrategy, Component, + ViewChild, computed, inject, OnDestroy, @@ -22,6 +23,7 @@ import { StellaBundleExportButtonComponent } from './stella-bundle-export-button import { OperatorOnlyDirective } from '../../shared/directives/operator-only.directive'; import { DateFormatService } from '../../core/i18n/date-format.service'; import { StellaPageTabsComponent, StellaPageTab } from '../../shared/components/stella-page-tabs/stella-page-tabs.component'; +import { ConfirmDialogComponent } from '../../shared/components/confirm-dialog/confirm-dialog.component'; /** * Export Center Component (Sprint: SPRINT_20251229_016) * Manages export profiles and monitors export runs with SSE updates. @@ -33,7 +35,7 @@ const EXPORT_CENTER_TABS: StellaPageTab[] = [ @Component({ selector: 'app-export-center', - imports: [FormsModule, StellaBundleExportButtonComponent, OperatorOnlyDirective, StellaPageTabsComponent], + imports: [FormsModule, StellaBundleExportButtonComponent, OperatorOnlyDirective, StellaPageTabsComponent, ConfirmDialogComponent], template: `
} + `, styles: [` @@ -1021,10 +1028,19 @@ export class ExportCenterComponent implements OnInit, OnDestroy { this.closeModal(); } + readonly pendingDeleteProfile = signal(null); + @ViewChild('deleteConfirm') deleteConfirm!: ConfirmDialogComponent; + deleteProfile(profile: ExportProfile): void { - if (confirm(`Delete profile "${profile.name}"?`)) { - this.profiles.update(profiles => profiles.filter(p => p.id !== profile.id)); - } + this.pendingDeleteProfile.set(profile); + this.deleteConfirm.open(); + } + + executeDeleteProfile(): void { + const profile = this.pendingDeleteProfile(); + if (!profile) return; + this.profiles.update(profiles => profiles.filter(p => p.id !== profile.id)); + this.pendingDeleteProfile.set(null); } runProfile(profile: ExportProfile): void { diff --git a/src/Web/StellaOps.Web/src/app/routes/operations.routes.ts b/src/Web/StellaOps.Web/src/app/routes/operations.routes.ts index 38a0eaf22..33d776ed1 100644 --- a/src/Web/StellaOps.Web/src/app/routes/operations.routes.ts +++ b/src/Web/StellaOps.Web/src/app/routes/operations.routes.ts @@ -6,7 +6,7 @@ export const OPERATIONS_ROUTES: Routes = [ path: '', pathMatch: 'full', title: 'Operations', - data: { breadcrumb: 'Operations' }, + data: { breadcrumb: '' }, loadComponent: () => import('../features/platform/ops/platform-ops-overview-page.component').then( (m) => m.PlatformOpsOverviewPageComponent, diff --git a/src/Web/StellaOps.Web/src/app/routes/ops.routes.ts b/src/Web/StellaOps.Web/src/app/routes/ops.routes.ts index 8f71d8088..b1e72d326 100644 --- a/src/Web/StellaOps.Web/src/app/routes/ops.routes.ts +++ b/src/Web/StellaOps.Web/src/app/routes/ops.routes.ts @@ -10,7 +10,7 @@ export const OPS_ROUTES: Routes = [ { path: 'operations', title: 'Operations', - data: { breadcrumb: 'Operations' }, + data: { breadcrumb: '' }, loadChildren: () => import('./operations.routes').then((m) => m.OPERATIONS_ROUTES), }, {