Skip to content

fix: Group-by not using custom aggregation type for single-series graph#3159

Merged
mtrezza merged 4 commits intoparse-community:alphafrom
mtrezza:fix/graph-group-by
Jan 28, 2026
Merged

fix: Group-by not using custom aggregation type for single-series graph#3159
mtrezza merged 4 commits intoparse-community:alphafrom
mtrezza:fix/graph-group-by

Conversation

@mtrezza
Copy link
Member

@mtrezza mtrezza commented Jan 28, 2026

Pull Request

Summary by CodeRabbit

  • Improvements
    • Chart labels are now consistently prefixed with the series or calculation name across pie, bar, and line charts (e.g., "SeriesName (Category)"), including calculated values and grouped keys.
    • Series and calculation titles now have parentheses removed when entered to keep labels clean.
  • Tests
    • Label expectations updated to reflect the new consistent prefixing across chart types.

✏️ Tip: You can customize this high-level summary in your review settings.

@parse-github-assistant
Copy link

parse-github-assistant bot commented Jan 28, 2026

🚀 Thanks for opening this pull request!

@mtrezza mtrezza changed the title fix: Group by in graphs not using custom aggregation type for single-series graphs fix: Group by in graphs not using custom aggregation type for single-series graph Jan 28, 2026
@mtrezza mtrezza changed the title fix: Group by in graphs not using custom aggregation type for single-series graph fix: Group by not using custom aggregation type for single-series graph Jan 28, 2026
@mtrezza mtrezza changed the title fix: Group by not using custom aggregation type for single-series graph fix: Group-by not using custom aggregation type for single-series graph Jan 28, 2026
@parseplatformorg
Copy link
Contributor

parseplatformorg commented Jan 28, 2026

Snyk checks have passed. No issues have been found so far.

Status Scanner Critical High Medium Low Total (0)
Open Source Security 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

@mtrezza
Copy link
Member Author

mtrezza commented Jan 28, 2026

@coderabbitai review

@coderabbitai
Copy link

coderabbitai bot commented Jan 28, 2026

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai
Copy link

coderabbitai bot commented Jan 28, 2026

📝 Walkthrough

Walkthrough

Label construction in GraphDataUtils was changed to always prefix series and calculated-value labels with the series title plus the group/composite key (e.g., "SeriesLabel (groupKey)"). Tests and two UI inputs were adjusted to align with the new labeling/sanitization behavior. No exported APIs were changed.

Changes

Cohort / File(s) Summary
Labeling & grouping logic
src/lib/GraphDataUtils.js
Consolidated label construction to always format group-aware labels as SeriesLabel (groupKey) for pie and SeriesLabel (compositeKey) for bar/line, including calculated values. Replaced heuristic matching with explicit belongsToSeries / belongsToCalc booleans used in aggregation and registry steps.
Tests
src/lib/tests/GraphDataUtils.test.js
Updated expected label strings to reflect new prefixing when series titles are present (e.g., Value (A), Profit (B)); datasets unchanged.
UI input sanitization
src/dashboard/Data/Browser/GraphDialog.react.js
Series title and calculated-value name inputs now strip parentheses (replace(/[()]/g, '')) on change to prevent ( or ) in titles/names.

Sequence Diagram(s)

(omitted — changes are internal labeling/formatting logic within a single module, not a multi-component control flow)

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Description check ⚠️ Warning The pull request description is largely incomplete, missing the critical sections: Issue link, Approach explanation, and Tasks checklist that are required by the repository template. Complete the description by adding: (1) Issue link under 'Closes:', (2) Summary of changes/approach under 'Approach', (3) Checked tasks indicating what was added/updated.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main fix: changing group-by behavior for single-series graphs to use custom aggregation types, which aligns with the core labeling and grouping logic changes.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

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

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@src/lib/GraphDataUtils.js`:
- Around line 816-817: The calc group key is being set to just compositeKey so
calcValueOperatorMap lookup fails when there are only calculated values with
groupBy; update the key construction used in the calc grouping code to match the
series prefixing logic (i.e., prefix with seriesLabel like in the series
grouping block) so that groupKeyValue becomes `${seriesLabel}
(${compositeKey})`; modify the calc grouping branch that references
groupKeyValue/calcValueOperatorMap to use the same labeling as the series code
path (ensure references to groupKeyValue, seriesLabel, compositeKey, and
calcValueOperatorMap are updated consistently).

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@src/lib/GraphDataUtils.js`:
- Around line 974-977: The current belongsToSeries check (using groupKey ===
seriesLabel or groupKey.startsWith(`${seriesLabel} (`)) can produce false
positives when seriesLabel itself contains " ("; update the logic in the block
that defines belongsToSeries to use a regex match that escapes seriesLabel and
enforces the delimiter boundary (e.g., match either exact seriesLabel or
seriesLabel followed by a space and an opening parenthesis) so labels like "Foo
(bar)" don't incorrectly match "Foo (bar) (GroupValue)"; ensure you escape
special regex chars from seriesLabel before building the pattern and reference
the symbols groupKey, seriesLabel, and belongsToSeries when making the change.

coderabbitai[bot]
coderabbitai bot previously approved these changes Jan 28, 2026
@mtrezza mtrezza merged commit b8e8891 into parse-community:alpha Jan 28, 2026
12 checks passed
@mtrezza mtrezza deleted the fix/graph-group-by branch January 28, 2026 16:43
parseplatformorg pushed a commit that referenced this pull request Jan 28, 2026
# [8.3.0-alpha.36](8.3.0-alpha.35...8.3.0-alpha.36) (2026-01-28)

### Bug Fixes

