diff --git a/client/src/components/Workflow/WorkflowList.vue b/client/src/components/Workflow/WorkflowList.vue
index 01b0e3f6e3f..f4adeb7fc14 100644
--- a/client/src/components/Workflow/WorkflowList.vue
+++ b/client/src/components/Workflow/WorkflowList.vue
@@ -59,10 +59,12 @@
- bookmarkWorkflow(row.item, checked)"
- />
+
+
+
+
+
+
@@ -89,23 +91,17 @@
import _l from "utils/localization";
import { FontAwesomeIcon } from "@fortawesome/vue-fontawesome";
import { library } from "@fortawesome/fontawesome-svg-core";
-import { faPlus } from "@fortawesome/free-solid-svg-icons";
-import { faSpinner } from "@fortawesome/free-solid-svg-icons";
-import { faUpload } from "@fortawesome/free-solid-svg-icons";
-import { faGlobe } from "@fortawesome/free-solid-svg-icons";
-import { faShareAlt } from "@fortawesome/free-solid-svg-icons";
-
+import { faPlus, faShareAlt, faGlobe, faUpload, faSpinner, faStar } from "@fortawesome/free-solid-svg-icons";
+import { faStar as farStar } from "@fortawesome/free-regular-svg-icons";
import { getAppRoot } from "onload/loadConfig";
import { Services } from "./services";
import Tags from "components/Common/Tags";
import WorkflowDropdown from "./WorkflowDropdown";
import UtcDate from "components/UtcDate";
+import { getGalaxyInstance } from "app";
+
+library.add(faPlus, faUpload, faSpinner, faGlobe, faShareAlt, farStar, faStar);
-library.add(faPlus);
-library.add(faUpload);
-library.add(faSpinner);
-library.add(faGlobe);
-library.add(faShareAlt);
export default {
components: {
FontAwesomeIcon,
@@ -203,8 +199,6 @@ export default {
window.location = `${this.root}workflows/run?id=${workflow.id}`;
},
bookmarkWorkflow: function (workflow, checked) {
- // This reloads the whole page, so that the workflow appears in the tool panel.
- // Ideally we would notify only the tool panel of a change
const id = workflow.id;
const tags = workflow.tags;
const data = {
@@ -213,8 +207,22 @@ export default {
};
this.services
.updateWorkflow(id, data)
- .then(() => {
- window.location = `${getAppRoot()}workflows/list`;
+ .then(({ id, name }) => {
+ if (checked) {
+ const indexToRemove = getGalaxyInstance().config.stored_workflow_menu_entries.findIndex(
+ (workflow) => workflow.id === id
+ );
+ getGalaxyInstance().config.stored_workflow_menu_entries.splice(indexToRemove, 1);
+ } else {
+ getGalaxyInstance().config.stored_workflow_menu_entries.push({ id: id, name: name });
+ }
+
+ this.workflows.find((workflow) => {
+ if (workflow.id === id) {
+ workflow.show_in_tool_panel = !checked;
+ return true;
+ }
+ });
})
.catch((error) => {
this.onError(error);