feat(Block Editor): Restore internal dotCMS page search in the link popover - #492
Conversation
|
Claude finished @jdcmsd's task in 1m 56s —— View job Claude PR Analysis
📄 Output A — Doc Object📄 Doc Object Draft (attached to merge commit post-merge)---
commit: PLACEHOLDER_SHORT_SHA
title: "feat(Block Editor): Restore internal dotCMS page search in the link popover"
type: feature
module: "Block Editor 2.0 / link popover"
customer_visible: yes
security_relevant: false
breaking_change: false
pr:
primary: 492
release_notes:
audience: customer
priority: medium
reasoning: "Restores a content-author-facing capability (internal page search when linking) that exists in the legacy editor but was missing from Block Editor 2.0."
provenance:
generator: doc-object-skill
model: claude-opus-4-8-20251001
prompt_version: v0.1
generated_at: 2026-06-17T15:40:03Z
source_pr: 492
source_diff_sha: PLACEHOLDER_FULL_SHA
---What changedThe Block Editor 2.0 link popover's URL field is upgraded from a plain text input to a PrimeNG Why it mattersAuthors composing content in Block Editor 2.0 previously had to paste raw URLs to link internal pages, losing the search-by-title/path workflow available in the legacy editor. This closes that parity gap before the new editor reaches customers, so authors retain the ability to find and link internal pages by typing rather than copying URLs. RelatedCloses #491 (Block Editor 2.0: restore internal dotCMS page search in the link popover). Reuses the existing 🟢 Output B — Rollback Safety: Safe to RollbackAssessed against every category in
This is a pure Angular/PrimeNG UI change in |
Closes #491
Proposed Changes
Restores feature parity with the legacy Block Editor by bringing internal dotCMS page search back to the Block Editor 2.0 link popover.
p-autoComplete. Typing a partial title/path runs a debounced (250 ms) search and shows a dropdown of matching pages.DotContentSearchServicefrom@dotcms/data-access(the same service the slash-menu drill-down uses); no new HTTP service. The Lucene query is built inline at the call site, mirroring the legacy editor (basetype:5pages + URL-mapped content, matched by title/path/urlmap prefix)./dA/{inode}) when available, with ellipsis truncation to fit the popover.http(s)URL the overlay is suppressed entirely (no search, no empty message), so pasting/typing an external link works unchanged. Manual entry is always allowed.href; opening an existing link prefills the field without firing a spurious search..p-autocomplete-overlayin the popover's click-outside handler so picking a suggestion (body-appended overlay) doesn't dismiss the popover.relselect fix — therelcontrol now defaults tonullinstead of'', so PrimeNG's[showClear]no longer renders a stray "X" on the empty dropdown.Checklist
dot.block.editor.dialog.link.search.emptyand updated the URL placeholder inLanguage.properties./api/content/_search. Query-term interpolation matches the legacy popover's behavior (search scoped to working/non-deleted content for the active language).Additional Info
The search-result set (pages via
basetype:5plus URL-mapped content, scoped to the activelanguageId, working + non-deleted) reproduces the legacy link popover's behavior.Mirrored from dotCMS#35907 for autodoc pipeline testing.