From 304999c7819fc6147763b6c0a01ad2992dd5644b Mon Sep 17 00:00:00 2001 From: guerler Date: Tue, 2 Apr 2024 09:50:19 +0300 Subject: [PATCH 01/16] Add admin activity to activity bar --- client/src/components/ActivityBar/ActivityBar.vue | 4 +++- client/src/stores/activitySetup.ts | 12 ++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/client/src/components/ActivityBar/ActivityBar.vue b/client/src/components/ActivityBar/ActivityBar.vue index 9a440d5ddd27..ac6670309fc3 100644 --- a/client/src/components/ActivityBar/ActivityBar.vue +++ b/client/src/components/ActivityBar/ActivityBar.vue @@ -11,6 +11,7 @@ import { type Activity, useActivityStore } from "@/stores/activityStore"; import { useEventStore } from "@/stores/eventStore"; import { useUserStore } from "@/stores/userStore"; +import AdminPanel from "@/components/admin/AdminPanel.vue"; import VisualizationPanel from "../Panels/VisualizationPanel.vue"; import ActivityItem from "./ActivityItem.vue"; import InteractiveItem from "./Items/InteractiveItem.vue"; @@ -173,7 +174,7 @@ watch( :to="activity.to" @click="onToggleSidebar()" /> + diff --git a/client/src/stores/activitySetup.ts b/client/src/stores/activitySetup.ts index 8cc09c127844..5ed3d5bcf134 100644 --- a/client/src/stores/activitySetup.ts +++ b/client/src/stores/activitySetup.ts @@ -113,6 +113,18 @@ export const Activities = [ to: "/datasets/list", visible: false, }, + { + anonymous: true, + description: "Adminstration.", + icon: "wrench", + id: "admin", + mutable: false, + optional: false, + title: "Admin", + to: null, + tooltip: "Search and run tools", + visible: true, + }, ]; export function convertDropData(data: EventData): Activity | null { From 1e1afb950aea40e036a1344309abf01606c4fd6f Mon Sep 17 00:00:00 2001 From: guerler Date: Tue, 2 Apr 2024 09:52:06 +0300 Subject: [PATCH 02/16] Parse admin properties to admin panel --- client/src/components/ActivityBar/ActivityBar.vue | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/client/src/components/ActivityBar/ActivityBar.vue b/client/src/components/ActivityBar/ActivityBar.vue index ac6670309fc3..fe2d57eafc12 100644 --- a/client/src/components/ActivityBar/ActivityBar.vue +++ b/client/src/components/ActivityBar/ActivityBar.vue @@ -49,6 +49,15 @@ const isDragging = ref(false); // sync built-in activities with cached activities activityStore.sync(); + +const adminProperties = computed(() => { + return { + enableQuotas: config.value.enable_quotas, + isToolshedInstalled: config.value.tool_shed_urls && config.value.tool_shed_urls.length > 0, + versionMajor: config.value.version_major, + }; +}); + /** * Checks if the route of an activity is currently being visited and panels are collapsed */ @@ -220,7 +229,7 @@ watch( - + From f84e20cd09a819d7c4493bf620104d2b8c267818 Mon Sep 17 00:00:00 2001 From: guerler Date: Tue, 2 Apr 2024 09:57:12 +0300 Subject: [PATCH 03/16] Remove side panel from admin component --- client/src/entry/analysis/modules/Admin.vue | 24 +-------------------- client/src/stores/activitySetup.ts | 2 +- 2 files changed, 2 insertions(+), 24 deletions(-) diff --git a/client/src/entry/analysis/modules/Admin.vue b/client/src/entry/analysis/modules/Admin.vue index 25b052ab08af..b2a66b8f511f 100644 --- a/client/src/entry/analysis/modules/Admin.vue +++ b/client/src/entry/analysis/modules/Admin.vue @@ -1,27 +1,5 @@ - - diff --git a/client/src/components/admin/AdminPanel.vue b/client/src/components/admin/AdminPanel.vue index 8853ed812d39..d4f3d11f4e79 100644 --- a/client/src/components/admin/AdminPanel.vue +++ b/client/src/components/admin/AdminPanel.vue @@ -1,8 +1,131 @@ + + - - From 5a03f054c10e0849b3b242286b4b16898ec5d5fa Mon Sep 17 00:00:00 2001 From: guerler Date: Tue, 2 Apr 2024 16:54:10 +0300 Subject: [PATCH 07/16] Use activity panel component for admin panel --- client/src/components/admin/AdminPanel.vue | 36 ++++++++++------------ 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/client/src/components/admin/AdminPanel.vue b/client/src/components/admin/AdminPanel.vue index d4f3d11f4e79..5c9fc8f01d3c 100644 --- a/client/src/components/admin/AdminPanel.vue +++ b/client/src/components/admin/AdminPanel.vue @@ -3,6 +3,8 @@ import { computed } from "vue"; import { useConfig } from "@/composables/config"; +import ActivityPanel from "@/components/Panels/ActivityPanel.vue"; + const { config, isConfigLoaded } = useConfig(); const adminProperties = computed(() => { @@ -122,30 +124,26 @@ const sections = computed(() => { From 62324d88fcd71a40bcf5ce4aa5d81d8d1271cb2d Mon Sep 17 00:00:00 2001 From: guerler Date: Tue, 2 Apr 2024 17:32:23 +0300 Subject: [PATCH 08/16] Change admin activity icon --- .../components/ActivityBar/ActivityBar.vue | 2 +- client/src/components/admin/AdminPanel.vue | 21 ++++++++----------- client/src/components/plugins/icons.js | 2 ++ 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/client/src/components/ActivityBar/ActivityBar.vue b/client/src/components/ActivityBar/ActivityBar.vue index 54c745018e25..a82906c41628 100644 --- a/client/src/components/ActivityBar/ActivityBar.vue +++ b/client/src/components/ActivityBar/ActivityBar.vue @@ -207,7 +207,7 @@ watch( @click="onToggleSidebar('notifications')" /> {
-
-

{{ section.title }}

-
-
- - {{ item.title }} - +
+

{{ section.title }}

+
+
+ + {{ item.title }} + +
+
-
-
diff --git a/client/src/components/plugins/icons.js b/client/src/components/plugins/icons.js index f0d6d8688efe..a7a4224b70ca 100644 --- a/client/src/components/plugins/icons.js +++ b/client/src/components/plugins/icons.js @@ -48,6 +48,7 @@ import { faTrash, faTrashRestore, faUndo, + faUserCog, faUserLock, faWrench, } from "@fortawesome/free-solid-svg-icons"; @@ -102,6 +103,7 @@ library.add( faTrashRestore, faExclamationTriangle, faUndo, + faUserCog, faUserLock, faWrench ); From a863e92e56ee93b4cbcb97e2400b1d4fcbd7773b Mon Sep 17 00:00:00 2001 From: guerler Date: Tue, 2 Apr 2024 17:46:11 +0300 Subject: [PATCH 09/16] Add variant option for admin activity? --- .../src/components/ActivityBar/ActivityBar.vue | 16 ++++++++-------- .../src/components/ActivityBar/ActivityItem.vue | 4 +++- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/client/src/components/ActivityBar/ActivityBar.vue b/client/src/components/ActivityBar/ActivityBar.vue index a82906c41628..5956e2c94035 100644 --- a/client/src/components/ActivityBar/ActivityBar.vue +++ b/client/src/components/ActivityBar/ActivityBar.vue @@ -205,21 +205,21 @@ watch( :is-active="isActiveSideBar('notifications') || isActiveRoute('/user/notifications')" title="Notifications" @click="onToggleSidebar('notifications')" /> - +
diff --git a/client/src/components/ActivityBar/ActivityItem.vue b/client/src/components/ActivityBar/ActivityItem.vue index c6ce2a2ee75b..0586a1657f99 100644 --- a/client/src/components/ActivityBar/ActivityItem.vue +++ b/client/src/components/ActivityBar/ActivityItem.vue @@ -24,6 +24,7 @@ export interface Props { progressStatus?: string; options?: Option[]; to?: string; + variant?: string; } const props = withDefaults(defineProps(), { @@ -37,6 +38,7 @@ const props = withDefaults(defineProps(), { to: undefined, tooltip: undefined, tooltipPlacement: "right", + variant: "primary", }); const emit = defineEmits<{ @@ -70,7 +72,7 @@ function onClick(evt: MouseEvent): void { width: `${Math.round(progressPercentage)}%`, }" /> - +