Add bulk multi-select actions to the Drive tab#308
Merged
Conversation
Select multiple owned files with row checkboxes (Shift-click for a range, header checkbox for the whole page) and apply one action to all of them from a single dialog: share/unshare with your teams, or create a share link with the same password/expiry/max-downloads on every selected file. Adds a rows-per-page selector (25/50/100/All) so selection can span the whole Drive. Backend: two bulk endpoints reusing existing helpers — PATCH /api/files/team-sharing/bulk and POST /api/files/share/bulk — each returning per-file succeeded/failed ids; non-owned ids are skipped. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds shift/checkbox multi-select to the Drive tab so a single dialog can apply the same action to many files at once — the workflow requested for setting the same password or team-sharing across a large set of files.
DrivePanel.vue: per-row checkboxes on files you own (files shared with you via a team are read-only and not selectable), a header "select all on page" checkbox with indeterminate state, and Shift-click range selection. A bulk action bar shows the count and opens the dialog.BulkFileShareDialog.vue:files.py): two bulk endpoints reusing existing helpers (_get_owned_file,_set_file_team_sharing,create_access_token), no migration:PATCH /api/files/team-sharing/bulkPOST /api/files/share/bulk{ succeeded, failed }per-file id lists.tabs/drive-tab.mdandreference/drive.md.Testing
backend/tests/test_files_bulk.py(new): bulk team-share enable/disable, bulk share-link creation with shared settings, and non-owned ids landing infailed. All pass.bun run lint,bun run typecheck, andbun run buildpass../check.shpasses except one pre-existing flaky MCP heartbeat-streaming timing test (test_mcp_jsonrpc_tool_calls.py), which passes in isolation and is unrelated to these changes.🤖 Generated with Claude Code