Skip to content

[TASK] Content Drive: Implement virtual scroll for Content Type Filter #33753

Description

@zJaaal

Problem Statement

Currently, the Content Type Filter in Content Drive uses PrimeNG's p-multiselect component and requires users to search for Content Types. This can be cumbersome when users want to browse available Content Types without knowing the exact name.

Investigation Goal

Determine if virtual scroll can be implemented on the PrimeNG p-multiselect component to enable browsing all Content Types without requiring search functionality.

Research Areas

Technical Feasibility

  • Review PrimeNG 17.18.11 p-multiselect virtual scroll capabilities
  • Identify current Content Type Filter implementation (component location, data loading mechanism)
  • Check if p-multiselect supports virtualScroll property and virtualScrollItemSize
  • Assess data loading patterns (pagination, lazy loading, total content type count)
  • Test virtual scroll with actual Content Type data structure

PrimeNG Virtual Scroll Configuration

  • Investigate virtualScroll and virtualScrollItemSize properties
  • Test virtualScrollOptions for custom behavior
  • Evaluate compatibility with existing p-multiselect features (filtering, grouping, templates)
  • Determine if lazy loading is needed for very large datasets

Performance Considerations

  • Determine typical number of Content Types in production environments
  • Measure current loading performance with large datasets (100+, 500+, 1000+ content types)
  • Evaluate memory footprint with virtual scroll vs current implementation
  • Test rendering performance with virtual scroll enabled

UX Implications

  • Review current user workflow and pain points
  • Evaluate how virtual scroll affects search/filter functionality
  • Test scrolling behavior and user experience
  • Consider accessibility requirements for virtual scroll
  • Compare with other p-multiselect instances in dotCMS UI

Integration Requirements

  • Identify required changes to backend APIs (if any)
  • Evaluate impact on existing filter features (search, favorites, recent)
  • Assess compatibility with current Content Drive architecture
  • Test with custom item templates (if used)

Deliverables

  • Technical findings document with:
    • PrimeNG virtual scroll capabilities and limitations
    • Recommended configuration and implementation approach
    • Implementation effort estimate
    • Performance benchmarks (with/without virtual scroll)
    • Potential risks and mitigation strategies
  • Prototype or proof-of-concept demonstrating virtual scroll
  • Decision: Go/No-Go recommendation with justification

Acceptance Criteria

  • All research areas documented with findings
  • PrimeNG virtual scroll feasibility clearly established
  • Performance impact quantified with real data
  • Implementation approach recommended (or reasons for not proceeding)
  • Code examples or prototype provided
  • Findings shared with team for decision-making

Time Box

This spike should be time-boxed to 1-3 hours of investigation.

Technical Context

  • Component: PrimeNG p-multiselect (v17.18.11)
  • Framework: Angular 19.2.9
  • Feature: Content Drive - Content Type Filter

Related Components

  • Content Drive
  • Content Type Filter
  • PrimeNG multiselect component

Activity

  1. added theissue type on Nov 7, 2025
  2. moved this from New to Next Sprint in dotCMS - Product Planningon Nov 7, 2025
  3. changed the title [-]SPIKE: Investigate virtual scroll for Content Type Filter in Content Drive[/-] [+][SPIKE] Content Dirve: Investigate virtual scroll for Content Type Filter[/+] on Nov 7, 2025
  4. github-actions commented on Feb 6, 2026

    @github-actions
    Contributor

    This issue is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 30 days.

  5. changed the title [-][SPIKE] Content Dirve: Investigate virtual scroll for Content Type Filter[/-] [+][SPIKE] Content Drive: Investigate virtual scroll for Content Type Filter[/+] on Feb 10, 2026
  6. moved this from Next Sprint to Current Sprint Backlog in dotCMS - Product Planningon Feb 25, 2026
  7. changed the title [-][SPIKE] Content Drive: Investigate virtual scroll for Content Type Filter[/-] [+][TASK] Content Drive: Implement virtual scroll for Content Type Filter[/+] on Feb 27, 2026
  8. zJaaal commented on Feb 27, 2026

    @zJaaal
    MemberAuthor

    Note to QA

    Since I found a positive resolution to the spike i'm making this task to solve it right away

    And also you must test this on modernization env or branch.

  9. self-assigned this
    on Feb 27, 2026
  10. 8 remaining items

  11. zJaaal commented on Mar 2, 2026

    @zJaaal
    MemberAuthor

    Note to QA

    Since I found a positive resolution to the spike i'm making this task to solve it right away

    And also you must test this on modernization env or branch.

    Lara theme is already merged, so it can be tested against main.

  12. added a commit that references this issue on Mar 2, 2026
  13. moved this from In Review to QA in dotCMS - Product Planningon Mar 2, 2026
  14. removed their assignment
    on Mar 4, 2026
  15. self-assigned this
    on Mar 5, 2026
  16. dario-daza commented on Mar 6, 2026

    @dario-daza
    Member

    QA PASSED:

    The new virtual scrolling functionality is working with the Content Type filter.

    QA-virtual-scrolling-contenttype-filter.mp4

    A couple of issues where found that are not directly related to the virtual scrolling, but it affect the content drive functionality and appearance, might be related with the modernization updates, all of them are described in this ticket.

    • In smaller screens the Content Drive filter table looks cut off.
    • The filters now doesn't show the text when you type, if you click in a filter for the first time and start typing, it does shows the letters and just filter by the first letter you typed.
    • The size of the filters when are expanded is reduced in comparison with the previous filter expanded look.
  17. removed their assignment
    on Mar 6, 2026
  18. changed the issue type fromtoon Mar 6, 2026
  19. changed the issue type fromtoon Mar 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions