Add a shared DatasetPicker component - #1911
Merged
Merged
Conversation
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
…e incompatible staged ids are pruned for stereo pipelines
BryonLewis
approved these changes
Sep 10, 2026
BryonLewis
left a comment
Collaborator
There was a problem hiding this comment.
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.
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.
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.vuepickerLabel/pickevent) for the web, where datasets come from a Girder dialog instead of a listing.headersprop for extra columns (Training and Pipelines add fps),row-actionsslot for per-row extras (Training's view button),compactto hide paging on short lists.dive-common/datasetPicker.tsholds 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