76 lines
4.5 KiB
Markdown
76 lines
4.5 KiB
Markdown
# Requirements Document
|
|
|
|
## Introduction
|
|
|
|
This feature refactors the Asset Browser table structure to match the Shot Data Table implementation, providing better performance, consistency, and user experience across the VFX Project Management System.
|
|
|
|
## Glossary
|
|
|
|
- **Asset Browser**: The component that displays and manages assets in a project
|
|
- **Shot Data Table**: The TanStack Table-based component used for displaying shots
|
|
- **TanStack Table**: A powerful table library providing sorting, filtering, and selection capabilities
|
|
- **Asset Data Table**: The new component to be created for assets using TanStack Table
|
|
- **Column Definition**: Configuration objects that define table columns and their behavior
|
|
- **Row Selection**: The ability to select single or multiple table rows with keyboard modifiers
|
|
|
|
## Requirements
|
|
|
|
### Requirement 1
|
|
|
|
**User Story:** As a user, I want the asset browser table to have the same structure and behavior as the shot browser table, so that I have a consistent experience across different entity types.
|
|
|
|
#### Acceptance Criteria
|
|
|
|
1. WHEN viewing assets in table mode, THE Asset Browser SHALL use a TanStack Table-based component similar to ShotsDataTable
|
|
2. WHEN interacting with the asset table, THE system SHALL provide the same row selection behavior as the shot table (single click, ctrl+click, shift+click)
|
|
3. WHEN using column sorting and visibility controls, THE asset table SHALL behave identically to the shot table
|
|
4. WHEN performing bulk operations, THE asset table SHALL support the same selection patterns as the shot table
|
|
5. WHEN the table renders, THE system SHALL maintain the same performance characteristics as the shot table
|
|
|
|
### Requirement 2
|
|
|
|
**User Story:** As a developer, I want the asset table to use the same architectural patterns as the shot table, so that the codebase is maintainable and consistent.
|
|
|
|
#### Acceptance Criteria
|
|
|
|
1. WHEN implementing the asset table, THE system SHALL create an AssetsDataTable component following the same pattern as ShotsDataTable
|
|
2. WHEN defining asset columns, THE system SHALL create a columns.ts file with column definitions similar to shot columns
|
|
3. WHEN handling table state, THE system SHALL use the same TanStack Table state management patterns
|
|
4. WHEN implementing row actions, THE system SHALL use the same dropdown menu pattern as shots
|
|
5. WHEN managing column visibility, THE system SHALL persist settings using the same session storage approach
|
|
|
|
### Requirement 3
|
|
|
|
**User Story:** As a user, I want asset-specific columns and functionality to be properly integrated into the new table structure, so that I don't lose any existing features.
|
|
|
|
#### Acceptance Criteria
|
|
|
|
1. WHEN viewing asset columns, THE system SHALL display all current asset-specific columns (name, category, status, task statuses, description, updated date)
|
|
2. WHEN editing task statuses inline, THE system SHALL maintain the same EditableTaskStatus functionality
|
|
3. WHEN viewing thumbnails, THE system SHALL preserve the thumbnail column functionality
|
|
4. WHEN using category filtering, THE system SHALL maintain all existing filtering capabilities
|
|
5. WHEN performing asset-specific actions (edit, delete, view tasks), THE system SHALL preserve all current functionality
|
|
|
|
### Requirement 4
|
|
|
|
**User Story:** As a user, I want the asset table to support the same bulk operations as the shot table, so that I can efficiently manage multiple assets.
|
|
|
|
#### Acceptance Criteria
|
|
|
|
1. WHEN selecting multiple assets, THE system SHALL provide bulk task status change functionality
|
|
2. WHEN using bulk operations, THE system SHALL show the same popover interface as the shot table
|
|
3. WHEN performing bulk status changes, THE system SHALL update all selected assets optimistically
|
|
4. WHEN bulk operations complete, THE system SHALL show appropriate success/error messages
|
|
5. WHEN no assets are selected, THE system SHALL hide bulk operation controls
|
|
|
|
### Requirement 5
|
|
|
|
**User Story:** As a user, I want the migration to the new table structure to be seamless, so that my existing preferences and workflows are preserved.
|
|
|
|
#### Acceptance Criteria
|
|
|
|
1. WHEN the new table loads, THE system SHALL preserve existing column visibility preferences
|
|
2. WHEN using the detail panel, THE system SHALL maintain the same behavior as before
|
|
3. WHEN switching between view modes, THE system SHALL preserve the same functionality
|
|
4. WHEN using search and filters, THE system SHALL maintain all existing filter capabilities
|
|
5. WHEN the migration is complete, THE system SHALL remove the old table implementation without breaking changes |