Frontmatter
| id | 8524 |
| title | Enhance TreeList navigation for internal routing and deep linking |
| state | Closed |
| labels | enhancementaicore |
| assignees | tobiu |
| createdAt | Jan 10, 2026, 10:15 PM |
| updatedAt | Jan 10, 2026, 10:16 PM |
| githubUrl | https://github.com/neomjs/neo/issues/8524 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | 8398 |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Jan 10, 2026, 10:16 PM |
Enhance TreeList navigation for internal routing and deep linking
tobiu assigned to @tobiu on Jan 10, 2026, 10:16 PM

tobiu
Jan 10, 2026, 10:16 PM
Input from Gemini 3 Pro:
✦ The following enhancements have been implemented and pushed:
- TreeList API Extension: Added
expandParents(itemId)andscrollToItem(itemId)tosrc/tree/List.mjs.- Controller Integration: Updated
Portal.view.news.tickets.MainContainerControllerandPortal.view.news.release.MainContainerControllerto automatically expand and scroll the tree sidebar when a route is matched (supporting internal ticket/release links).- SCSS Fix: Moved
scroll-padding-block-startto the correct scrollable container inresources/scss/src/tree/List.scssto ensure scrolled items are not hidden behind sticky headers.Closing this ticket as the implementation is complete.
tobiu closed this issue on Jan 10, 2026, 10:16 PM
tobiu added parent issue #8398 on Jan 10, 2026, 10:18 PM
Goal: Improve the user experience when navigating to deep-linked content (Tickets, Releases) within the Portal.
Context: Currently, when a user clicks an internal ticket link (e.g.,
#8398resolved to#/news/tickets/8398), the correct content is fetched and displayed in the center pane, but the side navigation TreeList does not reflect this change (it remains collapsed or doesn't scroll to the selected item).Changes:
src/tree/List.mjs:expandParents(itemId): Recursively expands all parent folders of a target item.scrollToItem(itemId): UsesDomAccess.scrollIntoViewto ensure the selected item is visible.Portal.view.news.tickets.MainContainerControllerandPortal.view.news.release.MainContainerControllerto trigger these TreeList methods upon route matches.scroll-padding-block-startto the correct scrollable container (.neo-list-container) inresources/scss/src/tree/List.scssto prevent sticky headers from obscuring the scrolled-to item.Outcome: Seamless navigation where the side menu automatically stays in sync with the current route, providing clear visual context to the user.