Skip to content

feat(ui): multi-select bulk delete and restore for documents#680

Merged
param20h merged 2 commits into
param20h:devfrom
nancysangani:feat/multi-select-bulk-delete
Jun 24, 2026
Merged

feat(ui): multi-select bulk delete and restore for documents#680
param20h merged 2 commits into
param20h:devfrom
nancysangani:feat/multi-select-bulk-delete

Conversation

@nancysangani

Copy link
Copy Markdown
Contributor

Closes #422

📝 What does this PR do?

Adds multi-select checkboxes to document items in the sidebar, a
contextual bulk action bar, and bulk restore support in the Trash tab.

New file: frontend/src/components/document/BulkActionBar.tsx
Modified: frontend/src/components/document/DocumentSidebar.tsx

Changes:

  • Checkboxes appear on hover (or stay visible when checked) next to
    every document in both the Active and Trash tabs
  • Selecting one or more documents shows a BulkActionBar below the
    tab headers with a count, action button, and clear (×) button
  • Active tab: bulk action bar shows Delete — calls
    DELETE /api/v1/documents/:id in parallel via Promise.allSettled,
    so partial failures are reported without blocking succeeded deletes
  • Trash tab: bulk action bar shows Restore — calls
    POST /api/v1/documents/:id/restore in parallel
  • Selection is cleared when switching tabs or after any bulk operation
  • Single-item delete and single-item restore buttons are unchanged

🗂️ Type of Change

  • ✨ New feature

✅ Self-Review Checklist

  • Branch based on dev, not main
  • No secrets / API keys added
  • No changes to main or HuggingFace deployment config
  • Follows existing code style and component patterns
  • Accessible — checkboxes have aria-label, action bar has
    role="toolbar" and aria-label
  • Uses Promise.allSettled so one failing delete/restore doesn't
    block the rest

@nancysangani nancysangani requested a review from param20h as a code owner June 24, 2026 06:59
@nancysangani

Copy link
Copy Markdown
Contributor Author

Hi @param20h please review the PR when you get a chance. Thanks!

@param20h param20h merged commit 00d53e1 into param20h:dev Jun 24, 2026
7 checks passed
@github-actions github-actions Bot added gssoc GirlScript Summer of Code 2026 issue/PR gssoc:approved Approved for GSSoC base points (+50 pts) level:intermediate +35 pts mentor:param20h Mentor for this PR type:frontend Frontend UI/UX labels Jun 24, 2026
@github-actions

Copy link
Copy Markdown

🎉 Congratulations on getting your Pull Request merged! 🎉

Thank you for contributing to PDF-Assistant-RAG as part of GSSoC '26! 🚀

Keep up the great work! ✨

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gssoc:approved Approved for GSSoC base points (+50 pts) gssoc GirlScript Summer of Code 2026 issue/PR level:intermediate +35 pts mentor:param20h Mentor for this PR type:frontend Frontend UI/UX

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(ui): Implement multi-select soft deletion and restoration of documents

2 participants