Goal
Mechanical backend changes to route /dotAdmin/#/c/es-search to the Angular portlet while preserving a rollback escape hatch via an es-search-legacy entry. Mirror the pattern established in Categories PR #35146.
Changes required
1. dotCMS/src/main/webapp/WEB-INF/portlet.xml
- Modify the existing
es-search entry (currently uses ESContentResourcePortlet) to use PortletController with init-param view-path = /es-search (match Categories pattern at the categories entry).
- Add a new
es-search-legacy entry that preserves the original ESContentResourcePortlet class and view-path = /WEB-INF/jsp/es-search/render.jsp. This keeps the Dojo experience available as "ES Search Legacy" in the admin menu.
2. PortletID enum
File: likely dotCMS/src/main/java/com/dotmarketing/util/PortletID.java (confirm during implementation).
- Add
ES_SEARCH_LEGACY("es-search-legacy").
3. Language.properties
- Add:
com.dotcms.repackage.javax.portlet.title.es-search-legacy = ES Search Legacy
- Add any keys from the FE copy deck (UX/UI design sub-task) — coordinate with the FE implementation spec sub-task.
4. SerializationHelperTest (or equivalent)
- Update expected portlet count if a test asserts it (Categories PR updated from 50 → 51).
5. Angular route registration
Coordinate with the FE implementation spec sub-task: add route in core-web/apps/dotcms-ui/src/app/app.routes.ts with MenuGuardService + reuseRoute: false.
Acceptance Criteria
Out of scope
- Do NOT delete the Dojo JSPs (
render.jsp, es-search-help.jsp, not_licensed.jsp) — the legacy entry references them. Deletion happens in a follow-up once the new portlet is validated in prod.
- Do NOT implement the Angular components (handled in the FE implementation spec sub-task).
Parent
#34733
Goal
Mechanical backend changes to route
/dotAdmin/#/c/es-searchto the Angular portlet while preserving a rollback escape hatch via anes-search-legacyentry. Mirror the pattern established in Categories PR #35146.Changes required
1.
dotCMS/src/main/webapp/WEB-INF/portlet.xmles-searchentry (currently usesESContentResourcePortlet) to usePortletControllerwith init-paramview-path = /es-search(match Categories pattern at thecategoriesentry).es-search-legacyentry that preserves the originalESContentResourcePortletclass andview-path = /WEB-INF/jsp/es-search/render.jsp. This keeps the Dojo experience available as "ES Search Legacy" in the admin menu.2.
PortletIDenumFile: likely
dotCMS/src/main/java/com/dotmarketing/util/PortletID.java(confirm during implementation).ES_SEARCH_LEGACY("es-search-legacy").3.
Language.propertiescom.dotcms.repackage.javax.portlet.title.es-search-legacy = ES Search Legacy4.
SerializationHelperTest(or equivalent)5. Angular route registration
Coordinate with the FE implementation spec sub-task: add route in
core-web/apps/dotcms-ui/src/app/app.routes.tswithMenuGuardService+reuseRoute: false.Acceptance Criteria
portlet.xmldiff matches Categories PR feat(categories): migrate Categories portlet from Dojo to Angular #35146 patternes-search-legacyentry preserves the existing Dojo JSP exactly (no Dojo code deleted)PortletIDenum updated and referenced consistentlyLanguage.propertiescontains the legacy label + FE i18n keysOut of scope
render.jsp,es-search-help.jsp,not_licensed.jsp) — the legacy entry references them. Deletion happens in a follow-up once the new portlet is validated in prod.Parent
#34733