feat(analytics): reorganize dashboard components and fix card styling#34690
Open
feat(analytics): reorganize dashboard components and fix card styling#34690
Conversation
5180638 to
846a30a
Compare
20 tasks
…reports - Renamed components for clarity: to , to , and similar for conversions and engagement reports. - Removed the component and its associated files, consolidating functionality into new report components. - Introduced new and components for enhanced data display and management. - Updated HTML templates and TypeScript files to reflect the new component structure and improve maintainability. - Added comprehensive tests for new components to ensure functionality and reliability. This refactor aims to streamline the analytics dashboard and improve code organization.
846a30a to
88165d9
Compare
Contributor
There was a problem hiding this comment.
Pull request overview
Refactors the dot-analytics dashboard frontend to a domain-driven folder structure (reports by domain + shared) while standardizing chart/metric/table card styling and updating engagement messaging/copy.
Changes:
- Reorganized dashboard components into
reports/{engagement,conversions,pageview}andshared/*, updating selectors and import paths accordingly. - Centralized/shared UI behavior improvements (tooltip config, gradient fill, line animation guard, count-up directive, state message component).
- Updated engagement dialog copy and adjusted titles/headers so individual components own their card/title presentation.
Reviewed changes
Copilot reviewed 41 out of 61 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| dotCMS/src/main/webapp/WEB-INF/messages/Language.properties | Adds/updates analytics i18n strings (engagement dialog + new titles). |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/shared/utils/state-from-url.ts | Adds URL → validated time range/query-param derivation helper. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/shared/utils/dot-analytics.utils.ts | Adds URL time-range validation + date-range validation + color helper. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/shared/utils/dot-analytics.utils.spec.ts | Unit tests for shared utils (date validation + hex/rgb→rgba). |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/shared/types/index.ts | Consolidates and re-exports shared dashboard types + chart color helper. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/shared/plugins/tooltip-config.plugin.ts | Introduces centralized Chart.js tooltip/transition config. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/shared/plugins/line-draw-animation.plugin.ts | Adds DOM-disconnect guard during animation updates. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/shared/plugins/index.ts | Barrel exports for shared chart plugins. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/shared/plugins/gradient-fill.plugin.ts | Adds a Chart.js plugin for gradient fill backgrounds. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/shared/directives/index.ts | Barrel export for shared directives. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/shared/directives/count-up.directive.ts | Adds a count-up directive for animated numeric/time values. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/shared/constants/index.ts | Barrel export for shared constants. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/shared/constants/dot-analytics.constants.ts | Adds shared dashboard constants (time period options, table config, columns). |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/shared/components/dot-analytics-state-message/dot-analytics-state-message.component.ts | Improves component doc comment / clarifies intent. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/shared/components/dot-analytics-state-message/dot-analytics-state-message.component.spec.ts | Adds unit tests for state-message component behavior. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/shared/components/dot-analytics-state-message/dot-analytics-state-message.component.scss | Adds styling for state-message component. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/shared/components/dot-analytics-sparkline/dot-analytics-sparkline.component.ts | Adjusts sparkline sizing to use a host CSS variable and 100% chart height. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/shared/components/dot-analytics-sparkline/dot-analytics-sparkline.component.spec.ts | Updates sparkline default-height expectation after sizing change. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/shared/components/dot-analytics-metric/dot-analytics-metric.component.ts | Renames metric component + adds optional title above card; wires count-up directive. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/shared/components/dot-analytics-metric/dot-analytics-metric.component.spec.ts | Updates/extends metric tests for new selector/title/projection behavior. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/shared/components/dot-analytics-metric/dot-analytics-metric.component.scss | Encapsulates card border/radius and adds title styling. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/shared/components/dot-analytics-metric/dot-analytics-metric.component.html | New metric template with title outside card, state handling, and projection rules. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/shared/components/dot-analytics-filters/dot-analytics-filters.component.ts | Renames filters component + clarifies input/output documentation. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/shared/components/dot-analytics-filters/dot-analytics-filters.component.spec.ts | Updates filters tests for renamed component. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/shared/components/dot-analytics-filters/dot-analytics-filters.component.scss | (Renamed/relocated) styles for filters component. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/shared/components/dot-analytics-filters/dot-analytics-filters.component.html | Updates filters template under new component name. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/shared/components/dot-analytics-chart/dot-analytics-chart.component.ts | Renames chart component + moves title rendering outside card (with dm pipe inside). |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/shared/components/dot-analytics-chart/dot-analytics-chart.component.spec.ts | Updates chart tests for renamed component and new “optional title” behavior. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/shared/components/dot-analytics-chart/dot-analytics-chart.component.scss | Encapsulates p-card border/radius and updates layout to flex-column. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/shared/components/dot-analytics-chart/dot-analytics-chart.component.html | Moves title to external <h3> and simplifies card header logic. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/reports/pageview/dot-analytics-top-pages-table/dot-analytics-top-pages-table.component.ts | Renames top pages table component + updates imports to shared constants/types. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/reports/pageview/dot-analytics-top-pages-table/dot-analytics-top-pages-table.component.spec.ts | Updates tests for renamed top pages table component. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/reports/pageview/dot-analytics-top-pages-table/dot-analytics-top-pages-table.component.scss | Adds styling for top pages table layout/virtual scroll. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/reports/pageview/dot-analytics-top-pages-table/dot-analytics-top-pages-table.component.html | Removes internal card header (title handled by parent report). |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/reports/pageview/dot-analytics-pageview-report/dot-analytics-pageview-report.component.ts | Renames pageview report, updates imports/selectors, and adds host layout classes. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/reports/pageview/dot-analytics-pageview-report/dot-analytics-pageview-report.component.scss | Removes card border overrides from report and adjusts wrappers. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/reports/pageview/dot-analytics-pageview-report/dot-analytics-pageview-report.component.html | Updates to new selectors and renders table title in the report. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/reports/engagement/dot-analytics-platforms-table/dot-analytics-platforms-table.component.ts | Adds totalSessions input and refines computed field comments. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/reports/engagement/dot-analytics-platforms-table/dot-analytics-platforms-table.component.spec.ts | Adds unit tests for platforms table behavior/loading/data derivation. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/reports/engagement/dot-analytics-platforms-table/dot-analytics-platforms-table.component.scss | Encapsulates card border/radius and adds a title style. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/reports/engagement/dot-analytics-platforms-table/dot-analytics-platforms-table.component.html | Adds internal title + shows views as views/totalSessions. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/reports/engagement/dot-analytics-engagement-report/dot-analytics-engagement-report.component.ts | Renames engagement report, adds derived signals incl. computed total sessions. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/reports/engagement/dot-analytics-engagement-report/dot-analytics-engagement-report.component.spec.ts | Updates engagement report tests for renamed components and deferred layout. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/reports/engagement/dot-analytics-engagement-report/dot-analytics-engagement-report.component.scss | Keeps platform progressbar styling after moving card border styles into components. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/reports/engagement/dot-analytics-engagement-report/dot-analytics-engagement-report.component.html | Refactors engagement layout, uses titleAction slot, updates dialog content structure. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/reports/conversions/dot-analytics-conversions-report/dot-analytics-conversions-report.component.ts | Renames conversions report and updates imports/selectors; adds host layout classes. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/reports/conversions/dot-analytics-conversions-report/dot-analytics-conversions-report.component.scss | Removes report-level card border overrides and adds shared title style. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/reports/conversions/dot-analytics-conversions-report/dot-analytics-conversions-report.component.html | Updates to new selectors and renders table titles at the report level. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/reports/conversions/dot-analytics-conversions-overview-table/dot-analytics-conversions-overview-table.component.ts | Updates imports and documents computed state signals. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/reports/conversions/dot-analytics-conversions-overview-table/dot-analytics-conversions-overview-table.component.spec.ts | Adds unit tests for conversions overview table state rendering/data display. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/reports/conversions/dot-analytics-conversions-overview-table/dot-analytics-conversions-overview-table.component.scss | Adds detailed table/badge styling for conversions overview. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/reports/conversions/dot-analytics-conversions-overview-table/dot-analytics-conversions-overview-table.component.html | Removes internal card header (title handled by report). |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/reports/conversions/dot-analytics-content-conversions-table/dot-analytics-content-conversions-table.component.ts | Updates imports and documents computed state signals. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/reports/conversions/dot-analytics-content-conversions-table/dot-analytics-content-conversions-table.component.spec.ts | Adds unit tests for content conversions table state rendering/data display. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/reports/conversions/dot-analytics-content-conversions-table/dot-analytics-content-conversions-table.component.scss | Adds table styling + event-type badge styling + filter overlay styling. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/reports/conversions/dot-analytics-content-conversions-table/dot-analytics-content-conversions-table.component.html | Removes internal card header (title handled by report). |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/dot-analytics-dashboard.component.ts | Updates imports to new report/shared component locations and adds class-level docs. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/dot-analytics-dashboard.component.html | Updates selectors for renamed filters and report components. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/components/dot-analytics-dashboard-metrics/dot-analytics-dashboard-metrics.component.html | Removes legacy metrics template after migration to shared metric component. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/components/dot-analytics-dashboard-engagement-report/dot-analytics-dashboard-engagement-report.component.scss | Removes legacy engagement report styling after refactor. |
| core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/components/dot-analytics-dashboard-engagement-report/dot-analytics-dashboard-engagement-report.component.html | Removes legacy engagement report template after refactor. |
Comments suppressed due to low confidence (1)
core-web/libs/portlets/dot-analytics/portlet/src/lib/dot-analytics-dashboard/reports/engagement/dot-analytics-platforms-table/dot-analytics-platforms-table.component.html:9
- The platforms table title is using the message key
analytics.engagement.table.top-pages.title, but this component is not a "top pages" table (andanalytics.engagement.platforms.titlewas added in Language.properties). Consider switching toanalytics.engagement.platforms.titleto avoid confusing/duplicated i18n keys.
...ts/engagement/dot-analytics-engagement-report/dot-analytics-engagement-report.component.html
Show resolved
Hide resolved
...ts/engagement/dot-analytics-engagement-report/dot-analytics-engagement-report.component.html
Show resolved
Hide resolved
...ts/engagement/dot-analytics-engagement-report/dot-analytics-engagement-report.component.html
Show resolved
Hide resolved
20 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Refactors the analytics dashboard by reorganizing components into a domain-driven folder structure (
reports/engagement,reports/conversions,reports/pageview,shared) and fixes several visual inconsistencies in card styling, typography, and engagement dialog copy.Changes Made
Frontend
components/directory into domain-specific subfolders:reports/engagement/— engagement report and related componentsreports/conversions/— conversions report, content conversions table, and overview tablereports/pageview/— pageview report and top pages tableshared/— shared utilities, plugins, directives, chart, metric, filters, and state message componentsdashboard-prefix):dot-analytics-dashboard-chart→dot-analytics-chartdot-analytics-dashboard-metrics→dot-analytics-metricdot-analytics-dashboard-*-report→dot-analytics-*-reportborderandborder-radiusoverrides on.p-cardfrom parent report SCSS intodot-analytics-chartanddot-analytics-platforms-tabledirectly, so each component owns its visual appearancedot-analytics-platforms-tablenow renders its own title internally instead of relying on the parent template