ソースを参照

feat: insertAllGlobalData

siykt 1 年間 前
コミット
9a91b62bb0

+ 7 - 0
src/components/newtab/workflow/edit/EditExecuteWorkflow.vue

@@ -43,6 +43,13 @@
     <p class="mt-4 ml-1 mb-1 text-sm text-gray-600 dark:text-gray-200">
     <p class="mt-4 ml-1 mb-1 text-sm text-gray-600 dark:text-gray-200">
       {{ t('common.globalData') }}
       {{ t('common.globalData') }}
     </p>
     </p>
+    <ui-checkbox
+      :model-value="data.insertAllGlobalData"
+      class="mb-4 leading-tight text-sm"
+      @change="updateData({ insertAllGlobalData: $event })"
+    >
+      {{ t('workflow.blocks.execute-workflow.insertAllGlobalData') }}
+    </ui-checkbox>
     <pre
     <pre
       v-if="!state.showGlobalData"
       v-if="!state.showGlobalData"
       class="max-h-80 overflow-auto rounded-lg bg-gray-900 p-4 text-gray-200"
       class="max-h-80 overflow-auto rounded-lg bg-gray-900 p-4 text-gray-200"

+ 1 - 0
src/utils/shared.js

@@ -68,6 +68,7 @@ export const tasks = {
       globalData: '',
       globalData: '',
       description: '',
       description: '',
       insertAllVars: false,
       insertAllVars: false,
+      insertAllGlobalData: false,
     },
     },
   },
   },
   'active-tab': {
   'active-tab': {

+ 12 - 3
src/workflowEngine/blocksHandler/handlerExecuteWorkflow.js

@@ -44,7 +44,7 @@ function findWorkflow(workflows, workflowId) {
   return workflow;
   return workflow;
 }
 }
 
 
-async function executeWorkflow({ id: blockId, data }) {
+async function executeWorkflow({ id: blockId, data }, { refData }) {
   if (data.workflowId === '') throw new Error('empty-workflow');
   if (data.workflowId === '') throw new Error('empty-workflow');
 
 
   const { workflows, teamWorkflows } = await browser.storage.local.get([
   const { workflows, teamWorkflows } = await browser.storage.local.get([
@@ -74,8 +74,17 @@ async function executeWorkflow({ id: blockId, data }) {
 
 
   if (workflow.testingMode) workflow.testingMode = false;
   if (workflow.testingMode) workflow.testingMode = false;
 
 
-  if (!isWhitespace(data.globalData))
-    optionsParams.globalData = data.globalData;
+  if (data.insertAllGlobalData) {
+    optionsParams.globalData = refData.globalData;
+  }
+
+  if (!isWhitespace(data.globalData)) {
+    // shallow copy
+    optionsParams.globalData = {
+      ...optionsParams.globalData,
+      ...JSON.parse(data.globalData),
+    };
+  }
 
 
   if (data.insertAllVars) {
   if (data.insertAllVars) {
     optionsParams.variables = JSON.parse(
     optionsParams.variables = JSON.parse(