diff --git a/client/package.json b/client/package.json index 2bc381f9237..053fc60a063 100644 --- a/client/package.json +++ b/client/package.json @@ -87,7 +87,8 @@ "vueisotope": "^3.1.2", "vuex": "^3.4.0", "vuex-cache": "^3.2.0", - "vuex-persist": "^3.1.3" + "vuex-persist": "^3.1.3", + "vuex-persistedstate": "^4.0.0" }, "scripts": { "watch": "gulp && yarn run save-build-hash && yarn run webpack-watch", diff --git a/client/src/components/Panels/Buttons/PanelViewButton.vue b/client/src/components/Panels/Buttons/PanelViewButton.vue new file mode 100644 index 00000000000..4bb5e22a01a --- /dev/null +++ b/client/src/components/Panels/Buttons/PanelViewButton.vue @@ -0,0 +1,102 @@ + + + diff --git a/client/src/components/Panels/Buttons/PanelViewMenuItem.vue b/client/src/components/Panels/Buttons/PanelViewMenuItem.vue new file mode 100644 index 00000000000..7e03eb20efc --- /dev/null +++ b/client/src/components/Panels/Buttons/PanelViewMenuItem.vue @@ -0,0 +1,52 @@ + + + diff --git a/client/src/components/Panels/Common/ToolSearch.vue b/client/src/components/Panels/Common/ToolSearch.vue index 11fe95f8f77..67c12215669 100644 --- a/client/src/components/Panels/Common/ToolSearch.vue +++ b/client/src/components/Panels/Common/ToolSearch.vue @@ -14,6 +14,10 @@ export default { DelayedInput, }, props: { + currentPanelView: { + type: String, + required: true, + }, query: { type: String, default: "", @@ -46,7 +50,7 @@ export default { this.loading = true; axios .get(`${getAppRoot()}api/tools`, { - params: { q }, + params: { q, view: this.currentPanelView }, }) .then((response) => { this.loading = false; diff --git a/client/src/components/Panels/ProviderAwareToolBox.vue b/client/src/components/Panels/ProviderAwareToolBox.vue new file mode 100644 index 00000000000..ad61547a267 --- /dev/null +++ b/client/src/components/Panels/ProviderAwareToolBox.vue @@ -0,0 +1,52 @@ + + + diff --git a/client/src/components/Panels/ProviderAwareToolBoxWorkflow.vue b/client/src/components/Panels/ProviderAwareToolBoxWorkflow.vue new file mode 100644 index 00000000000..2ab248a6097 --- /dev/null +++ b/client/src/components/Panels/ProviderAwareToolBoxWorkflow.vue @@ -0,0 +1,72 @@ + + + diff --git a/client/src/components/Panels/ToolBox.vue b/client/src/components/Panels/ToolBox.vue index fca9bd812ce..d57a03c7b64 100644 --- a/client/src/components/Panels/ToolBox.vue +++ b/client/src/components/Panels/ToolBox.vue @@ -4,12 +4,24 @@
+
Tools
- +
@@ -52,16 +64,17 @@ import ToolSection from "./Common/ToolSection"; import ToolSearch from "./Common/ToolSearch"; import { UploadButton, openGlobalUploadModal } from "components/Upload"; import FavoritesButton from "./Buttons/FavoritesButton"; +import PanelViewButton from "./Buttons/PanelViewButton"; import { filterToolSections, filterTools } from "./utilities"; import { getGalaxyInstance } from "app"; import { getAppRoot } from "onload"; import _l from "utils/localization"; export default { - name: "ToolBox", components: { UploadButton, FavoritesButton, + PanelViewButton, ToolSection, ToolSearch, }, @@ -81,6 +94,12 @@ export default { type: Array, required: true, }, + panelViews: { + type: Object, + }, + currentPanelView: { + type: String, + }, storedWorkflowMenuEntries: { type: Array, required: true, @@ -163,6 +182,9 @@ export default { this.buttonText = this.showSections ? "Hide Sections" : "Show Sections"; this.buttonIcon = this.showSections ? "fa fa-eye-slash" : "fa fa-eye"; }, + updatePanelView(panelView) { + this.$emit("updatePanelView", panelView); + }, }, }; diff --git a/client/src/components/Panels/ToolBoxWorkflow.vue b/client/src/components/Panels/ToolBoxWorkflow.vue index 64e98721273..8847b9d1958 100644 --- a/client/src/components/Panels/ToolBoxWorkflow.vue +++ b/client/src/components/Panels/ToolBoxWorkflow.vue @@ -2,11 +2,24 @@
+
+ +
Tools
- +
@@ -58,12 +71,14 @@ import _l from "utils/localization"; import ToolSection from "./Common/ToolSection"; import ToolSearch from "./Common/ToolSearch"; import { filterToolSections } from "./utilities"; +import PanelViewButton from "./Buttons/PanelViewButton"; export default { name: "ToolBox", components: { ToolSection, ToolSearch, + PanelViewButton, }, data() { return { @@ -76,6 +91,12 @@ export default { type: Array, required: true, }, + panelViews: { + type: Object, + }, + currentPanelView: { + type: String, + }, workflows: { type: Array, required: true, @@ -147,6 +168,9 @@ export default { onInsertWorkflowSteps(workflow) { this.$emit("onInsertWorkflowSteps", workflow.id, workflow.step_count); }, + updatePanelView(panelView) { + this.$emit("updatePanelView", panelView); + }, }, }; diff --git a/client/src/components/Workflow/Editor/Index.vue b/client/src/components/Workflow/Editor/Index.vue index 102fbe755ba..20d199190ef 100644 --- a/client/src/components/Workflow/Editor/Index.vue +++ b/client/src/components/Workflow/Editor/Index.vue @@ -39,8 +39,7 @@