# Promotion and Approval Queue UI ## Module Web ## Status IMPLEMENTED ## Description Promotion request form with gate preview, approval queue with filtering, approval detail with gate results display, approve/reject with comments, and batch approval support. ## Implementation Details - **Feature directory**: `src/Web/StellaOps.Web/src/app/features/approvals/` - **Routes**: `approvals.routes.ts` - **Components**: - `approval-detail-page` (`src/Web/StellaOps.Web/src/app/features/approvals/approval-detail-page.component.ts`) - `approval-detail` (`src/Web/StellaOps.Web/src/app/features/approvals/approval-detail.component.ts`) - `approvals-inbox-page` (`src/Web/StellaOps.Web/src/app/features/approvals/approvals-inbox-page.component.ts`) - `approvals-inbox` (`src/Web/StellaOps.Web/src/app/features/approvals/approvals-inbox.component.ts`) - `request-exception-modal` (`src/Web/StellaOps.Web/src/app/features/approvals/modals/request-exception-modal.component.ts`) - **Source**: SPRINT_20260110_111_005_FE_promotion_approval_ui.md ## E2E Test Plan - **Setup**: - [ ] Log in with a user that has appropriate permissions - [ ] Navigate to `/approvals` - [ ] Ensure test data exists (scanned artifacts, SBOM data, or seed data as needed) - **Core verification**: - [ ] Verify the list/table loads with paginated data - [ ] Verify sorting and filtering controls work correctly - [ ] Verify clicking a row navigates to the detail view - **Edge cases**: - [ ] Verify graceful handling when backend API is unavailable (error state) - [ ] Verify responsive layout at different viewport sizes - [ ] Verify accessibility (keyboard navigation, screen reader labels, ARIA attributes)