Skip to content

Add a shared DatasetPicker component - #1911

Merged
BryonLewis merged 8 commits into
mainfrom
dev/dataset-picker
Sep 10, 2026
Merged

Add a shared DatasetPicker component#1911
BryonLewis merged 8 commits into
mainfrom
dev/dataset-picker

Conversation

@mattdawkins

@mattdawkins mattdawkins commented Sep 10, 2026

Copy link
Copy Markdown
Member

Review, Query, Training, Scoring and Pipelines each choose datasets differently today: an autocomplete (Review, Scoring on desktop), a browse button (Review, Scoring on web), a searchable data table with a plus button (Training, Pipelines) and a checkbox table with select all (Query). This PR adds one component to replace all of them and wires it into the two pages already on main, Training and Pipelines. Review, Query and Scoring follow in their own PRs.

dive-common/components/DatasetPicker.vue

  • Search field that filters by every listed column (name and type by default).
  • Table of the datasets on offer with an add button per row; already selected rows are greyed with a check.
  • "Select all (n)" adds everything the search currently lists that is not selected yet.
  • Optional browse button (pickerLabel / pick event) for the web, where datasets come from a Girder dialog instead of a listing.
  • headers prop for extra columns (Training and Pipelines add fps), row-actions slot for per-row extras (Training's view button), compact to hide paging on short lists.
  • Pages keep their own table of what they selected; the picker only offers.

dive-common/datasetPicker.ts holds the row type and the filtering / select-all logic, with a spec.

Training and Pipelines: their available-dataset tables are replaced by the picker; Pipelines drops its own search and select-all code. Verified in the desktop app: search, add one, select all of a search, clear the search, staged counts and the run/train buttons update.

🤖 Generated with Claude Code

https://claude.ai/code/session_01W1C4QY6hxjHaUPJfWPfQuu

mattdawkins and others added 6 commits September 9, 2026 22:38
Review, Query, Training, Scoring and Pipelines each grew their own way of
choosing datasets: an autocomplete, a searchable data table with a plus
button, a checkbox table with select all. This adds one component that
covers all of them (search field, list of the datasets on offer with an
add button per row, select all for whatever the search lists, and an
optional browse button for platforms without a listing) so the pages can
adopt it in follow-up changes. Nothing uses it yet.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W1C4QY6hxjHaUPJfWPfQuu
Both pages offered their datasets through their own data table with a
plus button (Pipelines also had its own search and select all); they now
share the picker, which keeps the fps column and Training's view button
through the picker's headers and row-actions slot. Training's staged
items are typed as the cache rows they always were.

The picker's search field is clearable, which yields null; filter on an
empty string in that case.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W1C4QY6hxjHaUPJfWPfQuu
Selected rows now show a clickable check that removes them, and a
"Remove all (n)" button drops every listed selection, mirroring select
all. Adding or removing keeps the picker at the same place on screen:
the pages list the selection above it, so growing that list used to
push the picker down under the user's pointer.

Training and Pipelines section titles and descriptions lose their card
padding so they line up with the tables and the picker under them.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W1C4QY6hxjHaUPJfWPfQuu
The available datasets no longer wait for a pipeline to be chosen; the
run button stays disabled until one is. The selected datasets and the
run button move below the picker, so adding to the selection no longer
pushes the list the user is working in down the page. That makes the
picker's scroll hold unnecessary, so it is removed.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W1C4QY6hxjHaUPJfWPfQuu
getAvailableItems still returned nothing without a selected pipeline,
which left the picker empty on entry despite the section now showing.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W1C4QY6hxjHaUPJfWPfQuu
Same order as the Pipelines page: configuration first (name, config
file, labels, the annotated-frames and fine-tuning options), then the
picker, then the selected datasets with the Train button. Interrupted
runs follow the selection instead of splitting the configuration from
the datasets.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W1C4QY6hxjHaUPJfWPfQuu

@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.

The previous search would search the type and the name of datasets. That mean that searching for 'mult' would bring up all multi datasets or searching 'image' would bring up all image-sequence datasets. I've modified it so there is a type filter for the type and search only searches the dataset name. I think that is more how User's would expect it to work.

Also did some minor changes to handle stagedIds that change after selecting a multicamera/stereo pipeline. Another change reduces the logic of trying to load all calibration files when not needed.

@BryonLewis
BryonLewis merged commit 72e06fe into main Sep 10, 2026
3 checks passed
@BryonLewis
BryonLewis deleted the dev/dataset-picker branch September 10, 2026 17:50
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