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),
},
{