parse-dashboard
parse-dashboard copied to clipboard
feat: Add dashboard configuration store on Parse Server
New Pull Request Checklist
- [x] I am not disclosing a vulnerability.
- [x] I am creating this PR in reference to an issue.
Issue Description
Closes: #2555
Approach
TODOs before merging
Summary by CodeRabbit
-
New Features
- Added the ability for users to save and load dashboard column and class preferences to the server, enabling persistent customization across sessions.
- New "Save" buttons appear in the dashboard settings when server-side preferences are enabled.
-
Documentation
- Updated the README with instructions on enabling and using server-side dashboard configuration saving.
-
Chores
- Simplified import paths within the project for easier code maintenance.
🚀 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.
[!WARNING]
Rate limit exceeded
@dblythy has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 2 minutes and 3 seconds before requesting another review.
⌛ How to resolve this issue?
After the wait time has elapsed, a review can be triggered using the
@coderabbitai reviewcommand as a PR comment. Alternatively, push new commits to this PR.We recommend that you space out your commits to avoid hitting the rate limit.
🚦 How do rate limits work?
CodeRabbit enforces hourly rate limits for each developer per organization.
Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.
Please see our FAQ for further information.
📥 Commits
Reviewing files that changed from the base of the PR and between b788f9e92320516ee45bb0f9ed5bd95d554b121c and f5e6478b7671c2debb6df418e7d0bdae5d9ff8f5.
📒 Files selected for processing (1)
src/lib/ColumnPreferences.js(1 hunks)
📝 Walkthrough
Walkthrough
The changes introduce server-side storage and retrieval of dashboard configuration preferences, including columns and class settings. This is achieved by adding new functions for loading and saving preferences from/to a Parse class, updating React components to support these operations, and documenting the feature and its configuration in the README.
Changes
| File(s) | Change Summary |
|---|---|
| README.md | Added documentation for enabling and using server-side dashboard configuration storage. |
| jsconfig.json | Added module path aliases and set baseUrl to "src" for simplified imports. |
| src/dashboard/Data/Browser/Browser.react.js | Added logic to load column and class preferences from server if preferencesClassName is set in context. |
| src/dashboard/Settings/DashboardSettings/DashboardSettings.react.js | Added UI and methods to save column and class preferences to server using Parse; uses new context property. |
| src/lib/ClassPreferences.js | Added load and setClassPreferences functions for server-side loading and merging of class preferences. |
| src/lib/ColumnPreferences.js | Added load function for server-side loading of column preferences. |
| src/lib/ParseApp.js | Updated constructor to accept preferencesClassName and delegate preference setting to new function. |
Sequence Diagram(s)
sequenceDiagram
participant User
participant DashboardSettings
participant ParseServer
User->>DashboardSettings: Clicks "Save Columns" or "Save Classes"
DashboardSettings->>ParseServer: Query for existing preferences object
alt Preferences object exists
DashboardSettings->>ParseServer: Update preferences object with new data
else Preferences object does not exist
DashboardSettings->>ParseServer: Create new preferences object with ACL
end
ParseServer-->>DashboardSettings: Confirmation of save
DashboardSettings-->>User: Show success or error notification
sequenceDiagram
participant BrowserComponent
participant ParseServer
BrowserComponent->>ParseServer: Query for stored column/class preferences (on mount)
ParseServer-->>BrowserComponent: Return preferences data (if any)
BrowserComponent->>BrowserComponent: Merge and apply preferences locally
Assessment against linked issues
| Objective | Addressed | Explanation |
|---|---|---|
| Store dashboard options server side via configurable Parse class (e.g., preferencesClassName) (#2555) | ✅ | |
| Load and apply preferences from server, replacing or merging with local storage (#2555) | ✅ | |
| Provide UI to save current dashboard preferences to server (#2555) | ✅ | |
| Document configuration and usage of server-side preferences (#2555) | ✅ |
Assessment against linked issues: Out-of-scope changes
No out-of-scope changes found.
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.
🪧 Tips
Chat
There are 3 ways to chat with CodeRabbit:
- Review comments: Directly reply to a review comment made by CodeRabbit. Example:
I pushed a fix in commit <commit_id>, please review it.Explain this complex logic.Open a follow-up GitHub issue for this discussion.
- Files and specific lines of code (under the "Files changed" tab): Tag
@coderabbitaiin a new review comment at the desired location with your query. Examples:@coderabbitai explain this code block.@coderabbitai modularize this function.
- PR comments: Tag
@coderabbitaiin a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:@coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.@coderabbitai read src/utils.ts and explain its main purpose.@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.@coderabbitai help me debug CodeRabbit configuration file.
Support
Need help? Create a ticket on our support page for assistance with any issues or questions.
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.
CodeRabbit Commands (Invoked using PR comments)
@coderabbitai pauseto pause the reviews on a PR.@coderabbitai resumeto resume the paused reviews.@coderabbitai reviewto trigger an incremental review. This is useful when automatic reviews are disabled for the repository.@coderabbitai full reviewto do a full review from scratch and review all the files again.@coderabbitai summaryto regenerate the summary of the PR.@coderabbitai generate sequence diagramto generate a sequence diagram of the changes in this PR.@coderabbitai auto-generate unit teststo generate unit tests for this PR.@coderabbitai resolveresolve all the CodeRabbit review comments.@coderabbitai configurationto show the current CodeRabbit configuration for the repository.@coderabbitai helpto get help.
Other keywords and placeholders
- Add
@coderabbitai ignoreanywhere in the PR description to prevent this PR from being reviewed. - Add
@coderabbitai summaryto generate the high-level summary at a specific location in the PR description. - Add
@coderabbitaianywhere in the PR title to generate the title automatically.
CodeRabbit Configuration File (.coderabbit.yaml)
- You can programmatically configure CodeRabbit by adding a
.coderabbit.yamlfile to the root of your repository. - Please see the configuration documentation for more information.
- If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation:
# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json
Documentation and Community
- Visit our Documentation for detailed information on how to use CodeRabbit.
- Join our Discord Community to get help, request features, and share feedback.
- Follow us on X/Twitter for updates and announcements.
:tada: Snyk checks have passed. No issues have been found so far.
:white_check_mark: security/snyk check is complete. No issues have been found. (View Details)
Uffizzi Ephemeral Environment deployment-64323
:watch: Updated Jun 22, 2025, 09:52 UTC
:cloud: https://app.uffizzi.com/github.com/parse-community/parse-dashboard/pull/2860
:page_facing_up: View Application Logs etc.
What is Uffizzi? Learn more
Superseded by https://github.com/parse-community/parse-dashboard/pull/2958