[PR #3108] [CLOSED] [WIP] customizable reports homepage - drag-able and resizable widgets #53989

Closed
opened 2026-04-30 23:13:54 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/actualbudget/actual/pull/3108
Author: @MatissJanis
Created: 7/20/2024
Status: Closed

Base: masterHead: matiss/dashboard


📝 Commits (10+)

  • 693d108 customizable reports homepage - drag-able and resizable widgets
  • 839567f Release notes
  • 6d467e1 Merge branch 'master' into matiss/dashboard
  • 7a642fd Dashboard database initial implementation
  • 8d823c0 Shuffle some logic around
  • 50b33bb Persist the dashboard to DB
  • 9ac508a Debounce networth re-renders to improve implied perf
  • bf5ffb3 Allow adding new widgets
  • 4974953 Ability to remove cashflow & networth widgets
  • 5cbd661 Import/export functionality

📊 Changes

51 files changed (+1654 additions, -432 deletions)

View changed files

📝 packages/desktop-client/e2e/page-models/reports-page.js (+4 -4)
📝 packages/desktop-client/e2e/reports.test.js-snapshots/Reports-loads-net-worth-and-cash-flow-reports-1-chromium-linux.png (+0 -0)
📝 packages/desktop-client/e2e/reports.test.js-snapshots/Reports-loads-net-worth-and-cash-flow-reports-2-chromium-linux.png (+0 -0)
📝 packages/desktop-client/e2e/reports.test.js-snapshots/Reports-loads-net-worth-and-cash-flow-reports-3-chromium-linux.png (+0 -0)
📝 packages/desktop-client/package.json (+2 -0)
📝 packages/desktop-client/src/components/common/Input.tsx (+2 -1)
📝 packages/desktop-client/src/components/common/Menu.tsx (+3 -0)
📝 packages/desktop-client/src/components/reports/ChooseGraph.tsx (+1 -0)
📝 packages/desktop-client/src/components/reports/Overview.tsx (+465 -31)
📝 packages/desktop-client/src/components/reports/ReportCard.tsx (+129 -19)
📝 packages/desktop-client/src/components/reports/SaveReport.tsx (+8 -0)
packages/desktop-client/src/components/reports/constants.ts (+1 -0)
📝 packages/desktop-client/src/components/reports/graphs/BarGraph.tsx (+1 -3)
📝 packages/desktop-client/src/components/reports/graphs/DonutGraph.tsx (+3 -3)
📝 packages/desktop-client/src/components/reports/graphs/LineGraph.tsx (+1 -3)
📝 packages/desktop-client/src/components/reports/graphs/NetWorthGraph.tsx (+3 -3)
📝 packages/desktop-client/src/components/reports/graphs/StackedBarGraph.tsx (+1 -3)
packages/desktop-client/src/components/reports/overview.scss (+5 -0)
📝 packages/desktop-client/src/components/reports/reports/CashFlowCard.jsx (+65 -31)
📝 packages/desktop-client/src/components/reports/reports/CustomReport.tsx (+49 -26)

...and 31 more files

📄 Description

WARNING: this change applies a new migration. Do not attempt to open your REAL BUDGET FILES with this change unless you have an exported backup.

An early demo of something I've been cooking up. All feedback is welcome.

https://github.com/user-attachments/assets/7d4166bb-7e3d-49a7-a693-4c9cce697f0d

TODO:

  • the dashboard configuration should be saved in a DB and synced across devices
  • import/export - so the community could share their dashboards
  • mobile shouldn't have resize & drag-n-drop capabilities
  • ability to add more widgets
  • ability to remove widgets
  • ability to do "ctrl+z" to undo
  • ability to rename cashflow/networth graphs - de-scoped for v1
  • import: validate the imported JSON data structure
  • import: highlight widgets that have issues (i.e. custom report widget that references a non-existing category by ID)
  • export: selectedCategories is exporting too verbosely - https://github.com/actualbudget/actual/pull/3178
  • bug: need to press 2x "ctrl+z" for undo to take effect after importing
  • bug: cash-flow chart bar-charts sometimes go out-of-bounds when resizing
  • bug: missing bottom padding for the page
  • bug: drag-n-drop seems to not work anymore
  • bug: custom reports - empty selectedCategories renders differently in dashboard & the single-report page
  • bug: darkmode support
  • bug: renaming custom reports is buggy (clicks on input box take to the reports page)
  • performance: dashboard with MANY widgets are very slow (consider list virtualization)
  • edit mode: drag handles - using appropriate cursors to indicate draggability
  • ability to "reset to default" layout
  • ability to add existing custom reports to the dashboard
  • ability to set all widgets of the page to a certain size/position (maybe?) - de-scoped for v1
  • update snapping color (maybe)
  • reports detail page: descriptive warning for filters (if there are issues)
  • move it under a feature flag

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/actualbudget/actual/pull/3108 **Author:** [@MatissJanis](https://github.com/MatissJanis) **Created:** 7/20/2024 **Status:** ❌ Closed **Base:** `master` ← **Head:** `matiss/dashboard` --- ### 📝 Commits (10+) - [`693d108`](https://github.com/actualbudget/actual/commit/693d1080de51cad4a24e1d016d41058f0f23fb6c) :sparkles: customizable reports homepage - drag-able and resizable widgets - [`839567f`](https://github.com/actualbudget/actual/commit/839567f836c4052e9fdd9c43869eefaf09b18ca3) Release notes - [`6d467e1`](https://github.com/actualbudget/actual/commit/6d467e196b55603c81e9a18fc44e8ab77fcd6c13) Merge branch 'master' into matiss/dashboard - [`7a642fd`](https://github.com/actualbudget/actual/commit/7a642fd93204ec6f883c1d7092c1bba542ec77a9) Dashboard database initial implementation - [`8d823c0`](https://github.com/actualbudget/actual/commit/8d823c05c1e347903bda3b0375c4bc64c58530ce) Shuffle some logic around - [`50b33bb`](https://github.com/actualbudget/actual/commit/50b33bba44c3f0d5d4105c0afa8fe35f49828c8f) Persist the dashboard to DB - [`9ac508a`](https://github.com/actualbudget/actual/commit/9ac508a2679f84f64f6aaf4145ed59f4968db022) Debounce networth re-renders to improve implied perf - [`bf5ffb3`](https://github.com/actualbudget/actual/commit/bf5ffb3ea04ac1040b9d86973ddf26fc223743ce) Allow adding new widgets - [`4974953`](https://github.com/actualbudget/actual/commit/49749535c0c3a4e7417115486cd78fdb7dd1c058) Ability to remove cashflow & networth widgets - [`5cbd661`](https://github.com/actualbudget/actual/commit/5cbd6613538544e229623bf6b47a07bc3da513d3) Import/export functionality ### 📊 Changes **51 files changed** (+1654 additions, -432 deletions) <details> <summary>View changed files</summary> 📝 `packages/desktop-client/e2e/page-models/reports-page.js` (+4 -4) 📝 `packages/desktop-client/e2e/reports.test.js-snapshots/Reports-loads-net-worth-and-cash-flow-reports-1-chromium-linux.png` (+0 -0) 📝 `packages/desktop-client/e2e/reports.test.js-snapshots/Reports-loads-net-worth-and-cash-flow-reports-2-chromium-linux.png` (+0 -0) 📝 `packages/desktop-client/e2e/reports.test.js-snapshots/Reports-loads-net-worth-and-cash-flow-reports-3-chromium-linux.png` (+0 -0) 📝 `packages/desktop-client/package.json` (+2 -0) 📝 `packages/desktop-client/src/components/common/Input.tsx` (+2 -1) 📝 `packages/desktop-client/src/components/common/Menu.tsx` (+3 -0) 📝 `packages/desktop-client/src/components/reports/ChooseGraph.tsx` (+1 -0) 📝 `packages/desktop-client/src/components/reports/Overview.tsx` (+465 -31) 📝 `packages/desktop-client/src/components/reports/ReportCard.tsx` (+129 -19) 📝 `packages/desktop-client/src/components/reports/SaveReport.tsx` (+8 -0) ➕ `packages/desktop-client/src/components/reports/constants.ts` (+1 -0) 📝 `packages/desktop-client/src/components/reports/graphs/BarGraph.tsx` (+1 -3) 📝 `packages/desktop-client/src/components/reports/graphs/DonutGraph.tsx` (+3 -3) 📝 `packages/desktop-client/src/components/reports/graphs/LineGraph.tsx` (+1 -3) 📝 `packages/desktop-client/src/components/reports/graphs/NetWorthGraph.tsx` (+3 -3) 📝 `packages/desktop-client/src/components/reports/graphs/StackedBarGraph.tsx` (+1 -3) ➕ `packages/desktop-client/src/components/reports/overview.scss` (+5 -0) 📝 `packages/desktop-client/src/components/reports/reports/CashFlowCard.jsx` (+65 -31) 📝 `packages/desktop-client/src/components/reports/reports/CustomReport.tsx` (+49 -26) _...and 31 more files_ </details> ### 📄 Description **WARNING: this change applies a new migration. Do not attempt to open your REAL BUDGET FILES with this change unless you have an exported backup.** An early demo of something I've been cooking up. All feedback is welcome. https://github.com/user-attachments/assets/7d4166bb-7e3d-49a7-a693-4c9cce697f0d TODO: - [x] the dashboard configuration should be saved in a DB and synced across devices - [x] import/export - so the community could share their dashboards - [x] mobile shouldn't have resize & drag-n-drop capabilities - [x] ability to add more widgets - [x] ability to remove widgets - [x] ability to do "ctrl+z" to undo - [ ] ~ability to rename cashflow/networth graphs~ - de-scoped for v1 - [x] import: validate the imported JSON data structure - [x] import: highlight widgets that have issues (i.e. custom report widget that references a non-existing category by ID) - [x] export: `selectedCategories` is exporting too verbosely - https://github.com/actualbudget/actual/pull/3178 - [x] bug: need to press 2x "ctrl+z" for undo to take effect after importing - [x] bug: cash-flow chart bar-charts sometimes go out-of-bounds when resizing - [x] bug: missing bottom padding for the page - [x] bug: drag-n-drop seems to not work anymore - [x] bug: custom reports - empty `selectedCategories` renders differently in dashboard & the single-report page - [x] bug: darkmode support - [x] bug: renaming custom reports is buggy (clicks on input box take to the reports page) - [x] performance: dashboard with MANY widgets are very slow (consider list virtualization) - [ ] ~edit mode: drag handles~ - using appropriate cursors to indicate draggability - [x] ability to "reset to default" layout - [x] ability to add existing custom reports to the dashboard - [ ] ~ability to set all widgets of the page to a certain size/position (maybe?)~ - de-scoped for v1 - [x] update snapping color (maybe) - [x] reports detail page: descriptive warning for filters (if there are issues) - [ ] move it under a feature flag --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-04-30 23:13:54 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/actual#53989