Skip to content

Copy-and-Paste: Progress Monitoring Tree View Bonus Task 🎁  #182

@tnaum-ms

Description

@tnaum-ms

Copy-and-Paste: Bonus Task - Progress Monitoring Tree View

⚠️ Important: This is a bonus enhancement to be implemented after the main progress monitoring feature is complete.

Enhances Development Plan Point: 6

Description:
Instead of using vscode.window.withProgress notifications, create a dedicated VS Code view with a tree-like structure for progress monitoring. This will provide a more sophisticated interface for tracking multiple concurrent operations with detailed sub-task progress information.

Requirements

Progress Monitoring Tree View Implementation:

1. Create a new Progress View:

  • Add a new view contribution in package.json:
    • View ID: documentdb.progressView
    • View Name: "Tasks"
    • View Container: Create a new view container or use existing "DocumentDB" container
    • Icon: Use appropriate task/progress icon

2. Tree Data Provider Implementation:

  • Create src/tree/progress-view/ProgressTreeDataProvider.ts following the existing tree provider patterns
  • Tree structure:
    • Root level: Active tasks (show task name, overall progress percentage, status icon)
    • Child level: Sub-tasks or detailed progress steps (show step name, progress, timing information)
  • Implement real-time updates using VS Code's tree refresh events when task states change

3. Tree Item Features:

  • Task Items (root level):

    • Show task type icon (e.g., copy, paste, migration)
    • Display overall progress bar using custom tree item descriptions
    • Show elapsed time and estimated time remaining
    • Context menu actions: "Stop Task", "View Details", "Clear Completed"
  • Sub-task Items (child level):

    • Show individual operation progress (e.g., "Copying document 45/100")
    • Display operation-specific details (document IDs, collection names, error counts)
    • Use different icons for different states (pending, running, completed, failed)

4. Enhanced TaskReportingService Integration:

  • Modify TaskReportingService to support both notification and tree view modes
  • Add methods to:
    • Register/unregister the tree data provider
    • Convert task status updates to tree item updates
    • Manage hierarchical progress reporting for sub-tasks
  • Allow users to switch between notification and tree view modes via settings

5. Additional Tree View Features:

  • Filtering and Sorting:

    • Filter by task type, status, or time range
    • Sort by start time, progress, or name
  • Task History:

    • Keep completed/failed tasks visible for a configurable duration
    • Allow manual clearing of completed tasks
    • Show task completion timestamps
  • Progress Visualization:

    • Use VS Code's built-in progress indicators in tree items
    • Color-code items based on status (green for running, yellow for warnings, red for errors)
    • Show aggregate statistics in view welcome content when no tasks are active

6. User Experience Enhancements:

  • Auto-reveal the progress view when a new long-running task starts
  • Provide "pin" functionality to keep important tasks visible
  • Support collapsing/expanding task details
  • Show task queue information if multiple tasks are pending

This tree view approach provides a centralized location for monitoring all DocumentDB operations, making it easier to track multiple concurrent tasks and understand complex multi-step operations at a glance.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions