Skip to content

Functional Requirement Specification: Tree Drag and Drop Feature #2264

@IMRANSHAIK21

Description

@IMRANSHAIK21

Prerequisites

  • I have read the Contributing Guidelines.
  • I have not leaked any internal/restricted information like screenshots, videos, code snippets, links etc.

Suggestion / feature request

Description:

The system shall provide a drag-and-drop feature for a hierarchical tree structure. The tree will support multiple parent nodes, each with multiple child nodes, and each child node may contain its own nested children. Users should be able to drag and drop nodes within the tree while adhering to configurable business rules. Users should be able to render large tress without lag.

Functional Requirements:

  • The system shall allow users to drag a child node from one parent and drop it under another parent.

  • The system shall support nested hierarchies (i.e., children can also contain their own children).

  • When a child node is moved, all of its nested children and associated icons shall be moved together.

  • The system shall provide configurable restrictions to prevent certain child nodes from being dropped under specific parent nodes.

  • The system shall visually indicate valid and invalid drop targets during drag-and-drop.

  • A feature similar to CDKVirtualScroll to improve performance when rendering big trees (Lazy loading).

Constraints

  • A node cannot be dropped into itself or into one of its descendants.

  • Restricted parent-child mappings (as defined in business rules) must be enforced at all times.

  • Drag-and-drop must work consistently across all supported browsers and devices.

Acceptance Criteria

AC1: Users can successfully drag a child node (with its subtree and icons) from one parent to another.

AC2: Invalid drop targets (restricted parents or descendants) are disallowed, and the system prevents the drop operation.

AC3: Icons and metadata associated with a node are preserved after a drag-and-drop operation.

AC4: Visual feedback (e.g., highlight or cursor change) is provided to indicate allowed and disallowed drop zones.

AC5: The feature supports unlimited nesting levels without data corruption.

AC6: Smooth rendering of large trees with lazy loading.

Functional Requirement Specification: Tree Drag and Drop Feature and Virtual Scrolling for Performance

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions