diff --git a/src/Web/StellaOps.Web/src/app/features/release-orchestrator/releases/release-list/release-list.component.ts b/src/Web/StellaOps.Web/src/app/features/release-orchestrator/releases/release-list/release-list.component.ts index 04b5f1963..d3bb43af0 100644 --- a/src/Web/StellaOps.Web/src/app/features/release-orchestrator/releases/release-list/release-list.component.ts +++ b/src/Web/StellaOps.Web/src/app/features/release-orchestrator/releases/release-list/release-list.component.ts @@ -855,7 +855,9 @@ export class ReleaseListComponent implements OnInit, OnDestroy { } ngOnDestroy(): void { - this.pageAction.clear(); + if (!this.embedded) { + this.pageAction.clear(); + } } onSearchInput(event: Event): void { diff --git a/src/Web/StellaOps.Web/src/app/features/releases/releases-activity.component.ts b/src/Web/StellaOps.Web/src/app/features/releases/releases-activity.component.ts index 5459e70b5..6026d28af 100644 --- a/src/Web/StellaOps.Web/src/app/features/releases/releases-activity.component.ts +++ b/src/Web/StellaOps.Web/src/app/features/releases/releases-activity.component.ts @@ -787,7 +787,10 @@ export class ReleasesActivityComponent implements OnInit, OnDestroy { if (!apr) return; this.approvalApi.approve(apr.id, 'Approved from deployments page').pipe(take(1)).subscribe({ next: () => { this.activeApr.set(null); this.loadPendingApprovals(); }, - error: () => this.activeApr.set(null), + error: (err) => { + this.activeApr.set(null); + this.error.set(`Approve failed: ${err?.message || 'API unavailable'}`); + }, }); } onReject(apr: ApprovalRequest): void { @@ -800,7 +803,11 @@ export class ReleasesActivityComponent implements OnInit, OnDestroy { if (!apr) return; this.approvalApi.reject(apr.id, this.rejectReason || 'Rejected from deployments page').pipe(take(1)).subscribe({ next: () => { this.showRejectDlg.set(false); this.activeApr.set(null); this.loadPendingApprovals(); }, - error: () => { this.showRejectDlg.set(false); this.activeApr.set(null); }, + error: (err) => { + this.showRejectDlg.set(false); + this.activeApr.set(null); + this.error.set(`Reject failed: ${err?.message || 'API unavailable'}`); + }, }); } cancelReject(): void { this.showRejectDlg.set(false); this.activeApr.set(null); } diff --git a/src/Web/StellaOps.Web/src/app/features/releases/releases-unified-page.component.ts b/src/Web/StellaOps.Web/src/app/features/releases/releases-unified-page.component.ts index e129eae38..5bc171b70 100644 --- a/src/Web/StellaOps.Web/src/app/features/releases/releases-unified-page.component.ts +++ b/src/Web/StellaOps.Web/src/app/features/releases/releases-unified-page.component.ts @@ -23,7 +23,7 @@ import { PlatformContextStore } from '../../core/context/platform-context.store' import type { ReleaseWorkflowStatus } from '../../core/api/release-management.models'; const RELEASE_TABS: readonly StellaPageTab[] = [ - { id: 'pipeline', label: 'Pipeline', icon: 'M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z' }, + { id: 'releases', label: 'Releases', icon: 'M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z' }, { id: 'versions', label: 'Versions', icon: 'M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5' }, ]; @@ -78,7 +78,7 @@ export interface PipelineRelease { - @if (activeTab() === 'pipeline') { + @if (activeTab() === 'releases') {