Skip to content

fix(committees): add project slug to create meeting query params (LFXV2-2223)#951

Merged
audigregorie merged 2 commits into
mainfrom
feat/lfxv2-2223-mtg-create-slug
Jun 15, 2026
Merged

fix(committees): add project slug to create meeting query params (LFXV2-2223)#951
audigregorie merged 2 commits into
mainfrom
feat/lfxv2-2223-mtg-create-slug

Conversation

@audigregorie

@audigregorie audigregorie commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

Summary

The committee meetings page now passes the project slug alongside the committee UID when navigating to create a meeting. Without the project parameter, writerGuard could not resolve write access and redirected users back to the lens overview instead of opening the create flow.

Copilot AI review requested due to automatic review settings June 15, 2026 19:34
@audigregorie audigregorie requested a review from a team as a code owner June 15, 2026 19:34
@coderabbitai

coderabbitai Bot commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 3678dc8b-97e2-49d5-b882-18bbb2f0c792

📥 Commits

Reviewing files that changed from the base of the PR and between ff982e1 and 57324f8.

📒 Files selected for processing (2)
  • apps/lfx-one/src/app/modules/committees/components/committee-meetings/committee-meetings.component.html
  • apps/lfx-one/src/app/modules/committees/components/committee-meetings/committee-meetings.component.ts
🚧 Files skipped from review as they are similar to previous changes (2)
  • apps/lfx-one/src/app/modules/committees/components/committee-meetings/committee-meetings.component.html
  • apps/lfx-one/src/app/modules/committees/components/committee-meetings/committee-meetings.component.ts

Walkthrough

A new computed signal createMeetingQueryParams is added to the committee-meetings component. It is built by initCreateMeetingQueryParams(), which reads the current committee and produces { committee_uid } plus an optional { project: project_slug }. The template's Schedule Meeting button queryParams binding is updated to call this signal instead of inlining committee().uid.

Changes

Create Meeting Query Params Signal

Layer / File(s) Summary
Signal computation and component wiring
...committee-meetings.component.ts, ...committee-meetings.component.html
initCreateMeetingQueryParams() returns a computed signal containing committee_uid and an optional project field sourced from project_slug. The result is exposed as the public createMeetingQueryParams signal, and the template's Schedule Meeting router link queryParams binding is updated to invoke it.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly describes the main change: adding project slug to create meeting query params, directly addressing the core fix in both modified files.
Description check ✅ Passed The description accurately explains the problem (writerGuard failing without project parameter) and the solution (passing project slug alongside committee UID), directly relating to the changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/lfxv2-2223-mtg-create-slug

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

ESLint install failed. For unrecoverable errors, disable the tool in CodeRabbit configuration.


Comment @coderabbitai help to get the list of available commands and usage tips.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes committee → meeting creation navigation by ensuring the /meetings/create route receives the active project slug in query params, allowing writerGuard to correctly resolve write access for the target project context.

Changes:

  • Added a computed createMeetingQueryParams signal that includes committee_uid and, when available, project=<project_slug>.
  • Updated the “Schedule Meeting” button to use the new computed query params instead of an inline object.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
apps/lfx-one/src/app/modules/committees/components/committee-meetings/committee-meetings.component.ts Introduces a computed query-param builder that adds project (slug) when available.
apps/lfx-one/src/app/modules/committees/components/committee-meetings/committee-meetings.component.html Switches the create button to bind query params from the new computed signal.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Include project slug in create-meeting query params so writerGuard can
resolve write access instead of redirecting to the lens overview.

Signed-off-by: Audi Young <audi.mycloud@gmail.com>
@audigregorie audigregorie force-pushed the feat/lfxv2-2223-mtg-create-slug branch from ff982e1 to 57324f8 Compare June 15, 2026 19:38
@github-actions

github-actions Bot commented Jun 15, 2026

Copy link
Copy Markdown

🚀 Deployment Status

Your branch has been deployed to: https://ui-pr-951.dev.v2.cluster.linuxfound.info

Deployment Details:

  • Environment: Development
  • Namespace: ui-pr-951
  • ArgoCD App: ui-pr-951

The deployment will be automatically removed when this PR is closed.

@luismoriguerra luismoriguerra left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@dealako dealako left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@audigregorie — clean, well-scoped fix. 👍

Overall impression

This corrects a real navigation bug: writerGuard on /meetings/create resolves write access from the ?project= slug (falling back to active context), so without the slug the guard couldn't resolve the target project and bounced users to the lens overview. Passing committee.project_slug alongside committee_uid closes that gap. The implementation follows the file's existing initX() computed-signal pattern, the project_slug access is correctly guarded as optional (it's string | undefined on the Committee interface), and the inline comment explains the why rather than the what. Param name project matches what writerGuard reads. No correctness, security, performance, or privacy concerns.

Issue count

  • 🔴 Blocking: 0
  • 🟡 Minor: 0
  • ⚪ Nit: 1 — no *.spec.ts exists for this component, so the new branch (slug present vs. absent) is untested. Pre-existing gap, not introduced here; worth a follow-up if this area grows.

Bot / prior review reconciliation

  • Copilot reviewed both files and generated no comments — consistent with my findings.
  • @luismoriguerra approved (LGTM). Agreed.
  • No CodeRabbit / Cursor Bot comments present.

Verification

  • Committee.project_slug confirmed optional (committee.interface.ts:279) — the if (committee.project_slug) guard is correct.
  • writerGuard reads route.queryParamMap.get('project') first (writer.guard.ts), so the supplied slug is authoritative for the navigation target.
  • /meetings/create applies [authGuard, writerGuard] (meetings.routes.ts:18) — the param is actually consumed.
  • committee is input.required<Committee>(), so committee.uid access is null-safe.

Decision

Approved

@audigregorie audigregorie merged commit c7bda39 into main Jun 15, 2026
11 checks passed
@audigregorie audigregorie deleted the feat/lfxv2-2223-mtg-create-slug branch June 15, 2026 21:30
@github-actions

Copy link
Copy Markdown

🧹 Deployment Removed

The deployment for PR #951 has been removed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants