From ec5923cd181a65d96e6478c782c0cae93242d1fc Mon Sep 17 00:00:00 2001 From: Ahmed Awan Date: Fri, 14 Jun 2024 16:09:17 -0500 Subject: [PATCH] ensure correct version routed to on workflow run This is a bug caused in https://github.com/galaxyproject/galaxy/pull/18378 which made the `SaveChangesModal` useless because the version before the save was routed to. Now, we instead append the version to the route after the user confirms the save (or doesn't) in the modal. --- client/src/components/Workflow/Editor/Index.vue | 10 +++++----- .../components/Workflow/Editor/SaveChangesModal.vue | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/client/src/components/Workflow/Editor/Index.vue b/client/src/components/Workflow/Editor/Index.vue index 6025c523050c..79cf4e452275 100644 --- a/client/src/components/Workflow/Editor/Index.vue +++ b/client/src/components/Workflow/Editor/Index.vue @@ -792,12 +792,9 @@ export default { this.report.markdown = markdown; }, onRun() { - const runUrl = `/workflows/run?id=${this.id}${ - this.version !== undefined ? `&version=${this.version}` : "" - }`; - this.onNavigate(runUrl); + this.onNavigate(`/workflows/run?id=${this.id}`, false, false, true); }, - async onNavigate(url, forceSave = false, ignoreChanges = false) { + async onNavigate(url, forceSave = false, ignoreChanges = false, appendVersion = false) { if (this.isNewTempWorkflow) { await this.onCreate(); } else if (this.hasChanges && !forceSave && !ignoreChanges) { @@ -810,6 +807,9 @@ export default { await this.onSave(); } + if (appendVersion && this.version !== undefined) { + url += `&version=${this.version}`; + } this.hasChanges = false; await nextTick(); this.$router.push(url); diff --git a/client/src/components/Workflow/Editor/SaveChangesModal.vue b/client/src/components/Workflow/Editor/SaveChangesModal.vue index 9a2b5bbda2d0..921fa76a4b9e 100644 --- a/client/src/components/Workflow/Editor/SaveChangesModal.vue +++ b/client/src/components/Workflow/Editor/SaveChangesModal.vue @@ -24,7 +24,7 @@ const busy = ref(false); const emit = defineEmits<{ /** Proceed with or without saving the changes */ - (e: "on-proceed", url: string, forceSave: boolean, ignoreChanges: boolean): void; + (e: "on-proceed", url: string, forceSave: boolean, ignoreChanges: boolean, appendVersion: boolean): void; /** Update the nav URL prop */ (e: "update:nav-url", url: string): void; /** Update the show modal boolean prop */ @@ -49,13 +49,13 @@ function closeModal() { function dontSave() { busy.value = true; - emit("on-proceed", props.navUrl, false, true); + emit("on-proceed", props.navUrl, false, true, true); } function saveChanges() { busy.value = true; closeModal(); - emit("on-proceed", props.navUrl, true, false); + emit("on-proceed", props.navUrl, true, false, true); }