Skip to content

[APP-524] feat: advanced filter setup#3197

Open
mcmcgrath13 wants to merge 16 commits into
mainfrom
mcm/adv-filt-ui
Open

[APP-524] feat: advanced filter setup#3197
mcmcgrath13 wants to merge 16 commits into
mainfrom
mcm/adv-filt-ui

Conversation

@mcmcgrath13
Copy link
Copy Markdown
Contributor

@mcmcgrath13 mcmcgrath13 commented May 4, 2026

Description

Wire up the query builder to use for the advanced filter builder

Notes:

  • Updated the advanced filter configuration / request on the API side as per the design (plus ID fields from learnings of implementation - doc updated)
  • Made ReportColumn a bit tighter and better matching of the reality of what's required for the app to function (which doesn't match db required-ness 😭 )
  • Fixed the overflow styling on the collapsible cards as it was causing some very unfortunate clipping
  • The Accessibility of the base query filter components is not up to par, but when we swap in our own components, it should become accessible (and those checks turned on)
  • The date format of the base date picker is ISO and not mm/dd/yyyy as we have in the DB - when we swap to our datepicker, this should be fixed
  • Went with the dnd-kit drag and drop adapter since it looks like it's the closest to what we need for keyboard interactions to work (in follow on ticket)
  • The react form hook was interpretting the uids as array indices, so added the id_ prefix so they'd be treated as object keys instead (the ids can be pretty big and don't need to create that large of an array)

Questions:

  • For the field on the config/request, it's currently the columnUid, but in practice we have to translate this to the column's name for the query builder to work. Given we need to translate, should we a) have the field just be the column name? (makes validation kinda weaker perhaps? though maybe not as we still know what column names are valid in the context of the report/filter)

Tickets

Checklist before requesting a review

  • PR focuses on a single story
  • Code has been fully tested to meet acceptance criteria
  • PR is reasonably small and reviewable (Generally less than 10 files and 500 changed lines)
  • All new functions/classes/components reasonably small
  • Functions/classes/components focused on one responsibility
  • Code easy to understand and modify (clarity over concise/clever)
  • PRs containing TypeScript follow the Do's and Don'ts
  • PR does not contain hardcoded values (Uses constants)
  • All code is covered by unit or feature tests

Comment on lines +9 to +11
@Schema(requiredMode = Schema.RequiredMode.REQUIRED) String name,
@Schema(requiredMode = Schema.RequiredMode.REQUIRED) String title,
@Schema(requiredMode = Schema.RequiredMode.REQUIRED) String sourceTypeCode,
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

these are all required in the UI and are always populated in practice, without them, things don't work

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.

sugg, nb: Might be worth an inline comment so future folks know why it's there

.collapsible {
@include expanded('height');
overflow: hidden;
overflow: visible;
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

this fixes the weird card clipping pop up date pickers and multi-select drop downs

columnSourceTypeCode?: string;
maxLength?: number;
name: string;
title: string;
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

simplify names for the API since we already know we're in the context of a column

@mcmcgrath13 mcmcgrath13 changed the title [APP-524] feat: wip - advanced filter setup [APP-524] feat: advanced filter setup May 6, 2026
@mcmcgrath13 mcmcgrath13 marked this pull request as ready for review May 6, 2026 13:49
@mcmcgrath13 mcmcgrath13 requested a review from a team as a code owner May 6, 2026 13:49
@mcmcgrath13 mcmcgrath13 requested review from brick-green and krista-skylight and removed request for a team May 6, 2026 13:49
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.

Super minor sugg, nb: maybe move the constants to another file for organization since this module is a bit long? Not super opinionated on this though.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I kept flip flopping on whether to split or not. It all felt a bit arbitrary, so I left with comment sectioning, but I feel 🥴 🤷 about it

Copy link
Copy Markdown
Contributor

@krista-skylight krista-skylight left a comment

Choose a reason for hiding this comment

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

Just left a couple minor suggestions! To answer your question, I don't think doing translations seems that cumbersome so if I had to pick I think staying with columnUid is fine.

@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud Bot commented May 7, 2026

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants