Unverified Commit 64a3b401 authored by John Chilton's avatar John Chilton Committed by GitHub
Browse files

Merge pull request #19434 from mvdbeek/user_defined_tools

Add User-Defined Tools
parents eb38fd8e 73c72b8f
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@
    "@fortawesome/free-regular-svg-icons": "^5.15.4",
    "@fortawesome/free-solid-svg-icons": "^5.15.4",
    "@fortawesome/vue-fontawesome": "^2.0.9",
    "@guolao/vue-monaco-editor": "^1.5.4",
    "@handsontable/vue": "^2.0.0",
    "@hirez_io/observer-spy": "^2.1.2",
    "@johmun/vue-tags-input": "^2.1.0",
@@ -86,6 +87,9 @@
    "lucide-vue": "^0.344.0",
    "markdown-it": "^13.0.2",
    "markdown-it-regexp": "^0.4.0",
    "monaco-editor": "^0.52.2",
    "monaco-editor-webpack-plugin": "^7.1.0",
    "monaco-yaml": "^5.2.3",
    "object-hash": "^3.0.0",
    "openapi-fetch": "^0.10.6",
    "pinia": "^2.1.7",
@@ -99,6 +103,7 @@
    "rxjs": "^7.8.1",
    "rxjs-spy": "^8.0.2",
    "rxjs-spy-devtools-plugin": "^0.0.4",
    "schema-to-ts": "^0.0.2",
    "simplify-js": "^1.2.4",
    "slugify": "^1.6.6",
    "stream-browserify": "^3.0.0",
@@ -123,7 +128,8 @@
    "vue2-teleport": "^1.0.1",
    "vuedraggable": "^2.24.3",
    "winbox": "^0.2.82",
    "xml-beautifier": "^0.5.0"
    "xml-beautifier": "^0.5.0",
    "yaml": "^2.6.1"
  },
  "scripts": {
    "develop": "NODE_ENV=development gulp && webpack-dev-server",
+3 −0
Original line number Diff line number Diff line
@@ -330,3 +330,6 @@ export type AsyncTaskResultSummary = components["schemas"]["AsyncTaskResultSumma

export type CollectionElementIdentifiers = components["schemas"]["CollectionElementIdentifier"][];
export type CreateNewCollectionPayload = components["schemas"]["CreateNewCollectionPayload"];
export type UnprivilegedToolResponse = components["schemas"]["UnprivilegedToolResponse"];
export type UserToolSource = components["schemas"]["UserToolSource-Input"];
export type DynamicUnprivilegedToolCreatePayload = components["schemas"]["DynamicUnprivilegedToolCreatePayload"];
+2899 −155

File changed.

Preview size limit exceeded, changes collapsed.

+13 −3
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@ import { convertDropData } from "@/stores/activitySetup";
import { useActivityStore } from "@/stores/activityStore";
import type { Activity } from "@/stores/activityStoreTypes";
import { useEventStore } from "@/stores/eventStore";
import { useUnprivilegedToolStore } from "@/stores/unprivilegedToolStore";
import { useUserStore } from "@/stores/userStore";

import InvocationsPanel from "../Panels/InvocationsPanel.vue";
@@ -25,6 +26,7 @@ import MultiviewPanel from "@/components/Panels/MultiviewPanel.vue";
import NotificationsPanel from "@/components/Panels/NotificationsPanel.vue";
import SettingsPanel from "@/components/Panels/SettingsPanel.vue";
import ToolPanel from "@/components/Panels/ToolPanel.vue";
import UserToolPanel from "@/components/Panels/UserToolPanel.vue";
import VisualizationPanel from "@/components/Visualizations/VisualizationPanel.vue";

const props = withDefaults(
@@ -67,6 +69,9 @@ const userStore = useUserStore();
const eventStore = useEventStore();
const activityStore = useActivityStore(props.activityBarId);

const unprivilegedToolStore = useUnprivilegedToolStore();
const { canUseUnprivilegedTools } = storeToRefs(unprivilegedToolStore);

if (props.initialActivity) {
    activityStore.toggledSideBar = props.initialActivity;
}
@@ -90,7 +95,11 @@ const emit = defineEmits<{
}>();

// activities from store
const { activities, isSideBarOpen, sidePanelWidth } = storeToRefs(activityStore);
const { activities: storeActivities, isSideBarOpen, sidePanelWidth } = storeToRefs(activityStore);

const activities = computed(() =>
    storeActivities.value.filter((activity) => activity.id !== "user-defined-tools" || canUseUnprivilegedTools.value)
);

// drag references
const dragTarget: Ref<EventTarget | null> = ref(null);
@@ -143,7 +152,7 @@ function onDragEnter(evt: MouseEvent) {
function onDragLeave(evt: MouseEvent) {
    if (dragItem.value && dragTarget.value == evt.target) {
        const dragId = dragItem.value.id;
        activities.value = activities.value.filter((a) => a.id !== dragId);
        storeActivities.value = storeActivities.value.filter((a) => a.id !== dragId);
    }
}

@@ -161,7 +170,7 @@ function onDragOver(evt: MouseEvent) {
            if (targetActivity && targetActivity.id !== dragId) {
                const activitiesTemp = activities.value.filter((a) => a.id !== dragId);
                activitiesTemp.splice(targetIndex, 0, dragItem.value);
                activities.value = activitiesTemp;
                storeActivities.value = activitiesTemp;
            }
        }
    }
@@ -335,6 +344,7 @@ defineExpose({
            <VisualizationPanel v-else-if="isActiveSideBar('visualizations')" />
            <MultiviewPanel v-else-if="isActiveSideBar('multiview')" />
            <NotificationsPanel v-else-if="isActiveSideBar('notifications')" />
            <UserToolPanel v-if="isActiveSideBar('user-defined-tools')" />
            <SettingsPanel
                v-else-if="isActiveSideBar('settings')"
                :activity-bar-id="props.activityBarId"
+1 −1
Original line number Diff line number Diff line
@@ -51,7 +51,7 @@ export async function getData(
    fetchHistoriesAndWorkflows(data);
    const headers = response.headers;
    const totalMatches = parseInt(headers.get("total_matches") ?? "0");
    return [data, totalMatches];
    return [data, totalMatches] as const;
}

/**
Loading