1
0
Ahmad Kholid 3 жил өмнө
parent
commit
2efe520efe

+ 5 - 1
src/background/workflow-engine/engine.js

@@ -240,7 +240,11 @@ class WorkflowEngine {
       return;
       return;
     }
     }
 
 
-    const replacedBlock = referenceData({ block, data: this.referenceData });
+    const replacedBlock = referenceData({
+      block,
+      data: this.referenceData,
+      refKeys: tasks[block.name].refDataKeys,
+    });
     const blockDelay = this.workflow.settings?.blockDelay || 0;
     const blockDelay = this.workflow.settings?.blockDelay || 0;
 
 
     try {
     try {

+ 1 - 1
src/newtab/pages/workflows/[id].vue

@@ -365,7 +365,6 @@ function renameWorkflow() {
 provide('workflow', {
 provide('workflow', {
   data: workflow,
   data: workflow,
   updateWorkflow,
   updateWorkflow,
-  /* eslint-disable-next-line */
   showDataColumnsModal: (show = true) => {
   showDataColumnsModal: (show = true) => {
     state.showModal = show;
     state.showModal = show;
     state.modalName = 'data-columns';
     state.modalName = 'data-columns';
@@ -375,6 +374,7 @@ provide('workflow', {
 onBeforeRouteLeave(() => {
 onBeforeRouteLeave(() => {
   if (!state.isDataChanged) return;
   if (!state.isDataChanged) return;
 
 
+  /* eslint-disable-next-line */
   const answer = window.confirm(t('message.notSaved'));
   const answer = window.confirm(t('message.notSaved'));
 
 
   if (!answer) return false;
   if (!answer) return false;

+ 4 - 15
src/utils/reference-data/index.js

@@ -32,24 +32,13 @@ export const funcs = {
   },
   },
 };
 };
 
 
-export default function ({ block, data: refData }) {
-  const replaceKeys = [
-    'url',
-    'name',
-    'body',
-    'value',
-    'fileName',
-    'selector',
-    'prefixText',
-    'customData',
-    'globalData',
-    'suffixText',
-    'extraRowValue',
-  ];
+export default function ({ block, refKeys, data: refData }) {
+  if (!refKeys || refKeys.length === 0) return block;
+
   let replacedBlock = { ...block };
   let replacedBlock = { ...block };
   const data = Object.assign(refData, { funcs });
   const data = Object.assign(refData, { funcs });
 
 
-  replaceKeys.forEach((blockDataKey) => {
+  refKeys.forEach((blockDataKey) => {
     if (!objectHasKey(block.data, blockDataKey)) return;
     if (!objectHasKey(block.data, blockDataKey)) return;
 
 
     const newDataValue = mustacheReplacer({
     const newDataValue = mustacheReplacer({

+ 18 - 0
src/utils/shared.js

@@ -14,6 +14,7 @@ export const tasks = {
     outputs: 1,
     outputs: 1,
     allowedInputs: true,
     allowedInputs: true,
     maxConnection: 1,
     maxConnection: 1,
+    refDataKeys: ['url'],
     data: {
     data: {
       description: '',
       description: '',
       type: 'manual',
       type: 'manual',
@@ -39,6 +40,7 @@ export const tasks = {
     outputs: 1,
     outputs: 1,
     allowedInputs: true,
     allowedInputs: true,
     maxConnection: 1,
     maxConnection: 1,
+    refDataKeys: ['globalData'],
     data: {
     data: {
       workflowId: '',
       workflowId: '',
       globalData: '',
       globalData: '',
@@ -68,6 +70,7 @@ export const tasks = {
     outputs: 1,
     outputs: 1,
     allowedInputs: true,
     allowedInputs: true,
     maxConnection: 1,
     maxConnection: 1,
+    refDataKeys: ['url'],
     data: {
     data: {
       description: '',
       description: '',
       url: '',
       url: '',
@@ -148,6 +151,7 @@ export const tasks = {
     outputs: 1,
     outputs: 1,
     maxConnection: 1,
     maxConnection: 1,
     allowedInputs: true,
     allowedInputs: true,
+    refDataKeys: ['url'],
     data: {
     data: {
       url: '',
       url: '',
       activeTab: true,
       activeTab: true,
@@ -166,6 +170,7 @@ export const tasks = {
     outputs: 1,
     outputs: 1,
     maxConnection: 1,
     maxConnection: 1,
     allowedInputs: true,
     allowedInputs: true,
+    refDataKeys: ['fileName'],
     data: {
     data: {
       fileName: '',
       fileName: '',
       ext: 'png',
       ext: 'png',
@@ -186,6 +191,7 @@ export const tasks = {
     outputs: 1,
     outputs: 1,
     allowedInputs: true,
     allowedInputs: true,
     maxConnection: 1,
     maxConnection: 1,
+    refDataKeys: ['selector'],
     data: {
     data: {
       description: '',
       description: '',
       findBy: 'cssSelector',
       findBy: 'cssSelector',
@@ -220,6 +226,7 @@ export const tasks = {
     outputs: 1,
     outputs: 1,
     allowedInputs: true,
     allowedInputs: true,
     maxConnection: 1,
     maxConnection: 1,
+    refDataKeys: ['selector', 'prefixText', 'suffixText', 'extraRowValue'],
     data: {
     data: {
       description: '',
       description: '',
       findBy: 'cssSelector',
       findBy: 'cssSelector',
@@ -247,6 +254,7 @@ export const tasks = {
     outputs: 1,
     outputs: 1,
     allowedInputs: true,
     allowedInputs: true,
     maxConnection: 1,
     maxConnection: 1,
+    refDataKeys: ['name'],
     data: {
     data: {
       name: '',
       name: '',
       refKey: '',
       refKey: '',
@@ -265,6 +273,7 @@ export const tasks = {
     outputs: 1,
     outputs: 1,
     allowedInputs: true,
     allowedInputs: true,
     maxConnection: 1,
     maxConnection: 1,
+    refDataKeys: ['selector'],
     data: {
     data: {
       description: '',
       description: '',
       findBy: 'cssSelector',
       findBy: 'cssSelector',
@@ -290,6 +299,7 @@ export const tasks = {
     outputs: 1,
     outputs: 1,
     allowedInputs: true,
     allowedInputs: true,
     maxConnection: 1,
     maxConnection: 1,
+    refDataKeys: ['selector'],
     data: {
     data: {
       description: '',
       description: '',
       findBy: 'cssSelector',
       findBy: 'cssSelector',
@@ -309,6 +319,7 @@ export const tasks = {
     outputs: 1,
     outputs: 1,
     allowedInputs: true,
     allowedInputs: true,
     maxConnection: 1,
     maxConnection: 1,
+    refDataKeys: ['selector', 'attributeName', 'extraRowValue'],
     data: {
     data: {
       description: '',
       description: '',
       findBy: 'cssSelector',
       findBy: 'cssSelector',
@@ -334,6 +345,7 @@ export const tasks = {
     outputs: 1,
     outputs: 1,
     allowedInputs: true,
     allowedInputs: true,
     maxConnection: 1,
     maxConnection: 1,
+    refDataKeys: ['selector', 'value'],
     data: {
     data: {
       description: '',
       description: '',
       findBy: 'cssSelector',
       findBy: 'cssSelector',
@@ -407,6 +419,7 @@ export const tasks = {
     outputs: 1,
     outputs: 1,
     allowedInputs: true,
     allowedInputs: true,
     maxConnection: 1,
     maxConnection: 1,
+    refDataKeys: ['selector'],
     data: {
     data: {
       description: '',
       description: '',
       findBy: 'cssSelector',
       findBy: 'cssSelector',
@@ -430,6 +443,7 @@ export const tasks = {
     docs: true,
     docs: true,
     allowedInputs: true,
     allowedInputs: true,
     maxConnection: 1,
     maxConnection: 1,
+    refDataKeys: ['customData'],
     data: {
     data: {
       range: '',
       range: '',
       refKey: '',
       refKey: '',
@@ -469,6 +483,7 @@ export const tasks = {
     outputs: 2,
     outputs: 2,
     allowedInputs: true,
     allowedInputs: true,
     maxConnection: 1,
     maxConnection: 1,
+    refDataKeys: ['selector'],
     data: {
     data: {
       findBy: 'cssSelector',
       findBy: 'cssSelector',
       selector: '',
       selector: '',
@@ -488,6 +503,7 @@ export const tasks = {
     outputs: 1,
     outputs: 1,
     allowedInputs: true,
     allowedInputs: true,
     maxConnection: 1,
     maxConnection: 1,
+    refDataKeys: ['body', 'url'],
     data: {
     data: {
       description: '',
       description: '',
       url: '',
       url: '',
@@ -508,6 +524,7 @@ export const tasks = {
     outputs: 1,
     outputs: 1,
     allowedInputs: true,
     allowedInputs: true,
     maxConnection: 1,
     maxConnection: 1,
+    refDataKeys: ['loopData'],
     data: {
     data: {
       loopId: '',
       loopId: '',
       maxLoop: 0,
       maxLoop: 0,
@@ -562,6 +579,7 @@ export const tasks = {
     outputs: 1,
     outputs: 1,
     allowedInputs: true,
     allowedInputs: true,
     maxConnection: 1,
     maxConnection: 1,
+    refDataKeys: ['selector'],
     data: {
     data: {
       findBy: 'cssSelector',
       findBy: 'cssSelector',
       selector: '',
       selector: '',