-
Notifications
You must be signed in to change notification settings - Fork 60
feat(tasks): implement bulk task actions (complete/delete) #330
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(tasks): implement bulk task actions (complete/delete) #330
Conversation
- Added checkboxes to task rows and "Select All" in header - Implemented floating action panel for selected tasks - Added backend endpoints for bulk complete and delete - Updated frontend state to track selected UUIDs - Added confirmation dialogs and loading states - Added comprehensive tests for bulk selection and actions - Fixes: CCExtractor#178
|
Thank you for opening this PR! Before a maintainer takes a look, it would be really helpful if you could walk through your changes using GitHub's review tools. Please take a moment to:
More information on how to conduct a self review: This helps make the review process smoother and gives us a clearer understanding of your thought process. Once you've added your self-review, we'll continue from our side. Thank you! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
added bulk utility functions for complete/delete
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
added checkbox column to task rows and also deleted tasks have disabled checkboxes since they can't be bulk actioned
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
reorganized tests for better readability and added comprehensive tests for selection logic, bulk actions (complete/delete), and edge cases
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
added unit tests for bulk utility functions
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
new routes added
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
returns map[string]string (uuid → error) to collect individual task failures and optimized from N syncs to single sync cycle pattern (SetConfig -> InitialSync -> Loop -> FinalSync)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
returns map[string]string (uuid → error) to collect individual task failures and optimized from N syncs to single sync cycle pattern (SetConfig -> InitialSync -> Loop -> FinalSync)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
added bulk request body structs, it is using array for taskUUIDs to accept multiple tasks identifiers in one request.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
use DeleteTasksInTaskwarrior signature that returns a failed tasks map. Logs individual failures and final success/failure counts to DevLogs for debugging visibility.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
use CompleteTasksInTaskwarrior signature that returns a failed tasks map. logs individual failures and final success/failure counts to DevLogs for debugging visibility.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
implemented bulk selection with Set state and floating action bar triggers bulk complete/delete via new endpoints
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
self-review completed! ready for review.
|
Looks Great! |
Description
This PR introduces bulk task actions to CCSync, allowing users to efficiently manage multiple tasks at once. Users can now select multiple tasks via checkboxes and perform bulk operations like "Mark as Completed" or "Delete" through a floating action panel.
Key Enhancements
POST /complete-tasks) and bulk delete (POST /delete-tasks)Implementation Details
The bulk selection state is managed locally within the
Taskscomponent using aSetof UUIDs to ensure O(1) lookups and efficient updates.selectedTaskUUIDsstate tracks which tasks are currently selected.selectedTaskUUIDs.size > 0./complete-tasksand/delete-tasks.uuids.SetConfig → InitialSync → Loop(operations) → FinalSyncFixes: #178
Checklist
npx prettier --write .(for formatting)gofmt -w .(for Go backend)npm test(for JS/TS testing)Additional Notes
Video: Click here to see
Screenshots: