Skip to content

Commit

Permalink
Merge pull request #18416 from mvdbeek/fix_collection_type_batch_stat…
Browse files Browse the repository at this point in the history
…us_drag

[24.0] Fix collection map over status for dragged collections
  • Loading branch information
mvdbeek authored Jun 17, 2024
2 parents 86b6eba + 74ae354 commit 4b17f1b
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 2 deletions.
18 changes: 17 additions & 1 deletion client/src/components/Form/Elements/FormData/FormData.vue
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ const props = withDefaults(
};
extensions?: Array<string>;
type?: string;
collectionTypes?: Array<string>;
flavor?: string;
tag?: string;
}>(),
Expand All @@ -45,6 +46,7 @@ const props = withDefaults(
value: undefined,
extensions: () => [],
type: "data",
collectionTypes: undefined,
flavor: undefined,
tag: undefined,
}
Expand Down Expand Up @@ -311,14 +313,28 @@ function handleIncoming(incoming: Record<string, unknown>, partial = true) {
const newName = v.name ? v.name : newId;
const newSrc =
v.src || (v.history_content_type === "dataset_collection" ? SOURCE.COLLECTION : SOURCE.DATASET);
const newValue = {
const newValue: DataOption = {
id: newId,
src: newSrc,
batch: false,
map_over_type: undefined,
hid: newHid,
name: newName,
keep: true,
tags: [],
};
if (v.collection_type && props.collectionTypes?.length > 0) {
if (!props.collectionTypes.includes(v.collection_type)) {
const mapOverType = props.collectionTypes.find((collectionType) =>
v.collection_type.endsWith(collectionType)
);
if (!mapOverType) {
return false;
}
newValue["batch"] = true;
newValue["map_over_type"] = mapOverType;
}
}
// Verify that new value has corresponding option
const keepKey = `${newId}_${newSrc}`;
const existingOptions = props.options && props.options[newSrc];
Expand Down
1 change: 1 addition & 0 deletions client/src/components/Form/Elements/FormData/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ export type DataOption = {
hid: number;
is_dataset?: boolean;
keep: boolean;
batch: boolean;
map_over_type?: string;
name: string;
src: string;
Expand Down
3 changes: 2 additions & 1 deletion client/src/components/Form/FormElement.vue
Original file line number Diff line number Diff line change
Expand Up @@ -288,7 +288,8 @@ const isOptional = computed(() => !isRequired.value && attrs.value["optional"] !
:optional="attrs.optional"
:options="attrs.options"
:tag="attrs.tag"
:type="props.type" />
:type="props.type"
:collection-types="attrs.collection_types" />
<FormDrilldown
v-else-if="props.type === 'drill_down'"
:id="id"
Expand Down
1 change: 1 addition & 0 deletions lib/galaxy/tools/parameters/basic.py
Original file line number Diff line number Diff line change
Expand Up @@ -2511,6 +2511,7 @@ def to_dict(self, trans, other_values=None):
# create dictionary and fill default parameters
other_values = other_values or {}
d = super().to_dict(trans)
d["collection_types"] = self.collection_types
d["extensions"] = self.extensions
d["multiple"] = self.multiple
d["options"] = {"hda": [], "hdca": [], "dce": []}
Expand Down

0 comments on commit 4b17f1b

Please sign in to comment.