[PR #6411] [MERGED] Add Report pages #20865

Closed
opened 2026-04-14 21:47:45 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/actualbudget/actual/pull/6411
Author: @Durbatuluk1701
Created: 12/14/2025
Status: ✅ Merged
Merged: 1/13/2026
Merged by: @MatissJanis

Base: master ← Head: report_pages


📝 Commits (10+)

  • 69989af Adding multiple report pages
  • 29ce69e Adding release notes
  • c115335 Updating release note number
  • 1243ef3 Merge branch 'master' into report_pages
  • 1f37c47 Update VRT screenshots
  • c7542dd Fixing deletion id, allowing empty dashboard name, adding custom report dashboard saving, new dashboard default to empty
  • ae52b67 Merge branch 'master' into report_pages
  • b693b19 Update VRT snapshots for command bar, payees, and schedules tests
  • 6141caf Merge branch 'master' into report_pages
  • 9fb451e Update VRT snapshots for payees page visuals and search functionality tests

📊 Changes

38 files changed (+944 additions, -67 deletions)

View changed files

📝 packages/desktop-client/e2e/command-bar.test.ts-snapshots/Command-bar-Check-the-command-bar-search-works-correctly-1-chromium-linux.png (+0 -0)
📝 packages/desktop-client/e2e/command-bar.test.ts-snapshots/Command-bar-Check-the-command-bar-search-works-correctly-2-chromium-linux.png (+0 -0)
📝 packages/desktop-client/e2e/command-bar.test.ts-snapshots/Command-bar-Check-the-command-bar-search-works-correctly-3-chromium-linux.png (+0 -0)
📝 packages/desktop-client/e2e/reports.test.ts-snapshots/Reports-loads-cash-flow-graph-and-checks-visuals-1-chromium-linux.png (+0 -0)
📝 packages/desktop-client/e2e/reports.test.ts-snapshots/Reports-loads-cash-flow-graph-and-checks-visuals-2-chromium-linux.png (+0 -0)
📝 packages/desktop-client/e2e/reports.test.ts-snapshots/Reports-loads-cash-flow-graph-and-checks-visuals-3-chromium-linux.png (+0 -0)
📝 packages/desktop-client/e2e/reports.test.ts-snapshots/Reports-loads-net-worth-and-cash-flow-reports-1-chromium-linux.png (+0 -0)
📝 packages/desktop-client/e2e/reports.test.ts-snapshots/Reports-loads-net-worth-and-cash-flow-reports-2-chromium-linux.png (+0 -0)
📝 packages/desktop-client/e2e/reports.test.ts-snapshots/Reports-loads-net-worth-and-cash-flow-reports-3-chromium-linux.png (+0 -0)
📝 packages/desktop-client/src/components/Modals.tsx (+4 -0)
➕ packages/desktop-client/src/components/modals/CopyWidgetToDashboardModal.tsx (+72 -0)
➕ packages/desktop-client/src/components/reports/DashboardHeader.tsx (+128 -0)
➕ packages/desktop-client/src/components/reports/DashboardSelector.tsx (+117 -0)
📝 packages/desktop-client/src/components/reports/Overview.tsx (+132 -18)
📝 packages/desktop-client/src/components/reports/ReportCard.tsx (+2 -2)
📝 packages/desktop-client/src/components/reports/ReportRouter.tsx (+3 -2)
📝 packages/desktop-client/src/components/reports/ReportTopbar.tsx (+3 -3)
➕ packages/desktop-client/src/components/reports/ReportsDashboardRouter.tsx (+58 -0)
📝 packages/desktop-client/src/components/reports/SaveReport.tsx (+78 -13)
📝 packages/desktop-client/src/components/reports/reports/CalendarCard.tsx (+9 -0)

...and 18 more files

📄 Description

Add multiple tabs/pages to "Reports" allowing for different widget layouts per page.

The main outcome of this PR is the multiple report pages (example with the test budget):
image

Each Report Page/Dashboard has its own independent widget set.

I would appreciate close attention to the SQL parts of this PR as well as the renaming logic around 435 in Overview.tsx as it has been a while since I've used React and this is probably not idiomatic for what I'm trying to accomplish.


Note

Enables multiple dashboard pages in Reports, each with its own widget layout and URL.

  • Adds dashboard_pages table and dashboard.dashboard_page_id (migration), schema/types updates
  • New server handlers: list/create/rename/delete pages, per-page reset/import, add/remove/update widgets, and dashboard-copy-widget
  • UI: ReportsDashboardRouter with /:dashboardId, DashboardSelector and DashboardHeader (rename inline), delete current page (guard against last page)
  • Overview refactor to be page-aware: fetch widgets by page, pass dashboard_page_id on add/import, reset per page; mobile/desktop headers updated
  • New CopyWidgetToDashboardModal and useWidgetCopyMenu; all report cards gain “Copy to dashboard” action
  • Save Report flow: choose target dashboard when saving and auto-add widget to that page
  • New hooks: useDashboard(dashboardId), useDashboardPages; Modals wired for new modal

Written by Cursor Bugbot for commit 868c35d72a. This will update automatically on new commits. Configure here.


🔄 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/6411 **Author:** [@Durbatuluk1701](https://github.com/Durbatuluk1701) **Created:** 12/14/2025 **Status:** ✅ Merged **Merged:** 1/13/2026 **Merged by:** [@MatissJanis](https://github.com/MatissJanis) **Base:** `master` ← **Head:** `report_pages` --- ### 📝 Commits (10+) - [`69989af`](https://github.com/actualbudget/actual/commit/69989af7e0f281ed24cdf0bf8ad0ffba90c5e168) Adding multiple report pages - [`29ce69e`](https://github.com/actualbudget/actual/commit/29ce69ed696c5f3e22ea5fd66dd7abaf9d6c77cd) Adding release notes - [`c115335`](https://github.com/actualbudget/actual/commit/c11533568e79ba5342073a923435d55e4915a544) Updating release note number - [`1243ef3`](https://github.com/actualbudget/actual/commit/1243ef3d5a09a3ce411e05d27100cc0db938b4fb) Merge branch 'master' into report_pages - [`1f37c47`](https://github.com/actualbudget/actual/commit/1f37c4745764a9843163cf91ae3b507f5eed697a) Update VRT screenshots - [`c7542dd`](https://github.com/actualbudget/actual/commit/c7542ddbf3073459fba21e4de4889412d814c2d3) Fixing deletion id, allowing empty dashboard name, adding custom report dashboard saving, new dashboard default to empty - [`ae52b67`](https://github.com/actualbudget/actual/commit/ae52b67b8c6d7b7c32f9989e975895306fae1fac) Merge branch 'master' into report_pages - [`b693b19`](https://github.com/actualbudget/actual/commit/b693b199a748c3ae9f73c2b7536dd386960051da) Update VRT snapshots for command bar, payees, and schedules tests - [`6141caf`](https://github.com/actualbudget/actual/commit/6141caf5ccea9fd3fdac889a7416e20a0072ab7f) Merge branch 'master' into report_pages - [`9fb451e`](https://github.com/actualbudget/actual/commit/9fb451e46ee98654ba4b3ca6883172f5fff1dc73) Update VRT snapshots for payees page visuals and search functionality tests ### 📊 Changes **38 files changed** (+944 additions, -67 deletions) <details> <summary>View changed files</summary> 📝 `packages/desktop-client/e2e/command-bar.test.ts-snapshots/Command-bar-Check-the-command-bar-search-works-correctly-1-chromium-linux.png` (+0 -0) 📝 `packages/desktop-client/e2e/command-bar.test.ts-snapshots/Command-bar-Check-the-command-bar-search-works-correctly-2-chromium-linux.png` (+0 -0) 📝 `packages/desktop-client/e2e/command-bar.test.ts-snapshots/Command-bar-Check-the-command-bar-search-works-correctly-3-chromium-linux.png` (+0 -0) 📝 `packages/desktop-client/e2e/reports.test.ts-snapshots/Reports-loads-cash-flow-graph-and-checks-visuals-1-chromium-linux.png` (+0 -0) 📝 `packages/desktop-client/e2e/reports.test.ts-snapshots/Reports-loads-cash-flow-graph-and-checks-visuals-2-chromium-linux.png` (+0 -0) 📝 `packages/desktop-client/e2e/reports.test.ts-snapshots/Reports-loads-cash-flow-graph-and-checks-visuals-3-chromium-linux.png` (+0 -0) 📝 `packages/desktop-client/e2e/reports.test.ts-snapshots/Reports-loads-net-worth-and-cash-flow-reports-1-chromium-linux.png` (+0 -0) 📝 `packages/desktop-client/e2e/reports.test.ts-snapshots/Reports-loads-net-worth-and-cash-flow-reports-2-chromium-linux.png` (+0 -0) 📝 `packages/desktop-client/e2e/reports.test.ts-snapshots/Reports-loads-net-worth-and-cash-flow-reports-3-chromium-linux.png` (+0 -0) 📝 `packages/desktop-client/src/components/Modals.tsx` (+4 -0) ➕ `packages/desktop-client/src/components/modals/CopyWidgetToDashboardModal.tsx` (+72 -0) ➕ `packages/desktop-client/src/components/reports/DashboardHeader.tsx` (+128 -0) ➕ `packages/desktop-client/src/components/reports/DashboardSelector.tsx` (+117 -0) 📝 `packages/desktop-client/src/components/reports/Overview.tsx` (+132 -18) 📝 `packages/desktop-client/src/components/reports/ReportCard.tsx` (+2 -2) 📝 `packages/desktop-client/src/components/reports/ReportRouter.tsx` (+3 -2) 📝 `packages/desktop-client/src/components/reports/ReportTopbar.tsx` (+3 -3) ➕ `packages/desktop-client/src/components/reports/ReportsDashboardRouter.tsx` (+58 -0) 📝 `packages/desktop-client/src/components/reports/SaveReport.tsx` (+78 -13) 📝 `packages/desktop-client/src/components/reports/reports/CalendarCard.tsx` (+9 -0) _...and 18 more files_ </details> ### 📄 Description Add multiple tabs/pages to "Reports" allowing for different widget layouts per page. The main outcome of this PR is the multiple report pages (example with the test budget): <img width="2091" height="1142" alt="image" src="https://github.com/user-attachments/assets/179f20a3-e928-4ea4-ac42-aa0d3327f2a0" /> Each Report Page/Dashboard has its own independent widget set. I would appreciate close attention to the SQL parts of this PR as well as the renaming logic around 435 in Overview.tsx as it has been a while since I've used React and this is probably not idiomatic for what I'm trying to accomplish. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Enables multiple dashboard pages in Reports, each with its own widget layout and URL. > > - Adds `dashboard_pages` table and `dashboard.dashboard_page_id` (migration), schema/types updates > - New server handlers: list/create/rename/delete pages, per-page reset/import, add/remove/update widgets, and `dashboard-copy-widget` > - UI: `ReportsDashboardRouter` with `/:dashboardId`, `DashboardSelector` and `DashboardHeader` (rename inline), delete current page (guard against last page) > - Overview refactor to be page-aware: fetch widgets by page, pass `dashboard_page_id` on add/import, reset per page; mobile/desktop headers updated > - New `CopyWidgetToDashboardModal` and `useWidgetCopyMenu`; all report cards gain “Copy to dashboard” action > - Save Report flow: choose target dashboard when saving and auto-add widget to that page > - New hooks: `useDashboard(dashboardId)`, `useDashboardPages`; Modals wired for new modal > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 868c35d72ad47e7864b6f71b98a51f4a32f2a63c. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> --- <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-14 21:47:45 -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#20865