Description:
Implement bulk task actions in CCSync so users can select multiple tasks and mark them as completed or deleted.
Requirements / Steps:
- Add a small checkbox on the left of each task row in the table.
- Add a “Select All” checkbox in the table header row to select/deselect all tasks.
- Maintain a state containing only the UUIDs of selected tasks.
- When one or more tasks are selected, display a floating/top button panel with:
- “Mark as Completed”
- “Delete”
- On clicking either button:
- Show a confirmation dialog to the user.
- Upon confirmation, trigger a job that calls a new backend endpoint (POST /complete-tasks or /delete-tasks) to mark multiple tasks as completed or deleted.
- Ensure this endpoint handles multiple UUIDs in a single request.
- Keep the UI responsive and show a loader or feedback while the operation is in progress.
Acceptance Criteria:
- Tasks can be individually selected.
- “Select All” works correctly.
- Selected tasks’ UUIDs are stored in frontend state.
- Confirmation dialog appears before completing or deleting tasks.
- Backend endpoint successfully updates multiple tasks in one request.
- UI updates immediately after operation.
Notes:
The backend endpoint should be distinct from complete-task (single task), and delete-task (multiple tasks) and handle arrays of UUIDs.
Consider edge cases: no tasks selected, partial failures, network errors.
Description:
Implement bulk task actions in CCSync so users can select multiple tasks and mark them as completed or deleted.
Requirements / Steps:
Acceptance Criteria:
Notes:
The backend endpoint should be distinct from complete-task (single task), and delete-task (multiple tasks) and handle arrays of UUIDs.
Consider edge cases: no tasks selected, partial failures, network errors.