Skip to content

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

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

mtrezza merged 4 commits into
parse-community:alphafrom
mtrezza:fix/graph-group-by

Conversation

@mtrezza

@mtrezza mtrezza commented Jan 28, 2026 •

Copy link
Copy Markdown
Member

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

parse-github-assistant Bot commented Jan 28, 2026 •

Copy link
Copy Markdown

🚀 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

parseplatformorg commented Jan 28, 2026 •

Copy link
Copy Markdown
Contributor

✅ 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

mtrezza commented Jan 28, 2026

Copy link
Copy Markdown
Member Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jan 28, 2026

Copy link
Copy Markdown
✅ 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

coderabbitai Bot commented Jan 28, 2026 •

Copy link
Copy Markdown
📝 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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

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).

Comment thread src/lib/GraphDataUtils.js

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

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.

Comment thread src/lib/GraphDataUtils.js Outdated
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
Copy Markdown
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