Commit 2f38465
feat(dashboards): integrate UI with maintainer dashboard models (PR review & merge velocity, open vs closed issues) (#146)
* feat(dashboards): integrate project issues resolution metrics into recent progress component
- Add project filter to recent progress component for dynamic data fetching
- Implement new API endpoints for fetching project issues resolution data
- Enhance recent progress UI with connection status indicators and tooltips
- Update maintainer dashboard to include project selection for analytics
- Refactor analytics service and controller to support new project-related queries
Jira Ticket: https://linuxfoundation.atlassian.net/browse/LFXV2-710
Generated with [Claude Code](https://claude.ai/code)
Signed-off-by: Mauricio Zanetti Salomao <[email protected]>
* feat(analytics): add project pull requests weekly data integration
- Implement new API endpoint to fetch project pull requests weekly data from Snowflake
- Enhance RecentProgressComponent to display PR review and merge velocity metrics
- Add transformation logic for API response to chart format
- Update analytics service and controller to support new data retrieval
- Introduce new TypeScript interfaces for project pull requests weekly data
Jira Ticket: https://linuxfoundation.atlassian.net/browse/LFXV2-710
Generated with [Claude Code](https://claude.ai/code)
Signed-off-by: Mauricio Zanetti Salomao <[email protected]>
* feat(dashboards): enhance recent progress component with loading state and tooltips
- Implement loading state in the RecentProgressComponent to improve user experience during data fetching.
- Add tooltip functionality for specific metrics to provide additional context when hovering over items.
- Refactor data fetching logic to utilize signals for loading states and ensure proper handling of asynchronous data retrieval.
- Update HTML template to conditionally render loading indicators and tooltips based on data availability.
Jira Ticket: https://linuxfoundation.atlassian.net/browse/LFXV2-718
Generated with [Claude Code](https://claude.com/claude-code)
Signed-off-by: Mauricio Zanetti Salomao <[email protected]>
* fix(analytics): enforce required projectId for project issues resolution
- Update the analytics service and controller to require a projectId parameter for fetching project issues resolution data.
- Modify RecentProgressComponent to handle cases where projectId is not provided, ensuring a default response is returned.
- Refactor related documentation to reflect the change from optional to required projectId.
This change improves data integrity and user experience by preventing requests without a valid project identifier.
Jira Ticket: https://linuxfoundation.atlassian.net/browse/LFXV2-718
Generated with [Claude Code](https://claude.ai/code)
Signed-off-by: Mauricio Zanetti Salomao <[email protected]>
* feat(dashboards): implement project context service for project selection in maintainer dashboard
- Introduced ProjectContextService to manage the selected project state and persist it in local storage.
- Updated MaintainerDashboardComponent to utilize the new service for project selection, ensuring the projectId is set based on user selection and restoring previously selected projects.
- Enhanced form handling to automatically select the first project if no project is currently selected.
This change improves user experience by maintaining project context across sessions and simplifying project selection in the dashboard.
Jira Ticket: https://linuxfoundation.atlassian.net/browse/LFXV2-718
Generated with [Claude Code](https://claude.com/claude-code)
Signed-off-by: Mauricio Zanetti Salomao <[email protected]>
* fix(dashboards): add error handling for project data fetching in maintainer dashboard
- Implemented error handling in the MaintainerDashboardComponent to manage failures when fetching project data from the analytics service.
- Utilized RxJS's catchError to log errors and return an empty projects array, ensuring the application remains stable during data retrieval issues.
This change enhances the robustness of the dashboard by preventing crashes due to data fetching errors.
Jira Ticket: https://linuxfoundation.atlassian.net/browse/LFXV2-718
Generated with [Claude Code](https://claude.com/claude-code)
Signed-off-by: Mauricio Zanetti Salomao <[email protected]>
* refactor(dashboards): improve project selection logic in maintainer dashboard
- Updated MaintainerDashboardComponent to validate the current project selection against loaded projects.
- Removed the logic for restoring a stored project ID and streamlined the auto-selection of the first project if no valid selection exists.
- Enhanced user experience by ensuring that only valid project selections are set in the form.
Jira Ticket: https://linuxfoundation.atlassian.net/browse/LFXV2-718
Generated with [Claude Code](https://claude.com/claude-code)
Signed-off-by: Mauricio Zanetti Salomao <[email protected]>
* refactor(dashboards): ssr-safe storage and pattern updates
LFXV2-718
- Add SSR safety checks to all localStorage access points in context services
- Change ProjectContextService to store full ProjectContext objects (projectId, name, slug)
- Simplify maintainer dashboard to match board member dashboard pattern
- Centralize project context in RecentProgressComponent using service injection
- Move ProjectContext interface to shared package for reusability
- Extract chart options to shared constants for consistency
- Refactor chart transformation logic for better maintainability
Generated with [Claude Code](https://claude.com/claude-code)
Signed-off-by: Asitha de Silva <[email protected]>
* fix(dashboards): add ssr-safe persona persistence
LFXV2-718
- Add SSR safety checks to PersonaService localStorage access
- Implement loadStoredPersona() method to restore persisted persona
- Fix constructor to load from localStorage instead of hardcoding 'maintainer'
- Ensure persona selection persists across page refreshes
Generated with [Claude Code](https://claude.com/claude-code)
Signed-off-by: Asitha de Silva <[email protected]>
---------
Signed-off-by: Mauricio Zanetti Salomao <[email protected]>
Signed-off-by: Asitha de Silva <[email protected]>
Co-authored-by: Asitha de Silva <[email protected]>1 parent 58ed2b3 commit 2f38465
File tree
17 files changed
+1403
-158
lines changed- apps/lfx-one/src
- app
- modules/dashboards
- components/recent-progress
- maintainer
- server
- controllers
- routes
- services
17 files changed
+1403
-158
lines changedLines changed: 42 additions & 17 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
43 | | - | |
44 | | - | |
45 | | - | |
46 | | - | |
47 | | - | |
48 | | - | |
49 | | - | |
50 | | - | |
51 | | - | |
52 | | - | |
53 | | - | |
54 | | - | |
55 | | - | |
56 | | - | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
57 | 82 | | |
58 | 83 | | |
59 | | - | |
60 | | - | |
| 84 | + | |
| 85 | + | |
61 | 86 | | |
62 | | - | |
| 87 | + | |
63 | 88 | | |
0 commit comments