diff --git a/client/src/components/Masthead/MastheadItem.vue b/client/src/components/Masthead/MastheadItem.vue index 561db183262..79702acd17a 100644 --- a/client/src/components/Masthead/MastheadItem.vue +++ b/client/src/components/Masthead/MastheadItem.vue @@ -41,6 +41,7 @@ :target="item.target || '_parent'" role="menuitem" @click="open(item, $event)" + :disabled="item.disabled === true" > {{ item.title }} diff --git a/client/src/components/Workflow/Editor/Node.vue b/client/src/components/Workflow/Editor/Node.vue index 53ac67ea4cd..908673387eb 100644 --- a/client/src/components/Workflow/Editor/Node.vue +++ b/client/src/components/Workflow/Editor/Node.vue @@ -321,6 +321,7 @@ export default { }, setData(data) { this.config_form = data.config_form; + this.content_id = this.config_form?.id; this.tool_state = data.tool_state; this.errors = data.errors; this.annotation = data.annotation; diff --git a/client/src/layout/menu.js b/client/src/layout/menu.js index a6977138009..d4bb3e19fb0 100644 --- a/client/src/layout/menu.js +++ b/client/src/layout/menu.js @@ -254,7 +254,7 @@ export function fetchMenu(options = {}) { menu: [ { title: `${_l("Logged in as")} ${Galaxy.user.get("email")}`, - class: "dropdown-item disabled", + disabled: true, }, { title: _l("Preferences"), diff --git a/client/src/mvc/tool/tool-form-base.js b/client/src/mvc/tool/tool-form-base.js index 89f2b2d789a..e3f180b1b27 100644 --- a/client/src/mvc/tool/tool-form-base.js +++ b/client/src/mvc/tool/tool-form-base.js @@ -151,6 +151,7 @@ export default FormBase.extend({ // button for version selection var versions_button = new Ui.ButtonMenu({ icon: "fa-cubes", + cls: "btn btn-secondary float-right tool-versions", title: options.narrow ? null : "Versions", tooltip: "Select another tool version", }); diff --git a/lib/galaxy/config/__init__.py b/lib/galaxy/config/__init__.py index 353510c68eb..901bfe6b244 100644 --- a/lib/galaxy/config/__init__.py +++ b/lib/galaxy/config/__init__.py @@ -623,11 +623,7 @@ class GalaxyAppConfiguration(BaseAppConfiguration, CommonConfigurationMixin): log.warning("preserve_python_environment set to unknown value [%s], defaulting to legacy_only") self.preserve_python_environment = "legacy_only" self.nodejs_path = kwargs.get("nodejs_path") - # Older default container cache path, I don't think anyone is using it anymore and it wasn't documented - we - # should probably drop the backward compatiblity to save the path check. - self.container_image_cache_path = self._in_data_dir(kwargs.get("container_image_cache_path", "container_images")) - if not os.path.exists(self.container_image_cache_path): - self.container_image_cache_path = self._in_root_dir(kwargs.get("container_image_cache_path", self._in_data_dir("container_cache"))) + self.container_image_cache_path = self._in_data_dir(kwargs.get("container_image_cache_path", "container_cache")) self.output_size_limit = int(kwargs.get('output_size_limit', 0)) # activation_email was used until release_15.03 activation_email = kwargs.get('activation_email') diff --git a/lib/galaxy/selenium/navigates_galaxy.py b/lib/galaxy/selenium/navigates_galaxy.py index 26095b9e6b6..069e2c3caab 100644 --- a/lib/galaxy/selenium/navigates_galaxy.py +++ b/lib/galaxy/selenium/navigates_galaxy.py @@ -1054,18 +1054,17 @@ class NavigatesGalaxy(HasDriver): workflow_button = workflow_row.find_element_by_css_selector(workflow_selector) workflow_button.click() - def workflow_index_click_option(self, option_title, workflow_index=0): - self.workflow_click_option(".workflow-dropdown", workflow_index) + def select_dropdown_item(self, option_title): menu_element = self.wait_for_selector_visible(".dropdown-menu.show") menu_options = menu_element.find_elements_by_css_selector("a.dropdown-item") - found_option = False for menu_option in menu_options: if option_title in menu_option.text: menu_option.click() - found_option = True - break + return True - if not found_option: + def workflow_index_click_option(self, option_title, workflow_index=0): + self.workflow_click_option(".workflow-dropdown", workflow_index) + if not self.select_dropdown_item(option_title): raise AssertionError("Failed to find workflow action option with title [%s]" % option_title) def workflow_index_click_tag_display(self, workflow_index=0): diff --git a/lib/galaxy/selenium/navigation.yml b/lib/galaxy/selenium/navigation.yml index 7ad27ea5d31..83d6b8c841e 100644 --- a/lib/galaxy/selenium/navigation.yml +++ b/lib/galaxy/selenium/navigation.yml @@ -412,6 +412,7 @@ workflow_editor: label_input: "[tour_id='__label'] input" annotation_input: "[tour_id='__annotation'] textarea" + tool_version_button: ".tool-versions" connector_for: "div[output-handle-id='${source_id}'][input-handle-id='${sink_id}']" diff --git a/lib/galaxy_test/selenium/test_workflow_editor.py b/lib/galaxy_test/selenium/test_workflow_editor.py index b7b9247bcdf..e5909de1149 100644 --- a/lib/galaxy_test/selenium/test_workflow_editor.py +++ b/lib/galaxy_test/selenium/test_workflow_editor.py @@ -325,6 +325,30 @@ steps: self.screenshot("workflow_editor_edit_menu") self.workflow_editor_click_option("Save As") + @selenium_test + def test_editor_tool_upgrade(self): + workflow_populator = self.workflow_populator + workflow_id = workflow_populator.upload_yaml_workflow("""class: GalaxyWorkflow +inputs: [] +steps: + - tool_id: multiple_versions + tool_version: 0.1 + label: multiple_versions + state: + foo: bar + """, exact_tools=True) + self.workflow_index_open() + self.workflow_index_click_option("Edit") + editor = self.components.workflow_editor + editor.node._(label="multiple_versions").wait_for_and_click() + editor.tool_version_button.wait_for_and_click() + assert self.select_dropdown_item('Switch to 0.2'), 'Switch to tool version dropdown item not found' + self.screenshot("workflow_editor_version_update") + self.assert_has_changes_and_save() + self.sleep_for(self.wait_types.UX_RENDER) + workflow = self.workflow_populator.download_workflow(workflow_id) + assert workflow['steps']['0']['tool_version'] == '0.2' + @selenium_test def test_editor_tool_upgrade_message(self): workflow_populator = self.workflow_populator