Skip to content

feat: bulk delete builds#378

Merged
nGervasyuk merged 2 commits into
Visual-Regression-Tracker:masterfrom
nGervasyuk:feat/bulk-delete-builds
Jul 17, 2026
Merged

feat: bulk delete builds#378
nGervasyuk merged 2 commits into
Visual-Regression-Tracker:masterfrom
nGervasyuk:feat/bulk-delete-builds

Conversation

@nGervasyuk

@nGervasyuk nGervasyuk commented Jul 16, 2026

Copy link
Copy Markdown
Collaborator

What & why

The build list only allowed deleting one build at a time through the per-item context menu. Cleaning up many builds (stale branches, seed/CI runs) was tedious. This adds multi-select bulk deletion.

Changes

  • Checkbox on every build item. Once any build is selected, a bulk action bar appears above the list with N selected, a page select-all (with indeterminate state), Delete and Clear.
  • Cross-page selection: selection persists across pagination pages, so builds from different pages can be deleted in one go. It resets on project change and after a delete.
  • Resilient delete: runs DELETE /builds/:id per id with a per-item catch, so one failure doesn't abort the rest. Separate success/error snackbars (N deleted / Failed to delete N).
  • Post-delete UX: deselects the currently open build if it was removed, and clamps to a valid page instead of leaving you on an empty page (also fixed for single delete).
  • Row click still opens the build (checkbox uses stopPropagation).

No backend change — there's no bulk endpoint, so deletion fans out client-side over the existing per-build endpoint.

Screenshots

bulk delete 1 bulk delete 2
bulk.delete.mov

Testing

  • tsc --noEmit, eslint, prettier — clean on changed files.
  • Updated the project-page-test-run-list.png Playwright snapshot (build items now render a checkbox).
  • Verified locally: per-item and cross-page selection, select-all, bulk delete with mixed success, page clamping, and deselection of the open build.

@nGervasyuk nGervasyuk self-assigned this Jul 16, 2026
@nGervasyuk
nGervasyuk requested a review from pashidlos July 16, 2026 11:08
@nGervasyuk
nGervasyuk force-pushed the feat/bulk-delete-builds branch from 419921a to fb8def8 Compare July 16, 2026 11:58

@pashidlos pashidlos left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Add multi-select deletion to the build list, which previously only
supported deleting one build at a time via the per-item menu.

- Checkbox on every build item; a bulk action bar appears once any are
  selected, showing "N selected", a page select-all (with indeterminate
  state), Delete and Clear
- Selection persists across pagination pages, so builds from different
  pages can be deleted together; it resets on project change
- Bulk delete runs DELETE /builds/:id per id with a per-item catch, so a
  single failure doesn't abort the rest; separate success/error snackbars
- Deselects the open build if it was removed; after deletion the list
  clamps to a valid page instead of showing an empty page
@nGervasyuk
nGervasyuk force-pushed the feat/bulk-delete-builds branch from fb8def8 to 345e252 Compare July 17, 2026 19:33
@sonarqubecloud

Copy link
Copy Markdown

@nGervasyuk
nGervasyuk merged commit e1b6890 into Visual-Regression-Tracker:master Jul 17, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants