-
Notifications
You must be signed in to change notification settings - Fork 480
Description
Goal
Migrate the existing Rules 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/#/rules or http://localhost:8080/dotAdmin/#/fromCore/rules
Background / Context
We are updating legacy portlets to the new UI stack. The Rules portlet currently has visual/layout inconsistencies and does not match PrimeNG styling/UX expectations. The portlet uses a module-based architecture (RuleEngineModule) and needs PrimeNG migration.
Scope
- Update the Rules 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:
- Rules Engine (
AppRulesComponent) -/rulesor/fromCore/rules - Rule Engine Container (
RuleEngineContainer) - Container component - Rule Engine (
RuleEngineComponent) - Main rule engine component
Sub-components:
RuleComponent- Individual rule componentRuleActionComponent- Rule action componentConditionComponent- Condition componentConditionGroupComponent- Condition group componentServersideCondition- Server-side conditionVisitorsLocationComponent- Visitors location componentVisitorsLocationContainer- Visitors location containerModalDialogComponent- Modal dialogAreaPickerDialogComponent- Area picker dialogAddToBundleDialogComponent- Add to bundle dialogAddToBundleDialogContainer- Add to bundle dialog containerDropdown- Custom dropdownInputDate- Date inputRestDropdown- REST dropdown
Current PrimeNG Dependencies:
AutoCompleteModuleButtonModuleDatePickerModuleDialogModuleSelectModuleToggleSwitchModuleInputTextModuleMenuModuleMessageModuleMultiSelectModuleTooltipModule
Location: libs/dot-rules/src/lib/
Requirements
- Use PrimeNG components where applicable (tables, dialogs, buttons, inputs, dropdowns, toast/messages, etc.).
- Replace legacy PrimeNG module imports with Angular 21 standalone component patterns where applicable.
- Consider migrating from module-based architecture to standalone components if feasible.
- Accessibility basics: keyboard navigation, focus states, proper labels/aria where needed.
- No regressions in functionality (rule creation, editing, conditions, actions, filtering, etc.).
Acceptance Criteria
- Rules 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
Assignees
Labels
Type
Projects
Status
QA