Explorar o código

feat: export workflows based on folder

Ahmad Kholid %!s(int64=2) %!d(string=hai) anos
pai
achega
28ec33f2ec
Modificáronse 1 ficheiros con 19 adicións e 0 borrados
  1. 19 0
      src/components/newtab/workflows/WorkflowsFolder.vue

+ 19 - 0
src/components/newtab/workflows/WorkflowsFolder.vue

@@ -50,6 +50,16 @@
             />
           </template>
           <ui-list class="w-36 space-y-1">
+            <ui-list-item
+              v-close-popover
+              class="cursor-pointer"
+              @click="exportFolderWorkflows(folder.id)"
+            >
+              <v-remixicon name="riDownloadLine" class="mr-2 -ml-1" />
+              <span>
+                {{ t('common.export') }}
+              </span>
+            </ui-list-item>
             <ui-list-item
               v-close-popover
               class="cursor-pointer"
@@ -83,6 +93,7 @@ import { useDialog } from '@/composable/dialog';
 import { parseJSON } from '@/utils/helper';
 import { useFolderStore } from '@/stores/folder';
 import { useWorkflowStore } from '@/stores/workflow';
+import { exportWorkflow } from '@/utils/workflowData';
 
 defineProps({
   modelValue: {
@@ -99,6 +110,14 @@ const workflowStore = useWorkflowStore();
 
 const folders = computed(() => folderStore.items);
 
+function exportFolderWorkflows(folderId) {
+  const workflows = workflowStore.getWorkflows.filter(
+    (item) => item.folderId === folderId
+  );
+  workflows.forEach((workflow) => {
+    exportWorkflow(workflow);
+  });
+}
 function onDragover(event, toggle) {
   const parent = event.target.closest('.ui-list-item');
   if (!parent) return;