Skip to content

Migrate 'Analytics' portlet UI to PrimeNG (Angular 21) #34253

@hmoreras

Description

@hmoreras

Goal

Migrate the existing Analytics portlet UI so it looks and behaves correctly using PrimeNG and Angular 21, aligned with the rest of the modernized DotCMS UI.

http://localhost:8080/dotAdmin/#/analytics

Background / Context

We are updating legacy portlets to the new UI stack. The Analytics portlet currently has visual/layout inconsistencies and does not match PrimeNG styling/UX expectations. The portlet is already using standalone components but needs PrimeNG migration.

Scope

  • Update the Analytics portlet components/templates/styles to use PrimeNG components and patterns.
  • Ensure layout, spacing, typography, and interactions match the modern UI.
  • Keep the existing functional behavior intact unless otherwise noted.

Components to Migrate

Main Screens:

  • Dashboard (DotAnalyticsDashboardComponent) - /analytics/dashboard
  • Búsqueda (DotAnalyticsSearchComponent) - /analytics/search
  • Error (DotAnalyticsErrorComponent) - /analytics/error

Dashboard Sub-components:

  • DotAnalyticsDashboardChartComponent - Charts
  • DotAnalyticsDashboardMetricsComponent - Metrics
  • DotAnalyticsDashboardFiltersComponent - Filters
  • DotAnalyticsDashboardTableComponent - Table
  • DotAnalyticsStateMessageComponent - State message

Current PrimeNG Dependencies:

  • ButtonModule / ButtonDirective
  • CardModule
  • ChartModule
  • DatePickerModule
  • DialogModule
  • MessageModule
  • SelectModule
  • SkeletonModule
  • SplitterModule
  • TableModule
  • TooltipModule
  • CheckboxModule
  • DialogService (de primeng/dynamicdialog)
  • DynamicDialogModule
  • InplaceModule
  • InputTextModule
  • MenuModule
  • DataViewModule (en dot-add-variable)
  • SharedModule (de primeng/api)
  • ConfirmationService (de primeng/api)

Location: libs/portlets/dot-analytics/portlet/src/lib/

Requirements

  • Use PrimeNG components where applicable (tables, dialogs, buttons, inputs, dropdowns, charts, date pickers, etc.).
  • Replace legacy PrimeNG module imports with Angular 21 standalone component patterns where applicable.
  • Accessibility basics: keyboard navigation, focus states, proper labels/aria where needed.
  • No regressions in functionality (dashboard metrics, charts, search, filtering, etc.).

Acceptance Criteria

  • Analytics portlet UI matches PrimeNG look & feel and is consistent with the rest of the app.
  • No console errors in dev.
  • All components use modern PrimeNG patterns (Angular 21 compatible).
  • Add/update tests where the project already has coverage and ensure they pass.

Metadata

Metadata

Type

Projects

Status

New

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions