Unverified Commit 4b17f1b5 authored by Marius van den Beek's avatar Marius van den Beek Committed by GitHub
Browse files

Merge pull request #18416 from mvdbeek/fix_collection_type_batch_status_drag

[24.0] Fix collection map over status for dragged collections
parents 86b6ebac 74ae3541
Loading
Loading
Loading
Loading
+17 −1
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ const props = withDefaults(
        };
        extensions?: Array<string>;
        type?: string;
        collectionTypes?: Array<string>;
        flavor?: string;
        tag?: string;
    }>(),
@@ -45,6 +46,7 @@ const props = withDefaults(
        value: undefined,
        extensions: () => [],
        type: "data",
        collectionTypes: undefined,
        flavor: undefined,
        tag: undefined,
    }
@@ -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];
+1 −0
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@ export type DataOption = {
    hid: number;
    is_dataset?: boolean;
    keep: boolean;
    batch: boolean;
    map_over_type?: string;
    name: string;
    src: string;
+2 −1
Original line number Diff line number Diff line
@@ -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"
+1 −0
Original line number Diff line number Diff line
@@ -2511,6 +2511,7 @@ class DataCollectionToolParameter(BaseDataToolParameter):
        # 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": []}