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):