๐งช Test Scenarios
Test 1: Bulk Status Change Button Visibility
- Navigate to the shot table view
- Ensure no shots are selected initially
- Verify that task status column headers show only the column name and sort icon
- Select one or more shots using checkboxes
- Verify that task status column headers now show a dropdown button (ChevronDown icon)
- Deselect all shots
- Verify that dropdown buttons disappear
Expected: Bulk action buttons appear/disappear based on selection state
Test 2: Bulk Status Change Popover
- Select multiple shots (2-3 shots)
- Click the dropdown button in any task status column header
- Verify popover opens with title "Change [TaskType] Status"
- Verify all task status options are shown as colored badges:
- Not Started (secondary)
- In Progress (default)
- Submitted (outline)
- Approved (default)
- Retake (destructive)
- Click outside popover to close it
Expected: Popover shows correctly formatted status options with proper colors
Test 3: Bulk Status Update Functionality
- Select 2-3 shots with different current task statuses
- Note the current status of each selected shot for a specific task type
- Click the bulk action button for that task type
- Select a different status from the popover (e.g., "In Progress")
- Verify popover closes automatically
- Verify all selected shots now show the new status for that task type
- Verify success toast appears with message like "Updated [TaskType] status for X shots"
Expected: All selected shots update to the new status with success notification
Test 4: Multiple Task Types
- Select multiple shots
- Verify bulk action buttons appear in ALL visible task type columns
- Test bulk update for different task types (e.g., Animation, Lighting, Compositing)
- Verify each task type can be updated independently
- Verify updates don't affect other task types
Expected: Each task type column has independent bulk update functionality
Test 5: Error Handling
- Try to use bulk action without selecting any shots
- Verify appropriate error message appears
- Test with network disconnected (if possible)
- Verify error handling for failed API calls
Expected: Appropriate error messages for edge cases
๐ง Implementation Details
Files Modified:
frontend/src/components/shot/columns.ts
- Added bulk status change button in task column headers
- Added popover with status badges
- Added selection count checking
frontend/src/components/shot/ShotBrowser.vue
- Added selectedShotIds tracking
- Added getSelectedCount() function
- Added handleBulkTaskStatusChange() function
- Updated createStableMeta() with new callbacks
Key Components Used:
- Popover/PopoverContent/PopoverTrigger for dropdown UI
- TaskStatusBadge for colored status display
- ChevronDown icon for dropdown button
- Toast notifications for user feedback
๐ Ready for Testing
The bulk task status change functionality has been implemented for the shot data table. The feature follows the same pattern as the existing task data table implementation and provides:
- Conditional UI: Bulk action buttons appear only when shots are selected
- Intuitive Interface: Dropdown buttons in task column headers with colored status badges
- Bulk Operations: Update task status for multiple shots simultaneously
- User Feedback: Toast notifications for success/error states
- Consistent Design: Matches existing UI patterns and styling
Next Steps: Test the functionality in the application to ensure it works as expected and provides a smooth user experience.