Skip to content

Library: multi-select datasets with bulk pipeline, training, and delete actions - #1827

Merged
BryonLewis merged 7 commits into
mainfrom
dev/library-bulk-delete
Aug 10, 2026
Merged

Library: multi-select datasets with bulk pipeline, training, and delete actions#1827
BryonLewis merged 7 commits into
mainfrom
dev/library-bulk-delete

Conversation

@mattdawkins

@mattdawkins mattdawkins commented Aug 5, 2026

Copy link
Copy Markdown
Member
  • The desktop Library (Recents) table gains a selection checkbox column on the right, replacing the per-row delete button; the column header is a select-all (indeterminate when partial, follows the active search filter)
  • When anything is selected, Run Pipeline, Run Training, and Delete (N) buttons appear to the left of the search box (which keeps its position); delete shows one confirmation for all selected datasets (source media and originally imported annotation files are untouched)
  • Run Pipeline / Run Training navigate to their pages with the checked datasets pre-staged via a datasetIds query parameter
  • Bulk pipeline runs now launch only on staged datasets compatible with the selected pipeline

🤖 Generated with Claude Code

show-select checkboxes with header select-all; a Delete (N) button
confirms once and removes every selected dataset.
…te actions

Selection column replaces the per-row trash; Run Pipeline and Run Training
navigate to their pages with the checked datasets pre-staged via query.
@mattdawkins mattdawkins changed the title Library: multi-select datasets for bulk delete Library: multi-select datasets with bulk pipeline, training, and delete actions Aug 6, 2026
@BryonLewis
BryonLewis self-requested a review August 10, 2026 16:23
BryonLewis
BryonLewis previously approved these changes Aug 10, 2026

@BryonLewis BryonLewis left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I moved the checkbox to the right side to be more inline with the web/girder vesion as well as other software.

I also added a check to deletion to not fail on the first deleted item.

@mattdawkins

Copy link
Copy Markdown
Member Author

I thought it was on the right side?

@BryonLewis

Copy link
Copy Markdown
Collaborator

I meant the left side

@mattdawkins

Copy link
Copy Markdown
Member Author

I had it on the left side originally, didn't like it, and moved it to the right. Don't more software use right-aligned checkboxes here?

@BryonLewis

Copy link
Copy Markdown
Collaborator

aligning with the web version:
image

@mattdawkins

Copy link
Copy Markdown
Member Author

Well, maybe the web version should be right aligned too?

In desktop anyways, looked a bit cluttered

@BryonLewis

Copy link
Copy Markdown
Collaborator

LLM response:

in UI design if you have a list of datasets or objects and want to perform actions on them where should the checkbox go, on the left or the right side?

Left side, as a strong default.

Why left wins:

Reading order — in LTR languages, eyes scan left to right. Putting the checkbox first means the selection affordance is the first thing encountered, before the person even reads the item name. This primes "I'm selecting things" mode.
Convention — Gmail, Google Drive, Finder/Explorer list views, most admin tables (Notion, Airtable, Linear) all put checkboxes on the far left. Breaking this convention makes people hunt for it.
Alignment with row selection logic — the checkbox typically sits before or in place of a leading icon/avatar, so the row reads as: [select] → [identity] → [metadata] → [actions]. That mirrors how people think: "which one, then what about it."
Leaves the right side free — the right edge of a row/table is prime real estate for per-row actions (edit, delete, "⋯" menu), status badges, or trailing metadata. Selection and action controls competing for the same side gets cramped and confusing.

When right (or elsewhere) might make sense:

Mobile card layouts sometimes put selection as a toggle in a corner (top-right) triggered by a "select" mode rather than always-visible checkboxes — because screen width is tight and swipe/long-press interactions dominate.
RTL languages (Arabic, Hebrew) — mirror everything, so the checkbox moves to the right to preserve the same reading-order logic.
If your rows already have a leading icon/avatar that's essential for scanning (e.g. a file-type icon), some designs put the checkbox as a hover-reveal that replaces that icon on hover/select, rather than adding a new column — still functionally "left," just overlaid.

One more practical tip: make the checkbox appear on hover if you want a cleaner default view, but keep it pinned/visible once a row is selected — losing an active selection because the checkbox disappeared is a classic frustration bug.

@BryonLewis
BryonLewis merged commit d4796c7 into main Aug 10, 2026
3 checks passed
@BryonLewis
BryonLewis deleted the dev/library-bulk-delete branch August 10, 2026 16:51
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