feat(dashboard-filters): Enable "Select All" for dynamic search filters#37479
Conversation
Code Review Agent Run #34b145Actionable Suggestions - 0Review Details
Bito Usage GuideCommands Type the following command in the pull request comment and save the comment.
Refer to the documentation for additional commands. Configuration This repository uses Documentation & Help |
Thanks for catching this @msyavuz! You're absolutely right, I didn't consider the case where there are more than 1,000 rows. Currently, clicking "Select all" would only select the first 1,000 visible options, which is misleading.
What do you think? I'm leaning toward Option 1 for simplicity and to avoid confusion, but Option 2 would be more feature-complete. Happy to implement whichever approach the team prefers. |
Code Review Agent Run #397b14Actionable Suggestions - 0Additional Suggestions - 3
Review Details
Bito Usage GuideCommands Type the following command in the pull request comment and save the comment.
Refer to the documentation for additional commands. Configuration This repository uses Documentation & Help |
|
@ramiroaquinoromero I think option one is more aligned with the already existing the behaviour. Let's go with that. |
✅ Deploy Preview for superset-docs-preview ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
There was a problem hiding this comment.
Code Review Agent Run #098c25
Actionable Suggestions - 2
-
superset-frontend/src/filters/components/Select/SelectFilterPlugin.test.tsx - 2
- Insufficient test assertions · Line 709-712
- Insufficient test assertions · Line 714-722
Additional Suggestions - 2
-
superset-frontend/src/filters/components/Select/SelectFilterPlugin.tsx - 1
-
Hardcoded value in condition · Line 516-518The condition hardcodes 1000 but should use formData.rowLimit, as the row limit can be configured differently, potentially enabling 'select all' when data is truncated or disabling it unnecessarily.
Code suggestion
@@ -517,1 +517,1 @@ - multiSelect && !(searchAllOptions && data.length >= 1000) + multiSelect && !(searchAllOptions && data.length >= formData.rowLimit)
-
-
superset-frontend/src/filters/components/Select/SelectFilterPlugin.test.tsx - 1
-
Avoid `any` type · Line 80-80Using `any` type in the test helper violates the guideline to avoid `any` types in TypeScript.
Code suggestion
@@ -80,1 +80,1 @@ - const getWrapper = (props: any = {}) => { + const getWrapper = (props: Partial<{ searchAllOptions: boolean; multiSelect: boolean; queriesData: any[] } & Record<string, any>> = {}) => {
-
Review Details
-
Files reviewed - 2 · Commit Range:
cc0c988..1b6fcd1- superset-frontend/src/filters/components/Select/SelectFilterPlugin.test.tsx
- superset-frontend/src/filters/components/Select/SelectFilterPlugin.tsx
-
Files skipped - 0
-
Tools
- Whispers (Secret Scanner) - ✔︎ Successful
- Detect-secrets (Secret Scanner) - ✔︎ Successful
Bito Usage Guide
Commands
Type the following command in the pull request comment and save the comment.
-
/review- Manually triggers a full AI review. -
/pause- Pauses automatic reviews on this pull request. -
/resume- Resumes automatic reviews. -
/resolve- Marks all Bito-posted review comments as resolved. -
/abort- Cancels all in-progress reviews.
Refer to the documentation for additional commands.
Configuration
This repository uses Superset You can customize the agent settings here or contact your Bito workspace admin at evan@preset.io.
Documentation & Help
|
@msyavuz Please review it. |
Code Review Agent Run #8a5453Actionable Suggestions - 0Review Details
Bito Usage GuideCommands Type the following command in the pull request comment and save the comment.
Refer to the documentation for additional commands. Configuration This repository uses Documentation & Help |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #37479 +/- ##
===========================================
+ Coverage 0 66.67% +66.67%
===========================================
Files 0 671 +671
Lines 0 51579 +51579
Branches 0 5770 +5770
===========================================
+ Hits 0 34391 +34391
- Misses 0 15802 +15802
- Partials 0 1386 +1386
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
ad39e27 to
01656af
Compare
Code Review Agent Run #3d1f1bActionable Suggestions - 0Additional Suggestions - 1
Review Details
Bito Usage GuideCommands Type the following command in the pull request comment and save the comment.
Refer to the documentation for additional commands. Configuration This repository uses Documentation & Help |
|
@ramiroaquinoromero @msyavuz We tried to implement a similar feature in the past but there are many problems related to pagination, payload size, etc. Check #20143 for more context. |
|
@ramiroaquinoromero I think technical difficulties @michael-s-molina and @geido had in the past still apply here. Can you check out the pr Michael linked and test those cases? |
Sure. I am on it. |

SUMMARY
Enables the "Select All" button for dashboard native filters when "Dynamically search all filter values" is enabled.
The Change
Why This Works
The Select component already handles "Select All" intelligently:
This works the same way whether the filter uses dynamic search (backend filtering) or static search (frontend filtering). The component already had this logic - we just needed to stop disabling the button.
BEFORE/AFTER
BEFORE: No "Select All"/"Deselect All" buttons when "Dynamically search all filter values" enabled
select-all-for-dynamically-search-filter-before.mp4
AFTER: Buttons visible and functional for all multi-select filters
select-all-for-dynamically-search-filter-after.mp4
TESTING INSTRUCTIONS