diff --git a/apps/lfx-one/src/app/modules/committees/components/committee-meetings/committee-meetings.component.html b/apps/lfx-one/src/app/modules/committees/components/committee-meetings/committee-meetings.component.html index 99552a7f6..4ed5d5fcf 100644 --- a/apps/lfx-one/src/app/modules/committees/components/committee-meetings/committee-meetings.component.html +++ b/apps/lfx-one/src/app/modules/committees/components/committee-meetings/committee-meetings.component.html @@ -95,7 +95,7 @@

Meetings

size="small" [class]="isCalendarView() ? 'md:ml-auto' : ''" [routerLink]="['/meetings', 'create']" - [queryParams]="{ committee_uid: committee().uid }" + [queryParams]="createMeetingQueryParams()" data-testid="committee-meetings-create-btn"> } diff --git a/apps/lfx-one/src/app/modules/committees/components/committee-meetings/committee-meetings.component.ts b/apps/lfx-one/src/app/modules/committees/components/committee-meetings/committee-meetings.component.ts index c1e68c3fc..09eeaf8e3 100644 --- a/apps/lfx-one/src/app/modules/committees/components/committee-meetings/committee-meetings.component.ts +++ b/apps/lfx-one/src/app/modules/committees/components/committee-meetings/committee-meetings.component.ts @@ -67,6 +67,10 @@ export class CommitteeMeetingsComponent { public isListView = computed(() => this.viewMode() === 'list'); public isCalendarView = computed(() => this.viewMode() === 'calendar'); + // Query params for the create-meeting route. Includes project slug so writerGuard + // can resolve write access — without it the guard redirects to the lens overview. + public createMeetingQueryParams: Signal> = this.initCreateMeetingQueryParams(); + // Form for search + filter controls (bound in template) public searchForm = new FormGroup({ search: new FormControl(''), @@ -171,6 +175,17 @@ export class CommitteeMeetingsComponent { // Private initializer functions + private initCreateMeetingQueryParams(): Signal> { + return computed(() => { + const committee = this.committee(); + const params: Record = { committee_uid: committee.uid }; + if (committee.project_slug) { + params['project'] = committee.project_slug; + } + return params; + }); + } + private initUpcomingMeetings(): Signal { return toSignal( toObservable(this.committee).pipe(