* Group-by not using custom aggregation type for single-series graph ([#3159](#3159)) ([b8e8891](b8e8891))
@parseplatformorg
Copy link
Contributor

🎉 This change has been released in version 8.3.0-alpha.36

@parseplatformorg parseplatformorg added the state:released-alpha Released as alpha version label Jan 28, 2026
parseplatformorg pushed a commit that referenced this pull request Feb 5, 2026
# [8.3.0](8.2.0...8.3.0) (2026-02-05)

### Bug Fixes

* Canvas graph element does not apply data filter option ([#3128](#3128)) ([00ff1aa](00ff1aa))
* Canvas is not expandable or scrollable beyond current view size ([#3140](#3140)) ([cb73122](cb73122))
* Cloud Config parameter modal cannot scroll when content scales beyond visible area ([#3124](#3124)) ([bb6de31](bb6de31))
* Context menu of header cell in info panel does not group related records by class name ([#3122](#3122)) ([230c1e2](230c1e2))
* Context menu sub-menu in data browser vertically misaligned when scrolling in parent menu ([#3120](#3120)) ([2acaa27](2acaa27))
* Dashboard crashes when adding Parse Pointer JSON to array field in data browser ([#3125](#3125)) ([70bf081](70bf081))
* Data browser graph requires value field even when calculated value is defined ([#3127](#3127)) ([53e4f2b](53e4f2b))
* Graph in canvas ignores date filter constraints ([#3137](#3137)) ([6d8b8e6](6d8b8e6))
* Group-by not using custom aggregation type for single-series graph ([#3159](#3159)) ([b8e8891](b8e8891))
* Incorrect percentage and average calculation for calculated values in graphs ([#3152](#3152)) ([14b4d48](14b4d48))
* Info panel auto-scrolling not pausing during UI interaction like text selection or context menu display ([#3165](#3165)) ([bfe4e8a](bfe4e8a))
* Name of calculated value in data browser graph allows leading and trailing spaces ([#3132](#3132)) ([9493b18](9493b18))
* Optimize data browser cell context menu grouping and readability ([#3141](#3141)) ([5c711e1](5c711e1))
* Security upgrade react-router and react-router-dom ([#3107](#3107)) ([b76b9d1](b76b9d1))
* Setting a keyboard shortcut to its default value creates an unnecessary dashboard config storage entry ([#3173](#3173)) ([4949053](4949053))

### Features

* Add auto-scrolling for info panels ([#3149](#3149)) ([3cd8197](3cd8197))
* Add canvas tree to sidebar instead of loading dialog and favorite functionality ([#3146](#3146)) ([e58dc82](e58dc82))
* Add cloning of element in canvas ([#3144](#3144)) ([dec06ad](dec06ad))
* Add context menu in data browser to add cell content or selected text to Cloud Config parameter ([#3123](#3123)) ([9bc5197](9bc5197))
* Add context menu in data browser to get related records from String and Number fields ([#3118](#3118)) ([824bebd](824bebd))
* Add context menu item to get related records for selected text in data browser cell ([#3142](#3142)) ([33d3595](33d3595))
* Add custom dashboard canvas with graphs and data tables ([#3126](#3126)) ([d45c27b](d45c27b))
* Add customizable styles for line and bar series in data browser graph ([#3131](#3131)) ([501dd4b](501dd4b))
* Add customizable Y-axis titles for data browser graphs ([#3130](#3130)) ([2946e64](2946e64))
* Add dialog to execute Cloud Job with parameters ([#3158](#3158)) ([da419e0](da419e0))
* Add expanded view for canvas elements graph, table, view ([#3156](#3156)) ([0ffd767](0ffd767))
* Add field `objectId` to get related records context menu in data browser ([#3161](#3161)) ([2847ccf](2847ccf))
* Add formula-based calculated value to data browser graph ([#3129](#3129)) ([7c5d1b3](7c5d1b3))
* Add keyboard shortcut for executing script on selected rows in data browser ([#3171](#3171)) ([75389ad](75389ad))
* Add more customization options for graphs in canvas ([#3134](#3134)) ([ddbd666](ddbd666))
* Add non-alphanumeric character detection in Cloud Config parameters ([#3143](#3143)) ([1594ec8](1594ec8))
* Add quick-remove button to array parameter in Cloud Config ([#3121](#3121)) ([b632074](b632074))
* Add support for server side storage of Cloud Config parameter history ([#3169](#3169)) ([964e540](964e540))
* Allow adding View elements to canvas ([#3133](#3133)) ([2f2ae9a](2f2ae9a))
* Allow to favorite canvas for quick-access via sidebar menu ([#3135](#3135)) ([1e3a3c7](1e3a3c7))
* Allow to pause auto-scroll of info panel by holding the Option key ([#3160](#3160)) ([db38f14](db38f14))
* Allow to use ESC key to cancel, Cmd + Enter key to submit, Tab key to navigate a modal dialog ([#3172](#3172)) ([debdc09](debdc09))
* Detect and warn about unprintable characters in Cloud Config parameter values ([#3119](#3119)) ([26c909c](26c909c))
* Improve usability and layout of canvas and elements ([#3148](#3148)) ([cd654dc](cd654dc))
* Optimize appearance of graph tick labels on x-axis for date values ([#3147](#3147)) ([a9edcaf](a9edcaf))
* Optimize canvas menu organization ([#3145](#3145)) ([1558826](1558826))
* Replace graph fields with graph series for more customization ([#3157](#3157)) ([51feba4](51feba4))
* Various improvements for auto-scrolling info panel ([#3151](#3151)) ([423d83a](423d83a))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

state:released-alpha Released as alpha version

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants