Commit 64f4fb9
authored
feat: custom dashboard views (#36)
* feat: add DashboardView model for custom dashboard views
Add Prisma schema model and migration for user-scoped custom dashboard
views with panel selection, optional filters, and sort ordering.
* feat: add dashboard view CRUD procedures
Add listViews, createView, updateView, and deleteView tRPC procedures
to the dashboard router for managing user-scoped custom dashboard views.
* feat: add dashboard tab bar, view builder, and custom view rendering
Add a tab bar at the top of the dashboard for switching between the
default view and user-created custom views. Includes a view builder
dialog for selecting panels and a custom view component that renders
the chosen charts and summary cards in a responsive grid.
* docs: add custom dashboard views section to dashboard docs
Document the custom view workflow: creating, switching, editing, and
deleting views, with a stepper guide and panel reference table.
* fix: only reset active view when deleting the currently viewed tab
Previously, deleting any custom view would unconditionally switch back
to the Default tab. Now only resets if the deleted view was active.
* fix: address custom dashboards review findings
- Replace count-based sortOrder with aggregate max to avoid TOCTOU race
- Add withTeamAccess("VIEWER") to createView, updateView, deleteView
- Add withAudit middleware to all three view mutations
- Pass environmentId through frontend for team context resolution1 parent ea0ae98 commit 64f4fb9
7 files changed
Lines changed: 1092 additions & 218 deletions
File tree
- docs/public/user-guide
- prisma
- migrations/20260307100000_add_dashboard_views
- src
- app/(dashboard)
- components/dashboard
- server/routers
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
81 | 81 | | |
82 | 82 | | |
83 | 83 | | |
84 | | - | |
| 84 | + | |
85 | 85 | | |
86 | | - | |
| 86 | + | |
87 | 87 | | |
88 | | - | |
| 88 | + | |
89 | 89 | | |
90 | | - | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
91 | 102 | | |
92 | | - | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
93 | 114 | | |
94 | | - | |
| 115 | + | |
95 | 116 | | |
96 | | - | |
97 | | - | |
98 | | - | |
99 | | - | |
100 | | - | |
101 | | - | |
102 | | - | |
103 | | - | |
104 | | - | |
105 | | - | |
106 | | - | |
107 | | - | |
108 | | - | |
| 117 | + | |
109 | 118 | | |
110 | | - | |
111 | | - | |
112 | | - | |
113 | | - | |
114 | | - | |
115 | | - | |
| 119 | + | |
116 | 120 | | |
117 | | - | |
| 121 | + | |
118 | 122 | | |
119 | 123 | | |
120 | | - | |
| 124 | + | |
121 | 125 | | |
Lines changed: 19 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
| 30 | + | |
30 | 31 | | |
31 | 32 | | |
32 | 33 | | |
| |||
561 | 562 | | |
562 | 563 | | |
563 | 564 | | |
| 565 | + | |
| 566 | + | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
| 570 | + | |
| 571 | + | |
| 572 | + | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
0 commit comments