From 57048abb5769d2c9390de1186175cd33a26c8699 Mon Sep 17 00:00:00 2001 From: Asitha de Silva Date: Tue, 18 Nov 2025 15:40:09 -0800 Subject: [PATCH] refactor(meetings): simplify header and fix past meeting access checks LFXV2-763 - Simplified header component by removing search, persona selector, and user profile display - Added header component to meeting join page for consistent navigation - Added type safety to getMeetings() method with 'meeting' | 'past_meeting' union type - Fixed access check service to properly handle past meeting resource type - Added 'past_meeting' to AccessCheckResourceType in shared interfaces Generated with [Claude Code](https://claude.ai/code) Signed-off-by: Asitha de Silva --- .../meeting-join/meeting-join.component.html | 1 + .../meeting-join/meeting-join.component.ts | 2 + .../components/header/header.component.html | 79 +------------------ .../src/server/services/meeting.service.ts | 9 ++- .../src/interfaces/access-check.interface.ts | 2 +- 5 files changed, 12 insertions(+), 81 deletions(-) diff --git a/apps/lfx-one/src/app/modules/meetings/meeting-join/meeting-join.component.html b/apps/lfx-one/src/app/modules/meetings/meeting-join/meeting-join.component.html index af2e76d9..278ceea9 100644 --- a/apps/lfx-one/src/app/modules/meetings/meeting-join/meeting-join.component.html +++ b/apps/lfx-one/src/app/modules/meetings/meeting-join/meeting-join.component.html @@ -1,5 +1,6 @@ + @if (meeting()) {
diff --git a/apps/lfx-one/src/app/modules/meetings/meeting-join/meeting-join.component.ts b/apps/lfx-one/src/app/modules/meetings/meeting-join/meeting-join.component.ts index df0047c1..24dc3006 100644 --- a/apps/lfx-one/src/app/modules/meetings/meeting-join/meeting-join.component.ts +++ b/apps/lfx-one/src/app/modules/meetings/meeting-join/meeting-join.component.ts @@ -8,6 +8,7 @@ import { Component, computed, inject, signal, Signal, WritableSignal } from '@an import { toObservable, toSignal } from '@angular/core/rxjs-interop'; import { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms'; import { ActivatedRoute, Router } from '@angular/router'; +import { HeaderComponent } from '@app/shared/components/header/header.component'; import { LinkifyPipe } from '@app/shared/pipes/linkify.pipe'; import { RecurrenceSummaryPipe } from '@app/shared/pipes/recurrence-summary.pipe'; import { ButtonComponent } from '@components/button/button.component'; @@ -48,6 +49,7 @@ import { catchError, combineLatest, debounceTime, filter, map, Observable, of, s LinkifyPipe, FileTypeIconPipe, ExpandableTextComponent, + HeaderComponent, ], providers: [], templateUrl: './meeting-join.component.html', diff --git a/apps/lfx-one/src/app/shared/components/header/header.component.html b/apps/lfx-one/src/app/shared/components/header/header.component.html index 723ca2fd..6e52d6eb 100644 --- a/apps/lfx-one/src/app/shared/components/header/header.component.html +++ b/apps/lfx-one/src/app/shared/components/header/header.component.html @@ -2,7 +2,7 @@
-
+
@@ -19,31 +19,11 @@ - - @if (userService.authenticated()) { - - }
-
-
- - - -
-
-
-
-
- }
diff --git a/apps/lfx-one/src/server/services/meeting.service.ts b/apps/lfx-one/src/server/services/meeting.service.ts index 23315923..475609f5 100644 --- a/apps/lfx-one/src/server/services/meeting.service.ts +++ b/apps/lfx-one/src/server/services/meeting.service.ts @@ -51,7 +51,12 @@ export class MeetingService { /** * Fetches all meetings based on query parameters */ - public async getMeetings(req: Request, query: Record = {}, meetingType: string = 'meeting', access: boolean = true): Promise { + public async getMeetings( + req: Request, + query: Record = {}, + meetingType: 'meeting' | 'past_meeting' = 'meeting', + access: boolean = true + ): Promise { const params = { ...query, type: meetingType, @@ -71,7 +76,7 @@ export class MeetingService { if (access) { // Add writer access field to all meetings - return await this.accessCheckService.addAccessToResources(req, meetings, 'meeting', 'organizer'); + return await this.accessCheckService.addAccessToResources(req, meetings, meetingType, 'organizer'); } return meetings; diff --git a/packages/shared/src/interfaces/access-check.interface.ts b/packages/shared/src/interfaces/access-check.interface.ts index f0161712..747d2561 100644 --- a/packages/shared/src/interfaces/access-check.interface.ts +++ b/packages/shared/src/interfaces/access-check.interface.ts @@ -32,5 +32,5 @@ export interface AccessCheckApiResponse { /** * Resource types */ -export type AccessCheckResourceType = 'project' | 'meeting' | 'committee'; +export type AccessCheckResourceType = 'project' | 'meeting' | 'committee' | 'past_meeting'; export type AccessCheckAccessType = 'writer' | 'viewer' | 'organizer';