Skip to content

feat: Add more customization options for graphs in canvas#3134

Merged
mtrezza merged 4 commits intoparse-community:alphafrom
mtrezza:fix/graph-element-in-canvas
Jan 20, 2026
Merged

feat: Add more customization options for graphs in canvas#3134
mtrezza merged 4 commits intoparse-community:alphafrom
mtrezza:fix/graph-element-in-canvas

Conversation

@mtrezza
Copy link
Member

@mtrezza mtrezza commented Jan 20, 2026

New Pull Request Checklist

Summary by CodeRabbit

  • New Features

    • Custom graph titles in the configuration dialog.
    • New toggles to show/hide legend and axis labels for graphs.
    • Graph elements now render a dedicated header with title and optional refresh control; panels can hide their internal header/footer.
  • Style

    • Reduced chart min-height and adjusted container background/overflow for improved layout and scrolling.
    • Added header and container styles for clearer visual hierarchy.

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

@parse-github-assistant
Copy link

parse-github-assistant bot commented Jan 20, 2026

🚀 Thanks for opening this pull request! We appreciate your effort in improving the project. Please let us know once your pull request is ready for review.

@parseplatformorg
Copy link
Contributor

parseplatformorg commented Jan 20, 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.

@coderabbitai
Copy link

coderabbitai bot commented Jan 20, 2026

📝 Walkthrough

Walkthrough

Adds header/footer visibility props to GraphPanel, moves title/refresh into a separate header in GraphElement, introduces title/legend/axis-label controls in GraphConfigDialog, adjusts related DOM structure and styles, and updates GraphPanel styling and container layout.

Changes

Cohort / File(s) Change Summary
GraphPanel visibility & rendering
src/components/GraphPanel/GraphPanel.react.js
Added hideHeader and hideFooter props (default false); conditional rendering to omit header/footer when set.
GraphPanel styling
src/components/GraphPanel/GraphPanel.scss
Removed container background color; reduced .chartContainer min-height from 300px to 100px.
Data browser wrapper
DataBrowser DOM
src/dashboard/Data/Browser/DataBrowser.react.js, src/dashboard/Data/Browser/Databrowser.scss
Wrapped GraphPanel in a .graphPanelContainer div and added matching .graphPanelContainer styles (height:100%, overflow:auto, background-color: #fefafb).
Graph config dialog UI
src/dashboard/Data/CustomDashboard/elements/GraphConfigDialog.react.js
Added local state for title, toggles for showLegend and showAxisLabels, new inputs bound to state, and extended onSave payload to include title, showLegend, showAxisLabels.
Dashboard Graph element & layout
src/dashboard/Data/CustomDashboard/elements/GraphElement.react.js, src/dashboard/Data/CustomDashboard/elements/GraphElement.scss
Compute/display title outside GraphPanel; add refresh button; pass hideHeader: true and hideFooter: true to GraphPanel; clone/modify graphConfig to surface showLegend/showAxisLabels; add header/container styles and overflow handling.
Misc / manifest
package.json
Manifest touched (details in diff).

Sequence Diagram(s)

(omitted — changes are UI/composition and do not introduce a new multi-component sequential flow meeting diagram criteria)

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Description check ⚠️ Warning The PR description is incomplete. While the checklist boxes are marked, the required 'Issue Description' and 'Approach' sections are empty, lacking explanation of the problem solved and implementation details. Complete the 'Issue Description' section with details about the issue being solved, and fill in the 'Approach' section describing how the customization options were implemented.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Add more customization options for graphs in canvas' clearly and specifically summarizes the main change: adding hideHeader, hideFooter, title, showLegend, and showAxisLabels customization options to GraphPanel and GraphElement components.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ 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.

@mtrezza mtrezza changed the title fix: Graph min height in data browser is too large fix: Graph requires large minimum height in data browser Jan 20, 2026
@mtrezza mtrezza changed the title fix: Graph requires large minimum height in data browser feat: Add more customization options for graphs in canvas Jan 20, 2026
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: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
src/dashboard/Data/CustomDashboard/elements/GraphConfigDialog.react.js (1)

64-79: Trim title before saving to avoid whitespace-only titles.
A whitespace-only string is currently truthy and will be saved as-is. Consider normalizing before the fallback.

💡 Proposed fix
  const handleSave = () => {
    if (!className || !graphId || !selectedGraph) {
      return;
    }

    const selectedFilter = filtersForClass.find(f => f.id === filterId);
+   const normalizedTitle = title.trim();

    onSave({
-      title: title || selectedGraph?.title || 'Graph',
+      title: normalizedTitle || selectedGraph?.title || 'Graph',
      className,
      graphId,
      graphConfig: selectedGraph,
      filterId: filterId || null,
      filterConfig: selectedFilter ? [selectedFilter] : null,
      limit: parseInt(limit, 10) || 1000,
    });
  };
🤖 Fix all issues with AI agents
In `@src/dashboard/Data/Browser/DataBrowser.react.js`:
- Around line 2202-2215: The wrapper div containing GraphPanel is mis-indented;
adjust the indentation so the opening div, its GraphPanel props block, and the
closing div align to the expected 16-space indentation used in this file (locate
the <div className={styles.graphPanelContainer}> and the nested <GraphPanel ...
/> in DataBrowser.react.js) — reformat the block so each line of the GraphPanel
JSX and the surrounding div share the same indentation level to satisfy the
linter/formatter.

In `@src/dashboard/Data/CustomDashboard/elements/GraphElement.react.js`:
- Around line 30-58: The refresh button in GraphElement (the button rendered
when onRefresh is provided, using className refreshButton and Icon name
"refresh-solid") lacks an accessible label; update the button element to include
an aria-label (e.g., "Refresh graph") and optionally a title attribute with the
same text, and ensure the Icon is marked decorative (aria-hidden="true") so
screen readers use the button's aria-label rather than the icon.

@mtrezza mtrezza merged commit ddbd666 into parse-community:alpha Jan 20, 2026
12 checks passed
parseplatformorg pushed a commit that referenced this pull request Jan 20, 2026
# [8.3.0-alpha.18](8.3.0-alpha.17...8.3.0-alpha.18) (2026-01-20)

### Features

* Add more customization options for graphs in canvas ([#3134](#3134)) ([ddbd666](ddbd666))
@parseplatformorg
Copy link
Contributor

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

@parseplatformorg parseplatformorg added the state:released-alpha Released as alpha version label Jan 20, 2026
@mtrezza mtrezza deleted the fix/graph-element-in-canvas branch January 21, 2026 04:57
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