diff --git a/client/src/components/DataDialog/DataDialog.vue b/client/src/components/DataDialog/DataDialog.vue
index a0775f4fff4..f1b498fcde5 100644
--- a/client/src/components/DataDialog/DataDialog.vue
+++ b/client/src/components/DataDialog/DataDialog.vue
@@ -78,7 +78,7 @@ export default {
},
allowUpload: {
type: Boolean,
- default: false,
+ default: true,
},
},
data() {
diff --git a/client/src/components/Upload/RulesInput.vue b/client/src/components/Upload/RulesInput.vue
index 085005e90a9..bfef378dcaa 100644
--- a/client/src/components/Upload/RulesInput.vue
+++ b/client/src/components/Upload/RulesInput.vue
@@ -22,18 +22,16 @@
-
{{ l("Select dataset to load") }}
-
-
-
-
-
+
+ History dataset
+
+
+
+ {{ l("Select") }}
+
+
+ {{ selectedDatasetName }}
+
@@ -82,10 +80,15 @@ import UploadUtils from "mvc/upload/upload-utils";
import axios from "axios";
import { getAppRoot } from "onload/loadConfig";
import { filesDialog } from "utils/data";
+import { FontAwesomeIcon } from "@fortawesome/vue-fontawesome";
+import { library } from "@fortawesome/fontawesome-svg-core";
+import { faEdit } from "@fortawesome/free-solid-svg-icons";
+library.add(faEdit);
Vue.use(BootstrapVue);
export default {
+ components: { FontAwesomeIcon },
mixins: [UploadBoxMixin],
data() {
return {
@@ -93,12 +96,12 @@ export default {
datasets: [],
ftpFiles: [],
uris: [],
- datasetsSet: false,
topInfo: _l("Tabular source data to extract collection files and metadata from"),
enableReset: false,
enableBuild: false,
dataType: "datasets",
selectedDatasetId: null,
+ selectedDatasetName: null,
sourceContent: "",
selectionType: "paste",
btnBuildTitle: _l("Build"),
@@ -113,17 +116,7 @@ export default {
watch: {
selectionType: function (selectionType) {
if (selectionType == "dataset" && !this.datasetsSet) {
- const Galaxy = getGalaxyInstance();
- const history = Galaxy && Galaxy.currHistoryPanel && Galaxy.currHistoryPanel.model;
- const historyContentModels = history.contents.models;
- for (const historyContentModel of historyContentModels) {
- const attr = historyContentModel.attributes;
- if (attr.history_content_type !== "dataset") {
- continue;
- }
- this.datasets.push(attr);
- }
- this.datasetsSet = true;
+ this.onSelectDataset();
} else if (selectionType == "ftp") {
UploadUtils.getRemoteFiles((ftp_files) => {
this.sourceContent = ftp_files.map((file) => file["path"]).join("\n");
@@ -170,6 +163,22 @@ export default {
this._buildSelection(this.sourceContent);
},
+ onSelectDataset: function () {
+ const galaxy = getGalaxyInstance();
+ galaxy.data.dialog(
+ (response) => {
+ this.selectedDatasetId = response.id;
+ this.selectedDatasetName = response.name;
+ },
+ {
+ multiple: false,
+ library: false,
+ format: null,
+ allowUpload: false,
+ }
+ );
+ },
+
_buildSelection: function (content) {
const selectionType = this.selectionType;
const selection = {};
diff --git a/lib/galaxy/selenium/navigates_galaxy.py b/lib/galaxy/selenium/navigates_galaxy.py
index 56ea85ab46c..8bebc6f8032 100644
--- a/lib/galaxy/selenium/navigates_galaxy.py
+++ b/lib/galaxy/selenium/navigates_galaxy.py
@@ -648,10 +648,10 @@ class NavigatesGalaxy(HasDriver):
input_type_element = upload.rule_select_input_type.wait_for_visible()
self.select2_set_value(input_type_element, input_description)
- def upload_rule_set_dataset(self, dataset_description="1:"):
+ def upload_rule_set_dataset(self, row=1):
upload = self.components.upload
- rule_dataset_element = upload.rule_dataset_selector.wait_for_visible()
- self.select2_set_value(rule_dataset_element, dataset_description)
+ upload.rule_dataset_selector.wait_for_visible()
+ upload.rule_dataset_selector_row(rowindex=row).wait_for_and_click()
def rule_builder_set_collection_name(self, name):
rule_builder = self.components.rule_builder
diff --git a/lib/galaxy/selenium/navigation.yml b/lib/galaxy/selenium/navigation.yml
index d977a78e738..9debac86940 100644
--- a/lib/galaxy/selenium/navigation.yml
+++ b/lib/galaxy/selenium/navigation.yml
@@ -548,7 +548,10 @@ upload:
rule_source_content: 'textarea.upload-rule-source-content'
rule_select_data_type: '.rule-data-type'
rule_select_input_type: '.rule-select-type'
- rule_dataset_selector: '.upload-rule-option .dataset-selector'
+ rule_dataset_selector:
+ selector: '.selection-dialog-modal'
+ rule_dataset_selector_row:
+ selector: '.selection-dialog-modal [aria-rowindex="${rowindex}"]'
rule_builder:
selectors:
diff --git a/lib/galaxy_test/selenium/test_uploads.py b/lib/galaxy_test/selenium/test_uploads.py
index f8c8d238062..99f7f3710a3 100644
--- a/lib/galaxy_test/selenium/test_uploads.py
+++ b/lib/galaxy_test/selenium/test_uploads.py
@@ -154,7 +154,7 @@ PRJDA60709 SAMD00016382 DRX000480 ftp.sra.ebi.ac.uk/vol1/fastq/DRR000/DRR0
self.upload_rule_start()
self.upload_rule_set_data_type("Collection")
self.upload_rule_set_input_type("History Dataset")
- self.upload_rule_set_dataset("1:")
+ self.upload_rule_set_dataset(1)
self.screenshot("rules_example_2_1_inputs")
self.upload_rule_build()
rule_builder = self.components.rule_builder
@@ -179,7 +179,7 @@ PRJDA60709 SAMD00016382 DRX000480 ftp.sra.ebi.ac.uk/vol1/fastq/DRR000/DRR0
self.upload_rule_start()
self.upload_rule_set_data_type("Collection")
self.upload_rule_set_input_type("History Dataset")
- self.upload_rule_set_dataset("1:")
+ self.upload_rule_set_dataset(1)
self.screenshot("rules_example_3_1_inputs")
self.upload_rule_build()
rule_builder = self.components.rule_builder
@@ -273,7 +273,7 @@ PRJDA60709 SAMD00016382 DRX000480 ftp.sra.ebi.ac.uk/vol1/fastq/DRR000/DRR0
self.upload_rule_start()
self.upload_rule_set_data_type("Collection")
self.upload_rule_set_input_type("History Dataset")
- self.upload_rule_set_dataset("1:")
+ self.upload_rule_set_dataset(1)
self.screenshot("rules_example_6_1_paste")
self.upload_rule_build()
@@ -316,7 +316,7 @@ PRJDA60709 SAMD00016382 DRX000480 ftp.sra.ebi.ac.uk/vol1/fastq/DRR000/DRR0
self.upload_rule_start()
self.upload_rule_set_data_type("Collection")
self.upload_rule_set_input_type("History Dataset")
- self.upload_rule_set_dataset("1:")
+ self.upload_rule_set_dataset(1)
# @selenium_test
# def test_rules_example_5_matching_collections(self):