+
+ @click.stop="onFavorite(activity)">
+ @click.stop="onFavorite(activity)">
diff --git a/client/src/composables/useActivityAction.ts b/client/src/composables/useActivityAction.ts
new file mode 100644
index 000000000000..3dc1babc7f84
--- /dev/null
+++ b/client/src/composables/useActivityAction.ts
@@ -0,0 +1,21 @@
+import { useRouter } from "vue-router/composables";
+
+import { type Activity } from "@/stores/activityStore";
+import { useUserStore } from "@/stores/userStore";
+
+export function useActivityAction() {
+ const router = useRouter();
+ const userStore = useUserStore();
+ const executeActivity = (activity: Activity) => {
+ if (activity.panel) {
+ userStore.toggleSideBar(activity.id);
+ }
+ if (activity.to) {
+ router.push(activity.to);
+ }
+ };
+
+ return {
+ executeActivity,
+ };
+}
diff --git a/client/src/stores/activitySetup.ts b/client/src/stores/activitySetup.ts
index ed03211f5306..724921368c9a 100644
--- a/client/src/stores/activitySetup.ts
+++ b/client/src/stores/activitySetup.ts
@@ -7,11 +7,12 @@ import { type EventData } from "@/stores/eventStore";
export const Activities = [
{
anonymous: false,
- description: "Displays currently active interactive tools (ITs), if these are enabled by the administrator.",
+ description: "Displays currently running interactive tools (ITs), if these are enabled by the administrator.",
icon: "fa-laptop",
id: "interactivetools",
mutable: false,
optional: false,
+ panel: false,
title: "Interactive Tools",
tooltip: "Show active interactive tools",
to: "/interactivetool_entry_points/list",
@@ -24,6 +25,7 @@ export const Activities = [
id: "upload",
mutable: false,
optional: false,
+ panel: false,
title: "Upload",
to: null,
tooltip: "Download from URL or upload files from disk",
@@ -36,6 +38,7 @@ export const Activities = [
id: "tools",
mutable: false,
optional: false,
+ panel: true,
title: "Tools",
to: null,
tooltip: "Search and run tools",
@@ -48,6 +51,7 @@ export const Activities = [
id: "workflows",
mutable: false,
optional: true,
+ panel: false,
title: "Workflows",
to: "/workflows/list",
tooltip: "Search and run workflows",
@@ -60,6 +64,7 @@ export const Activities = [
id: "invocation",
mutable: false,
optional: true,
+ panel: true,
title: "Workflow Invocations",
tooltip: "Show all workflow runs",
to: null,
@@ -72,6 +77,7 @@ export const Activities = [
id: "visualizations",
mutable: false,
optional: true,
+ panel: true,
title: "Visualization",
to: null,
tooltip: "Visualize datasets",
@@ -84,6 +90,7 @@ export const Activities = [
id: "histories",
mutable: false,
optional: true,
+ panel: false,
title: "Histories",
tooltip: "Show all histories",
to: "/histories/list",
@@ -96,6 +103,7 @@ export const Activities = [
id: "multiview",
mutable: false,
optional: true,
+ panel: true,
title: "History Multiview",
tooltip: "Select histories to show in History Multiview",
to: "/histories/view_multiple",
@@ -108,6 +116,7 @@ export const Activities = [
id: "datasets",
mutable: false,
optional: true,
+ panel: false,
title: "Datasets",
tooltip: "Show all datasets",
to: "/datasets/list",
@@ -120,6 +129,7 @@ export const Activities = [
id: "pages",
mutable: false,
optional: true,
+ panel: false,
title: "Pages",
tooltip: "Show all pages",
to: "/pages/list",
@@ -136,6 +146,7 @@ export function convertDropData(data: EventData): Activity | null {
id: `dataset-${data.id}`,
mutable: true,
optional: true,
+ panel: false,
title: data.name as string,
tooltip: "View your dataset",
to: `/datasets/${data.id}/preview`,
@@ -150,6 +161,7 @@ export function convertDropData(data: EventData): Activity | null {
id: `workflow-${data.id}`,
mutable: true,
optional: true,
+ panel: false,
title: data.name as string,
tooltip: data.name as string,
to: `/workflows/run?id=${data.id}`,
diff --git a/client/src/stores/activityStore.ts b/client/src/stores/activityStore.ts
index c7435f2ad10a..ed99ec67b2f7 100644
--- a/client/src/stores/activityStore.ts
+++ b/client/src/stores/activityStore.ts
@@ -22,6 +22,8 @@ export interface Activity {
mutable: boolean;
// indicate wether this activity can be disabled by the user
optional: boolean;
+ // specifiy wether this activity utilizes the side panel
+ panel: boolean;
// title to be displayed in the activity bar
title: string;
// route to be executed upon selecting the activity