@nocobase/plugin-workflow 1.6.0-alpha.2 → 1.6.0-alpha.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/4147131201cde30c.js +10 -0
- package/dist/client/4a2b78cd09ce676a.js +10 -0
- package/dist/client/FlowContext.d.ts +2 -0
- package/dist/client/WorkflowTasks.d.ts +17 -0
- package/dist/client/e73d2e9169520d3e.js +10 -0
- package/dist/client/index.d.ts +3 -0
- package/dist/client/index.js +1 -1
- package/dist/client/nodes/calculation.d.ts +3 -2
- package/dist/client/nodes/condition.d.ts +1 -0
- package/dist/client/nodes/create.d.ts +3 -2
- package/dist/client/nodes/destroy.d.ts +2 -0
- package/dist/client/nodes/end.d.ts +2 -0
- package/dist/client/nodes/index.d.ts +1 -0
- package/dist/client/nodes/output.d.ts +31 -0
- package/dist/client/nodes/query.d.ts +5 -4
- package/dist/client/nodes/update.d.ts +3 -2
- package/dist/client/triggers/schedule/ScheduleModes.d.ts +5 -2
- package/dist/client/triggers/schedule/index.d.ts +2 -0
- package/dist/client/variable.d.ts +17 -6
- package/dist/externalVersion.js +11 -11
- package/dist/locale/en-US.json +3 -1
- package/dist/locale/zh-CN.json +11 -7
- package/dist/node_modules/cron-parser/package.json +1 -1
- package/dist/node_modules/lru-cache/package.json +1 -1
- package/dist/server/Plugin.d.ts +9 -6
- package/dist/server/Plugin.js +116 -45
- package/dist/server/Processor.d.ts +5 -0
- package/dist/server/Processor.js +15 -6
- package/dist/server/actions/workflows.js +5 -2
- package/dist/server/collections/executions.js +9 -0
- package/dist/server/collections/flow_nodes.js +1 -0
- package/dist/server/collections/jobs.js +1 -0
- package/dist/server/collections/workflows.js +1 -0
- package/dist/server/instructions/CreateInstruction.js +1 -1
- package/dist/server/instructions/DestroyInstruction.js +1 -1
- package/dist/server/instructions/UpdateInstruction.js +1 -1
- package/dist/server/triggers/CollectionTrigger.d.ts +6 -6
- package/dist/server/triggers/CollectionTrigger.js +51 -31
- package/dist/server/triggers/ScheduleTrigger/DateFieldScheduleTrigger.d.ts +5 -1
- package/dist/server/triggers/ScheduleTrigger/DateFieldScheduleTrigger.js +53 -14
- package/dist/server/triggers/ScheduleTrigger/StaticScheduleTrigger.d.ts +1 -0
- package/dist/server/triggers/ScheduleTrigger/StaticScheduleTrigger.js +3 -0
- package/dist/server/triggers/ScheduleTrigger/index.d.ts +2 -2
- package/dist/server/triggers/ScheduleTrigger/index.js +21 -3
- package/dist/server/triggers/index.d.ts +4 -1
- package/package.json +3 -3
- package/dist/client/923.index.js +0 -10
- package/dist/client/929.index.js +0 -10
- package/dist/client/999.index.js +0 -10
- /package/dist/client/{383.index.js → 739d458621edf81f.js} +0 -0
|
@@ -43,6 +43,7 @@ var import_database = require("@nocobase/database");
|
|
|
43
43
|
var import_cron_parser = __toESM(require("cron-parser"));
|
|
44
44
|
var import_utils = require("./utils");
|
|
45
45
|
var import_data_source_manager = require("@nocobase/data-source-manager");
|
|
46
|
+
var import_lodash = require("lodash");
|
|
46
47
|
function getOnTimestampWithOffset({ field, offset = 0, unit = 1e3 }, now) {
|
|
47
48
|
if (!field) {
|
|
48
49
|
return null;
|
|
@@ -64,7 +65,7 @@ function getDataOptionTime(record, on, dir = 1) {
|
|
|
64
65
|
if (!field || !record.get(field)) {
|
|
65
66
|
return null;
|
|
66
67
|
}
|
|
67
|
-
const second = new Date(record.get(field)
|
|
68
|
+
const second = new Date(record.get(field));
|
|
68
69
|
second.setMilliseconds(0);
|
|
69
70
|
return second.getTime() + offset * unit * dir;
|
|
70
71
|
}
|
|
@@ -131,6 +132,7 @@ class DateFieldScheduleTrigger {
|
|
|
131
132
|
const now = /* @__PURE__ */ new Date();
|
|
132
133
|
workflows.forEach(async (workflow) => {
|
|
133
134
|
const records = await this.loadRecordsToSchedule(workflow, now);
|
|
135
|
+
this.workflow.getLogger(workflow.id).info(`[Schedule on date field] ${records.length} records to schedule`);
|
|
134
136
|
records.forEach((record) => {
|
|
135
137
|
const nextTime = this.getRecordNextTime(workflow, record);
|
|
136
138
|
this.schedule(workflow, record, nextTime, Boolean(nextTime));
|
|
@@ -144,17 +146,20 @@ class DateFieldScheduleTrigger {
|
|
|
144
146
|
// b. repeat in range (number or cron):
|
|
145
147
|
// i. endsOn after now -> yes
|
|
146
148
|
// ii. endsOn before now -> no
|
|
147
|
-
async loadRecordsToSchedule({ config: { collection, limit, startsOn, repeat, endsOn }, allExecuted }, currentDate) {
|
|
149
|
+
async loadRecordsToSchedule({ id, config: { collection, limit, startsOn, repeat, endsOn }, allExecuted }, currentDate) {
|
|
148
150
|
const { dataSourceManager } = this.workflow.app;
|
|
149
151
|
if (limit && allExecuted >= limit) {
|
|
152
|
+
this.workflow.getLogger(id).warn(`[Schedule on date field] limit reached (all executed ${allExecuted})`);
|
|
150
153
|
return [];
|
|
151
154
|
}
|
|
152
155
|
if (!startsOn) {
|
|
156
|
+
this.workflow.getLogger(id).warn(`[Schedule on date field] "startsOn" is not configured`);
|
|
153
157
|
return [];
|
|
154
158
|
}
|
|
155
159
|
const timestamp = currentDate.getTime();
|
|
156
160
|
const startTimestamp = getOnTimestampWithOffset(startsOn, currentDate);
|
|
157
161
|
if (!startTimestamp) {
|
|
162
|
+
this.workflow.getLogger(id).warn(`[Schedule on date field] "startsOn.field" is not configured`);
|
|
158
163
|
return [];
|
|
159
164
|
}
|
|
160
165
|
const [dataSourceName, collectionName] = (0, import_data_source_manager.parseCollectionName)(collection);
|
|
@@ -181,7 +186,7 @@ class DateFieldScheduleTrigger {
|
|
|
181
186
|
const modExp = (0, import_database.fn)(
|
|
182
187
|
"MOD",
|
|
183
188
|
(0, import_database.literal)(
|
|
184
|
-
`${Math.round(timestamp / 1e3)} - ${db.sequelize.getQueryInterface().quoteIdentifiers(
|
|
189
|
+
`${Math.round(timestamp / 1e3)} - ${tsFn(db.sequelize.getQueryInterface().quoteIdentifiers(field))}`
|
|
185
190
|
),
|
|
186
191
|
Math.round(repeat / 1e3)
|
|
187
192
|
);
|
|
@@ -193,21 +198,21 @@ class DateFieldScheduleTrigger {
|
|
|
193
198
|
}
|
|
194
199
|
}
|
|
195
200
|
if (endsOn) {
|
|
196
|
-
const now = /* @__PURE__ */ new Date();
|
|
197
|
-
const endTimestamp = getOnTimestampWithOffset(endsOn, now);
|
|
198
|
-
if (!endTimestamp) {
|
|
199
|
-
return [];
|
|
200
|
-
}
|
|
201
201
|
if (typeof endsOn === "string") {
|
|
202
|
-
if (
|
|
202
|
+
if ((0, import_utils.parseDateWithoutMs)(endsOn) <= timestamp) {
|
|
203
203
|
return [];
|
|
204
204
|
}
|
|
205
205
|
} else {
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
206
|
+
const endTimestamp = getOnTimestampWithOffset(endsOn, currentDate);
|
|
207
|
+
if (endTimestamp) {
|
|
208
|
+
conditions.push({
|
|
209
|
+
[endsOn.field]: {
|
|
210
|
+
[import_database.Op.gte]: new Date(endTimestamp)
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
} else {
|
|
214
|
+
this.workflow.getLogger(id).warn(`[Schedule on date field] "endsOn.field" is not configured`);
|
|
215
|
+
}
|
|
211
216
|
}
|
|
212
217
|
}
|
|
213
218
|
} else {
|
|
@@ -217,6 +222,7 @@ class DateFieldScheduleTrigger {
|
|
|
217
222
|
}
|
|
218
223
|
});
|
|
219
224
|
}
|
|
225
|
+
this.workflow.getLogger(id).debug(`[Schedule on date field] conditions: `, { conditions });
|
|
220
226
|
return model.findAll({
|
|
221
227
|
where: {
|
|
222
228
|
[import_database.Op.and]: conditions
|
|
@@ -363,4 +369,37 @@ class DateFieldScheduleTrigger {
|
|
|
363
369
|
this.events.delete(name);
|
|
364
370
|
}
|
|
365
371
|
}
|
|
372
|
+
async execute(workflow, values, options) {
|
|
373
|
+
var _a;
|
|
374
|
+
const [dataSourceName, collectionName] = (0, import_data_source_manager.parseCollectionName)(workflow.config.collection);
|
|
375
|
+
const { collectionManager } = this.workflow.app.dataSourceManager.dataSources.get(dataSourceName);
|
|
376
|
+
const { filterTargetKey, repository } = collectionManager.getCollection(collectionName);
|
|
377
|
+
let { data } = values;
|
|
378
|
+
let filterByTk;
|
|
379
|
+
let loadNeeded = false;
|
|
380
|
+
if (data && typeof data === "object") {
|
|
381
|
+
filterByTk = Array.isArray(filterTargetKey) ? (0, import_lodash.pick)(
|
|
382
|
+
data,
|
|
383
|
+
filterTargetKey.sort((a, b) => a.localeCompare(b))
|
|
384
|
+
) : data[filterTargetKey];
|
|
385
|
+
} else {
|
|
386
|
+
filterByTk = data;
|
|
387
|
+
loadNeeded = true;
|
|
388
|
+
}
|
|
389
|
+
if (loadNeeded || ((_a = workflow.config.appends) == null ? void 0 : _a.length)) {
|
|
390
|
+
data = await repository.findOne({
|
|
391
|
+
filterByTk,
|
|
392
|
+
appends: workflow.config.appends
|
|
393
|
+
});
|
|
394
|
+
}
|
|
395
|
+
return this.workflow.trigger(workflow, { ...values, data, date: (values == null ? void 0 : values.date) ?? /* @__PURE__ */ new Date() }, options);
|
|
396
|
+
}
|
|
397
|
+
validateContext(values) {
|
|
398
|
+
if (!(values == null ? void 0 : values.data)) {
|
|
399
|
+
return {
|
|
400
|
+
data: "Data is required"
|
|
401
|
+
};
|
|
402
|
+
}
|
|
403
|
+
return null;
|
|
404
|
+
}
|
|
366
405
|
}
|
|
@@ -18,4 +18,5 @@ export default class StaticScheduleTrigger {
|
|
|
18
18
|
trigger(workflow: WorkflowModel, time: number): Promise<void>;
|
|
19
19
|
on(workflow: any): void;
|
|
20
20
|
off(workflow: any): void;
|
|
21
|
+
execute(workflow: any, values: any, options: any): void | Promise<import("../..").Processor>;
|
|
21
22
|
}
|
|
@@ -149,4 +149,7 @@ class StaticScheduleTrigger {
|
|
|
149
149
|
off(workflow) {
|
|
150
150
|
this.schedule(workflow, null, false);
|
|
151
151
|
}
|
|
152
|
+
execute(workflow, values, options) {
|
|
153
|
+
return this.workflow.trigger(workflow, { ...values, date: (values == null ? void 0 : values.date) ?? /* @__PURE__ */ new Date() }, options);
|
|
154
|
+
}
|
|
152
155
|
}
|
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
|
-
import { Context } from '@nocobase/actions';
|
|
10
9
|
import Trigger from '..';
|
|
11
10
|
import type Plugin from '../../Plugin';
|
|
12
11
|
export default class ScheduleTrigger extends Trigger {
|
|
@@ -16,5 +15,6 @@ export default class ScheduleTrigger extends Trigger {
|
|
|
16
15
|
private getTrigger;
|
|
17
16
|
on(workflow: any): void;
|
|
18
17
|
off(workflow: any): void;
|
|
19
|
-
execute(workflow: any,
|
|
18
|
+
execute(workflow: any, values: any, options: any): Promise<any>;
|
|
19
|
+
validateContext(values: any): any;
|
|
20
20
|
}
|
|
@@ -68,9 +68,12 @@ class ScheduleTrigger extends import__.default {
|
|
|
68
68
|
trigger.off(workflow);
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
|
-
async execute(workflow,
|
|
72
|
-
const
|
|
73
|
-
|
|
71
|
+
async execute(workflow, values, options) {
|
|
72
|
+
const mode = workflow.config.mode;
|
|
73
|
+
const trigger = this.getTrigger(mode);
|
|
74
|
+
if (trigger) {
|
|
75
|
+
return trigger.execute(workflow, values, options);
|
|
76
|
+
}
|
|
74
77
|
}
|
|
75
78
|
// async validateEvent(workflow: WorkflowModel, context: any, options: Transactionable): Promise<boolean> {
|
|
76
79
|
// if (!context.date) {
|
|
@@ -85,4 +88,19 @@ class ScheduleTrigger extends import__.default {
|
|
|
85
88
|
// });
|
|
86
89
|
// return !existed.length;
|
|
87
90
|
// }
|
|
91
|
+
validateContext(values) {
|
|
92
|
+
var _a;
|
|
93
|
+
if (!(values == null ? void 0 : values.mode)) {
|
|
94
|
+
return {
|
|
95
|
+
mode: "Mode is required"
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
const trigger = this.getTrigger(values.mode);
|
|
99
|
+
if (!trigger) {
|
|
100
|
+
return {
|
|
101
|
+
mode: "Mode in invalid"
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
return (_a = trigger.validateContext) == null ? void 0 : _a.call(trigger, values);
|
|
105
|
+
}
|
|
88
106
|
}
|
|
@@ -17,7 +17,10 @@ export declare abstract class Trigger {
|
|
|
17
17
|
off(workflow: WorkflowModel): void;
|
|
18
18
|
validateEvent(workflow: WorkflowModel, context: any, options: Transactionable): boolean | Promise<boolean>;
|
|
19
19
|
duplicateConfig?(workflow: WorkflowModel, options: Transactionable): object | Promise<object>;
|
|
20
|
+
validateContext?(values: any): null | void | {
|
|
21
|
+
[key: string]: string;
|
|
22
|
+
};
|
|
20
23
|
sync?: boolean;
|
|
21
|
-
execute?(workflow: WorkflowModel,
|
|
24
|
+
execute?(workflow: WorkflowModel, values: any, options: Transactionable): void | Processor | Promise<void | Processor>;
|
|
22
25
|
}
|
|
23
26
|
export default Trigger;
|
package/package.json
CHANGED
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
"displayName.zh-CN": "工作流",
|
|
5
5
|
"description": "A powerful BPM tool that provides foundational support for business automation, with the capability to extend unlimited triggers and nodes.",
|
|
6
6
|
"description.zh-CN": "一个强大的 BPM 工具,为业务自动化提供基础支持,并且可任意扩展更多的触发器和节点。",
|
|
7
|
-
"version": "1.6.0-alpha.
|
|
7
|
+
"version": "1.6.0-alpha.21",
|
|
8
8
|
"license": "AGPL-3.0",
|
|
9
9
|
"main": "./dist/server/index.js",
|
|
10
10
|
"homepage": "https://docs.nocobase.com/handbook/workflow",
|
|
11
11
|
"homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/workflow",
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@nocobase/plugin-workflow-test": "1.6.0-alpha.
|
|
13
|
+
"@nocobase/plugin-workflow-test": "1.6.0-alpha.21"
|
|
14
14
|
},
|
|
15
15
|
"devDependencies": {
|
|
16
16
|
"@ant-design/icons": "5.x",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"@nocobase/test": "1.x",
|
|
45
45
|
"@nocobase/utils": "1.x"
|
|
46
46
|
},
|
|
47
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "873cbaec9554e684781b8dc6cfd4386bb5cfa5b0",
|
|
48
48
|
"keywords": [
|
|
49
49
|
"Workflow"
|
|
50
50
|
]
|
package/dist/client/923.index.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is part of the NocoBase (R) project.
|
|
3
|
-
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
-
* Authors: NocoBase Team.
|
|
5
|
-
*
|
|
6
|
-
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
-
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
"use strict";(self.webpackChunk_nocobase_plugin_workflow=self.webpackChunk_nocobase_plugin_workflow||[]).push([["923"],{1837:function(e,t,o){o.r(t),o.d(t,{WorkflowPane:function(){return V}});var n,r,c=o("8156"),i=o.n(c),l=o("2721"),a=o("8563"),p=o("3505"),s=o("3772"),u=o("8958");function m(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{},n=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(o).filter(function(e){return Object.getOwnPropertyDescriptor(o,e).enumerable}))),n.forEach(function(t){var n,r,c;n=e,r=t,c=o[t],r in n?Object.defineProperty(n,r,{value:c,enumerable:!0,configurable:!0,writable:!0}):n[r]=c})}return e}function d(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);o.push.apply(o,n)}return o})(Object(t)).forEach(function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(t,o))}),e}var y=function(e){var t,o=e.request,n=(e.filter,function(e,t){if(null==e)return{};var o,n,r=function(e,t){if(null==e)return{};var o,n,r={},c=Object.keys(e);for(n=0;n<c.length;n++)o=c[n],!(t.indexOf(o)>=0)&&(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++){if(o=c[n],!(t.indexOf(o)>=0))Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}}return r}(e,["request","filter"])),r=(0,s.useRecord)(),c=d(m({},n),{request:d(m({},o),{params:d(m({},null==o?void 0:o.params),{filter:d(m({},null==o?void 0:null===(t=o.params)||void 0===t?void 0:t.filter),{key:r.key})})})});return i().createElement(s.ResourceActionProvider,c)},f=o("3238"),b=o("6128"),x=o("7893"),v=function(){var e=(0,f.useTranslation)().t,t=(0,s.useRecord)().id,o=(0,s.useActionContext)().setVisible,n=(0,s.useGetAriaLabelOfAction)("Configure").getAriaLabel;return i().createElement(b.Link,{"aria-label":n(),to:(0,x.SI)(t),onClick:function(){return o(!1)}},e("Configure"))};function O(e,t){(null==t||t>e.length)&&(t=e.length);for(var o=0,n=Array(t);o<t;o++)n[o]=e[o];return n}function g(e){var t,o,n,r,l=e.component,a=e.children,u=function(e,t){if(null==e)return{};var o,n,r=function(e,t){if(null==e)return{};var o,n,r={},c=Object.keys(e);for(n=0;n<c.length;n++)o=c[n],!(t.indexOf(o)>=0)&&(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++){if(o=c[n],!(t.indexOf(o)>=0))Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}}return r}(e,["component","children"]);var m=(t=(0,c.useState)(!1),o=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var o,n,r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var c=[],i=!0,l=!1;try{for(r=r.call(e);!(i=(o=r.next()).done)&&(c.push(o.value),!t||c.length!==t);i=!0);}catch(e){l=!0,n=e}finally{try{!i&&null!=r.return&&r.return()}finally{if(l)throw n}}return c}}(t,2)||function(e,t){if(e){if("string"==typeof e)return O(e,t);var o=Object.prototype.toString.call(e).slice(8,-1);if("Object"===o&&e.constructor&&(o=e.constructor.name),"Map"===o||"Set"===o)return Array.from(o);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return O(e,t)}}(t,o)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),d=m[0],y=m[1],f=(0,p.useFieldSchema)();return i().createElement(s.ActionContextProvider,{value:{visible:d,setVisible:y,fieldSchema:f}},i().createElement(void 0===l?"div":l,(n=function(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{},n=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(o).filter(function(e){return Object.getOwnPropertyDescriptor(o,e).enumerable}))),n.forEach(function(t){var n,r,c;n=e,r=t,c=o[t],r in n?Object.defineProperty(n,r,{value:c,enumerable:!0,configurable:!0,writable:!0}):n[r]=c})}return e}({},u),r=(r={onClick:function(){y(!0)}},r),Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(r)):(function(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);o.push.apply(o,n)}return o})(Object(r)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(r,e))}),n),a),i().createElement(s.SchemaComponent,{schema:f,onlyRenderProperties:!0}))}var h=o("573"),w=o("2659");function A(e,t,o,n,r,c,i){try{var l=e[c](i),a=l.value}catch(e){o(e);return}l.done?t(a):Promise.resolve(a).then(n,r)}function S(e){return function(){var t=this,o=arguments;return new Promise(function(n,r){var c=e.apply(t,o);function i(e){A(c,n,r,i,l,"next",e)}function l(e){A(c,n,r,i,l,"throw",e)}i(void 0)})}}function P(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function j(e,t){var o,n,r,c,i={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return c={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(c[Symbol.iterator]=function(){return this}),c;function l(c){return function(l){return function(c){if(o)throw TypeError("Generator is already executing.");for(;i;)try{if(o=1,n&&(r=2&c[0]?n.return:c[0]?n.throw||((r=n.return)&&r.call(n),0):n.next)&&!(r=r.call(n,c[1])).done)return r;switch(n=0,r&&(c=[2&c[0],r.value]),c[0]){case 0:case 1:r=c;break;case 4:return i.label++,{value:c[1],done:!1};case 5:i.label++,n=c[1],c=[0];continue;case 7:c=i.ops.pop(),i.trys.pop();continue;default:if(!(r=(r=i.trys).length>0&&r[r.length-1])&&(6===c[0]||2===c[0])){i=0;continue}if(3===c[0]&&(!r||c[1]>r[0]&&c[1]<r[3])){i.label=c[1];break}if(6===c[0]&&i.label<r[1]){i.label=r[1],r=c;break}if(r&&i.label<r[2]){i.label=r[2],i.ops.push(c);break}r[2]&&i.ops.pop(),i.trys.pop();continue}c=t.call(e,i)}catch(e){c=[6,e],n=0}finally{o=r=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,l])}}}var C={name:"workflows",fields:[{type:"string",name:"title",interface:"input",uiSchema:{title:'{{t("Name")}}',type:"string","x-component":"Input",required:!0}},{type:"string",name:"type",interface:"select",uiSchema:{title:'{{t("Trigger type", { ns: "'.concat(h.A7,'" })}}'),type:"string","x-decorator":"FormItem","x-component":"Select",enum:"{{useTriggersOptions()}}","x-component-props":{optionRender:function(e){var t=e.data,o=t.label,n=t.color,r=t.options,c=(0,s.useCompile)();return i().createElement(l.Space,{direction:"vertical"},i().createElement(l.Tag,{color:n},c(o)),i().createElement(l.Typography.Text,{type:"secondary",style:{whiteSpace:"normal"}},c(r.description)))},popupMatchSelectWidth:!0,listHeight:300},required:!0}},{type:"boolean",name:"sync",interface:"select",uiSchema:{title:'{{t("Mode", { ns: "'.concat(h.A7,'" })}}'),type:"boolean","x-decorator":"FormItem","x-component":"Select",enum:[{label:'{{ t("Asynchronously", { ns: "'.concat(h.A7,'" }) }}'),value:!1,color:"cyan"},{label:'{{ t("Synchronously", { ns: "'.concat(h.A7,'" }) }}'),value:!0,color:"orange"}],required:!0}},{type:"string",name:"description",interface:"textarea",uiSchema:{title:'{{t("Description")}}',type:"string","x-component":"Input.TextArea"}},{type:"boolean",name:"enabled",interface:"radioGroup",uiSchema:{title:'{{t("Status", { ns: "'.concat(h.A7,'" })}}'),type:"string",enum:[{label:'{{t("On", { ns: "'.concat(h.A7,'" })}}'),value:!0,color:"#52c41a"},{label:'{{t("Off", { ns: "'.concat(h.A7,'" })}}'),value:!1}],"x-component":"Radio.Group","x-decorator":"FormItem",default:!1}},{type:"number",name:"allExecuted",interface:"integer",uiSchema:{title:'{{t("Executed", { ns: "'.concat(h.A7,'" })}}'),type:"number","x-component":"InputNumber","x-decorator":"FormItem"}},{type:"object",name:"options"}]},k={title:{"x-component":"CollectionField","x-decorator":"FormItem"},type:{"x-component":"CollectionField","x-decorator":"FormItem"},sync:{type:"boolean",title:'{{ t("Execute mode", { ns: "'.concat(h.A7,'" }) }}'),description:'{{ t("Execute workflow asynchronously or synchronously based on trigger type, and could not be changed after created.", { ns: "'.concat(h.A7,'" }) }}'),"x-decorator":"FormItem","x-component":"SyncOptionSelect","x-component-props":{options:[{label:'{{ t("Asynchronously", { ns: "'.concat(h.A7,'" }) }}'),value:!1,tooltip:'{{ t("Will be executed in the background as a queued task.", { ns: "'.concat(h.A7,'" }) }}')},{label:'{{ t("Synchronously", { ns: "'.concat(h.A7,'" }) }}'),value:!0,tooltip:'{{ t("For user actions that require immediate feedback. Can not use asynchronous nodes in such mode, and it is not recommended to perform time-consuming operations under synchronous mode.", { ns: "'.concat(h.A7,'" }) }}')}]}},enabled:{"x-component":"CollectionField","x-decorator":"FormItem"},description:{"x-component":"CollectionField","x-decorator":"FormItem"},options:{type:"object","x-component":"fieldset",properties:{deleteExecutionOnStatus:{type:"array",title:'{{ t("Auto delete history when execution is on end status", { ns: "'.concat(h.A7,'" }) }}'),"x-decorator":"FormItem","x-component":"ExecutionStatusSelect","x-component-props":{multiple:!0}}}}},E=P({name:"workflow",type:"void"},"properties",P({},"provider",P({type:"void","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:C,resourceName:"workflows",request:{resource:"workflows",action:"list",params:{filter:{current:!0},sort:["-createdAt"],except:["config"]}}},"x-component":"CollectionProvider_deprecated","x-component-props":{collection:C}},"properties",P({actions:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:16}},properties:{filter:{type:"void",title:'{{ t("Filter") }}',default:{$and:[{title:{$includes:""}}]},"x-action":"filter","x-component":"Filter.Action","x-use-component-props":"cm.useFilterActionProps","x-component-props":{icon:"FilterOutlined"},"x-align":"left"},refresher:{type:"void",title:'{{ t("Refresh") }}',"x-component":"Action","x-use-component-props":"useRefreshActionProps","x-component-props":{icon:"ReloadOutlined"}},sync:{type:"void",title:'{{t("Sync", { ns: "'.concat(h.A7,'" })}}'),"x-decorator":"Tooltip","x-decorator-props":{title:'{{ t("Sync enabled status of all workflows from database", { ns: "'.concat(h.A7,'" }) }}')},"x-component":"Action","x-component-props":{icon:"SyncOutlined",useAction:function(){var e=(0,f.useTranslation)().t,t=(0,s.useResourceContext)().resource,o=(0,s.useResourceActionContext)();return{run:function(){return S(function(){return j(this,function(n){switch(n.label){case 0:return[4,t.sync()];case 1:return n.sent(),[4,null==o?void 0:o.refresh()];case 2:return n.sent(),l.message.success(e("Operation succeeded")),[2]}})})()}}}},"x-reactions":["{{useWorkflowSyncAction}}"]},delete:{type:"void",title:'{{t("Delete")}}',"x-component":"Action","x-component-props":{icon:"DeleteOutlined",useAction:"{{ cm.useBulkDestroyAction }}",confirm:{title:"{{t('Delete record')}}",content:"{{t('Are you sure you want to delete it?')}}"}}},create:{type:"void",title:'{{t("Add new")}}',"x-component":"Action","x-component-props":{type:"primary",icon:"PlusOutlined"},properties:{drawer:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{initialValue:{current:!0}},title:'{{t("Add new")}}',properties:{title:k.title,type:k.type,sync:k.sync,description:k.description,options:k.options,footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{cancel:{title:'{{ t("Cancel") }}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},submit:{title:'{{ t("Submit") }}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ cm.useCreateAction }}"}}}}}}}}}}},"table",P({type:"void","x-component":"Table.Void","x-component-props":{rowKey:"id",rowSelection:{type:"checkbox"},useDataSource:"{{ cm.useDataSourceFromRAC }}"}},"properties",P({title:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{title:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},type:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{type:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},sync:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{sync:{type:"boolean","x-component":"CollectionField","x-read-pretty":!0}}},enabled:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{enabled:{type:"boolean","x-component":"CollectionField","x-read-pretty":!0,default:!1}}},allExecuted:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{allExecuted:{type:"number","x-decorator":"OpenDrawer","x-decorator-props":{component:function(e){var t=(0,s.useRecord)();return i().createElement("a",function(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{},n=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(o).filter(function(e){return Object.getOwnPropertyDescriptor(o,e).enumerable}))),n.forEach(function(t){P(e,t,o[t])})}return e}({"aria-label":"executed-".concat(t.title)},e))}},"x-component":"CollectionField","x-read-pretty":!0,properties:{drawer:w.V}}}}},"actions",P({type:"void",title:'{{ t("Actions") }}',"x-component":"Table.Column"},"properties",P({},"actions",P({type:"void","x-component":"Space","x-component-props":{split:"|"}},"properties",(P(r={configure:{type:"void","x-component":"WorkflowLink"},update:{type:"void",title:'{{ t("Edit") }}',"x-component":"Action.Link","x-component-props":{type:"primary"},properties:{drawer:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{useValues:"{{ cm.useValuesFromRecord }}"},title:'{{ t("Edit") }}',properties:{title:k.title,enabled:k.enabled,sync:k.sync,description:k.description,options:k.options,footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{cancel:{title:'{{ t("Cancel") }}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},submit:{title:'{{ t("Submit") }}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ cm.useUpdateAction }}"}}}}}}}}},"revision",P({type:"void",title:'{{t("Duplicate", { ns: "'.concat(h.A7,'" })}}'),"x-component":"Action.Link","x-component-props":{openSize:"small"}},"properties",P({},"modal",P({type:"void",title:'{{t("Duplicate to new workflow", { ns: "'.concat(h.A7,'" })}}'),"x-decorator":"FormV2","x-component":"Action.Modal"},"properties",P({title:{type:"string",title:'{{t("Title")}}',"x-decorator":"FormItem","x-component":"Input"}},"footer",P({type:"void","x-component":"Action.Modal.Footer"},"properties",(P(n={},"submit",P({type:"void",title:'{{t("Submit")}}',"x-component":"Action"},"x-component-props",P({type:"primary"},"useAction",function(){var e=(0,f.useTranslation)().t,t=(0,s.useResourceActionContext)().refresh,o=(0,s.useResourceContext)(),n=o.resource,r=o.targetKey,c=(0,s.useActionContext)().setVisible,i=(0,s.useRecord)()[r],a=(0,p.useForm)().values;return{run:function(){return S(function(){return j(this,function(o){switch(o.label){case 0:return[4,n.revision({filterByTk:i,values:a})];case 1:return o.sent(),l.message.success(e("Operation succeeded")),t(),c(!1),[2]}})})()}}}))),P(n,"cancel",{type:"void",title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}}),n))))))),P(r,"delete",{type:"void",title:'{{ t("Delete") }}',"x-component":"Action.Link","x-component-props":{confirm:{title:"{{t('Delete record')}}",content:"{{t('Are you sure you want to delete it?')}}"},useAction:"{{ cm.useDestroyActionAndRefreshCM }}"}}),r)))))))))),F=o("2266"),D=o("5019"),T=o("8327");function I(e){var t=(0,p.useField)(),o=(0,s.useRecord)(),n=(0,s.usePlugin)(D.default);return(0,p.useFormEffects)(function(e){(0,a.onFieldChange)("type",function(e){var r=o.id||!e.value;if(e.value){var c=n.triggers.get(e.value);null!=c.sync?(r=!0,t.setValue(c.sync)):t.setInitialValue(!1)}t.setPattern(r?"disabled":"editable")})}),(0,c.useEffect)(function(){if(o.id){t.setPattern("disabled");var e=n.triggers.get(o.type);null!=e.sync?t.setValue(e.sync):t.setInitialValue(!1)}},[o.id,t,n.triggers]),i().createElement(D.RadioWithTooltip,e)}function R(e){var t=(0,s.useApp)();e.visible=!!((0,s.usePlugin)("multi-app-share-collection")||"main"!==t.name)}function V(){var e,t,o=(0,c.useContext)(s.SchemaComponentContext),n=(0,s.usePlugin)(D.default).useTriggersOptions;return i().createElement(l.Card,{bordered:!1},i().createElement(s.SchemaComponentContext.Provider,{value:(e=function(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{},n=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(o).filter(function(e){return Object.getOwnPropertyDescriptor(o,e).enumerable}))),n.forEach(function(t){var n,r,c;n=e,r=t,c=o[t],r in n?Object.defineProperty(n,r,{value:c,enumerable:!0,configurable:!0,writable:!0}):n[r]=c})}return e}({},o),t=(t={designable:!1},t),Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);o.push.apply(o,n)}return o})(Object(t)).forEach(function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(t,o))}),e)},i().createElement(s.SchemaComponent,{schema:E,components:{WorkflowLink:v,ExecutionResourceProvider:y,ExecutionLink:u.a,OpenDrawer:g,ExecutionStatusSelect:F.P,SyncOptionSelect:I,ExecutionStatusColumn:F.r,Tooltip:l.Tooltip},scope:{useTriggersOptions:n,useWorkflowSyncAction:R,useRefreshActionProps:T.X}})))}}}]);
|
package/dist/client/929.index.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is part of the NocoBase (R) project.
|
|
3
|
-
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
-
* Authors: NocoBase Team.
|
|
5
|
-
*
|
|
6
|
-
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
-
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
"use strict";(self.webpackChunk_nocobase_plugin_workflow=self.webpackChunk_nocobase_plugin_workflow||[]).push([["929"],{458:function(e,t,r){r.d(t,{g:function(){return k}});var n=r("2721"),o=r("8156"),a=r.n(o);let l=(0,o.createContext)(null),i={didCatch:!1,error:null};class c extends o.Component{constructor(e){super(e),this.resetErrorBoundary=this.resetErrorBoundary.bind(this),this.state=i}static getDerivedStateFromError(e){return{didCatch:!0,error:e}}resetErrorBoundary(){let{error:e}=this.state;if(null!==e){for(var t,r,n=arguments.length,o=Array(n),a=0;a<n;a++)o[a]=arguments[a];null===(t=(r=this.props).onReset)||void 0===t||t.call(r,{args:o,reason:"imperative-api"}),this.setState(i)}}componentDidCatch(e,t){var r,n;null===(r=(n=this.props).onError)||void 0===r||r.call(n,e,t)}componentDidUpdate(e,t){let{didCatch:r}=this.state,{resetKeys:n}=this.props;if(r&&null!==t.error&&function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return e.length!==t.length||e.some((e,r)=>!Object.is(e,t[r]))}(e.resetKeys,n)){var o,a;null===(o=(a=this.props).onReset)||void 0===o||o.call(a,{next:n,prev:e.resetKeys,reason:"keys"}),this.setState(i)}}render(){let{children:e,fallbackRender:t,FallbackComponent:r,fallback:n}=this.props,{didCatch:a,error:i}=this.state,c=e;if(a){let e={error:i,resetErrorBoundary:this.resetErrorBoundary};if((0,o.isValidElement)(n))c=n;else if("function"==typeof t)c=t(e);else if(r)c=(0,o.createElement)(r,e);else throw i}return(0,o.createElement)(l.Provider,{value:{didCatch:a,error:i,resetErrorBoundary:this.resetErrorBoundary}},c)}}var s=r("3772"),u=r("2708"),d=r("8018"),f=r("573"),p=r("8378"),m=r("336"),v=r("5071");function y(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function b(e,t){return!t&&(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function h(){var e=b(["\n margin-top: 0 !important;\n "]);return h=function(){return e},e}function w(){var e=b(["\n margin-bottom: 1em;\n "]);return w=function(){return e},e}function g(){var e=b(["\n margin-top: 0 !important;\n "]);return g=function(){return e},e}function k(e){var t,r,o=e.entry,l=(0,p.Z)().styles,i=(0,d.G)().workflow;var b=(t=a().useState(100),r=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var r,n,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],l=!0,i=!1;try{for(o=o.call(e);!(l=(r=o.next()).done)&&(a.push(r.value),!t||a.length!==t);l=!0);}catch(e){i=!0,n=e}finally{try{!l&&null!=o.return&&o.return()}finally{if(i)throw n}}return a}}(t,2)||function(e,t){if(e){if("string"==typeof e)return y(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return y(e,t)}}(t,r)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),k=b[0],E=b[1];return a().createElement("div",{className:"workflow-canvas-wrapper"},a().createElement(c,{FallbackComponent:s.ErrorFallback,onError:console.error},a().createElement(v.E1,null,a().createElement("div",{className:"workflow-canvas",style:{zoom:k/100}},a().createElement("div",{className:(0,s.cx)(l.branchBlockClass,(0,s.css)(h()))},a().createElement("div",{className:l.branchClass},(null==i?void 0:i.executed)?a().createElement(n.Alert,{type:"warning",message:(0,f.KQ)("Executed workflow cannot be modified. Could be copied to a new version to modify."),showIcon:!0,className:(0,s.css)(w())}):null,a().createElement(m.Gk,null),a().createElement("div",{className:(0,s.cx)(l.branchBlockClass,(0,s.css)(g()))},a().createElement(u.I,{entry:o})),a().createElement("div",{className:l.terminalClass},(0,f.KQ)("End"))))))),a().createElement("div",{className:"workflow-canvas-zoomer"},a().createElement(n.Slider,{vertical:!0,reverse:!0,defaultValue:100,step:10,min:10,value:k,onChange:E})))}},5437:function(e,t,r){r.r(t),r.d(t,{WorkflowPage:function(){return G}});var n=r("3772"),o=r("8156"),a=r.n(o),l=r("6128"),i=r("8378"),c=r("3238"),s=r("2721"),u=r("482"),d=r("7584"),f=r("458"),p=r("2266"),m=r("8958"),v=r("8018"),y=r("573"),b=r("2659"),h=r("7893"),w=r("1188"),g=r("8327"),k=r("336"),E=r("3505"),x=r("9144"),A=r("5019");function C(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function O(e,t,r,n,o,a,l){try{var i=e[a](l),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,o)}function S(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var a=e.apply(t,r);function l(e){O(a,n,o,l,i,"next",e)}function i(e){O(a,n,o,l,i,"throw",e)}l(void 0)})}}function j(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n,o,a;n=e,o=t,a=r[t],o in n?Object.defineProperty(n,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):n[o]=a})}return e}function P(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function T(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],!(t.indexOf(r)>=0)&&(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++){if(r=a[n],!(t.indexOf(r)>=0))Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}}return o}function N(e,t){var r,n,o,a,l={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(a){return function(i){return function(a){if(r)throw TypeError("Generator is already executing.");for(;l;)try{if(r=1,n&&(o=2&a[0]?n.return:a[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,a[1])).done)return o;switch(n=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return l.label++,{value:a[1],done:!1};case 5:l.label++,n=a[1],a=[0];continue;case 7:a=l.ops.pop(),l.trys.pop();continue;default:if(!(o=(o=l.trys).length>0&&o[o.length-1])&&(6===a[0]||2===a[0])){l=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){l.label=a[1];break}if(6===a[0]&&l.label<o[1]){l.label=o[1],o=a;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(a);break}o[2]&&l.ops.pop(),l.trys.pop();continue}a=t.call(e,l)}catch(e){a=[6,e],n=0}finally{r=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,i])}}}function K(){var e,t,r=(e=["\n margin-bottom: 1em;\n "],!t&&(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return K=function(){return r},r}function D(e){var t,r=e.request,o=(e.filter,T(e,["request","filter"])),l=(0,v.G)().workflow,i=P(j({},o),{request:P(j({},r),{params:P(j({},null==r?void 0:r.params),{filter:P(j({},null==r?void 0:null===(t=r.params)||void 0===t?void 0:t.filter),{key:l.key})})})});return a().createElement(n.ResourceActionProvider,i)}function R(e){var t=e.data,r=e.option,o=(0,n.useCompile)()(r.label);return a().createElement(c.Trans,{ns:y.A7,values:{statusText:o}},"Workflow executed, the result status is ",a().createElement(s.Tag,{color:r.color},"{{statusText}}"),a().createElement(l.Link,{to:"/admin/workflow/executions/".concat(t.id)},"View the execution"))}function B(){var e=(0,v.G)().workflow,t=(0,E.useForm)(),r=(0,n.useResourceContext)().resource,o=(0,n.useActionContext)(),l=(0,n.useNavigateNoUpdate)(),i=s.App.useApp().message,c=t.values,u=c.autoRevision,d=T(c,["autoRevision"]);return{run:function(){return S(function(){var n;return N(this,function(c){switch(c.label){case 0:return[4,t.submit()];case 1:return c.sent(),[4,r.execute(j({filterByTk:e.id,values:d},!e.executed&&u?{autoRevision:1}:{}))];case 2:var s,f,p,m;return n=c.sent().data.data,t.reset(),o.setFormValueChanged(!1),o.setVisible(!1),null==i||i.open((f=(s=n.execution).id,p=s.status,(m=x.uy[p])?{type:"info",content:a().createElement(R,{data:{id:f},option:m})}:null)),n.newVersionId&&l("/admin/workflow/workflows/".concat(n.newVersionId)),[2]}})})()}}}function F(e){var t=e.children,r=(0,E.useField)(),n=(0,v.G)().workflow,o=(0,k.cC)(),l=o.validate(n.config),i="";switch(!0){case!l:i=(0,y.KQ)("The trigger is not configured correctly, please check the trigger configuration.");break;case!o.triggerFieldset:i=(0,y.KQ)("This type of trigger has not been supported to be executed manually.")}return r.setPattern(i?"disabled":"editable"),i?a().createElement(s.Tooltip,{title:i},t):t}function I(){var e,t=(0,v.G)().workflow,r=(0,k.cC)();return a().createElement(n.SchemaComponent,{components:j({Alert:s.Alert,Fieldset:w.p,ActionDisabledProvider:F},r.components),scope:{useCancelAction:n.useCancelAction,useExecuteConfirmAction:B},schema:{name:"trigger-modal-".concat(t.type,"-").concat(t.id),type:"void","x-decorator":"ActionDisabledProvider","x-component":"Action","x-component-props":{openSize:"small"},title:"{{t('Execute manually', { ns: \"".concat(y.A7,'" })}}'),properties:{drawer:{type:"void","x-decorator":"FormV2","x-component":"Action.Modal",title:"{{t('Execute manually', { ns: \"".concat(y.A7,'" })}}'),properties:P(j(P(j({},Object.keys(null!==(e=r.triggerFieldset)&&void 0!==e?e:{}).length?{alert:{type:"void","x-component":"Alert","x-component-props":{message:"{{t('Trigger variables need to be filled for executing.', { ns: \"".concat(y.A7,'" })}}'),className:(0,n.css)(K())}}}:{description:{type:"void","x-component":"p","x-content":"{{t('This will perform all the actions configured in the workflow. Are you sure you want to continue?', { ns: \"".concat(y.A7,'" })}}')}}),{fieldset:{type:"void","x-decorator":"FormItem","x-component":"Fieldset",title:"{{t('Trigger variables', { ns: \"".concat(y.A7,'" })}}'),properties:r.triggerFieldset}}),t.executed?{}:{autoRevision:{type:"boolean","x-decorator":"FormItem","x-component":"Checkbox","x-content":"{{t('Automatically create a new version after execution', { ns: \"".concat(y.A7,'" })}}'),default:!0}}),{footer:{type:"void","x-component":"Action.Modal.Footer",properties:{cancel:{type:"void",title:"{{t('Cancel')}}","x-component":"Action","x-component-props":{useAction:"{{useCancelAction}}"}},submit:{type:"void",title:"{{t('Confirm')}}","x-component":"Action","x-component-props":{type:"primary",useAction:"{{useExecuteConfirmAction}}"}}}}})}}}})}function Q(){var e,t,r=(0,v.G)(),i=r.workflow,d=r.revisions;var f=(e=(0,o.useState)(!1),t=2,function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],l=!0,i=!1;try{for(o=o.call(e);!(l=(r=o.next()).done)&&(a.push(r.value),!t||a.length!==t);l=!0);}catch(e){i=!0,n=e}finally{try{!l&&null!=o.return&&o.return()}finally{if(i)throw n}}return a}}(e,2)||function(e,t){if(e){if("string"==typeof e)return C(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return C(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),w=f[0],k=f[1],E=(0,l.useNavigate)(),x=(0,c.useTranslation)().t,A=s.App.useApp().modal,O=(0,n.useApp)(),j=(0,n.useResourceContext)().resource,P=s.App.useApp().message,T=(0,o.useCallback)(S(function(){var e;return N(this,function(t){switch(t.label){case 0:return[4,j.revision({filterByTk:i.id,filter:{key:i.key}})];case 1:return e=t.sent().data.data,P.success(x("Operation succeeded")),E("/admin/workflow/workflows/".concat(e.id)),[2]}})}),[j,i.id,i.key,P,x,E]),K=(0,o.useCallback)(S(function(){var e;return N(this,function(t){return e=i.current?(0,y.KQ)("Delete a main version will cause all other revisions to be deleted too."):"",A.confirm({title:x("Are you sure you want to delete it?"),content:e,onOk:function(){return S(function(){var e;return N(this,function(t){switch(t.label){case 0:return[4,j.destroy({filterByTk:i.id})];case 1:return t.sent(),P.success(x("Operation succeeded")),E(i.current?O.pluginSettingsManager.getRoutePath("workflow"):(0,h.SI)(null===(e=d.find(function(e){return e.current}))||void 0===e?void 0:e.id)),[2]}})})()}}),[2]})}),[i,A,x,j,P,E,O.pluginSettingsManager,d]),R=(0,o.useCallback)(function(e){switch(e.key){case"history":k(!0);return;case"revision":return T();case"delete":return K()}},[K,T]),B=i.executed&&!d.find(function(e){return!e.executed&&new Date(e.createdAt)>new Date(i.createdAt)});return a().createElement(a().Fragment,null,a().createElement(s.Dropdown,{menu:{items:[{key:"key",label:"Key: ".concat(i.key),disabled:!0},{type:"divider"},{role:"button","aria-label":"history",key:"history",label:(0,y.KQ)("Execution history"),disabled:!i.allExecuted},{role:"button","aria-label":"revision",key:"revision",label:(0,y.KQ)("Copy to new version"),disabled:!B},{type:"divider"},{role:"button","aria-label":"delete",danger:!0,key:"delete",label:x("Delete")}],onClick:R}},a().createElement(s.Button,{"aria-label":"more",type:"text",icon:a().createElement(u.EllipsisOutlined,null)})),a().createElement(n.ActionContextProvider,{value:{visible:w,setVisible:k}},a().createElement(n.SchemaComponent,{schema:b.V,components:{ExecutionResourceProvider:D,ExecutionLink:m.a,ExecutionStatusColumn:p.r},scope:{useRefreshActionProps:g.X}})))}function V(){var e,t,r=(0,l.useNavigate)(),c=(0,n.useApp)(),p=(0,n.useResourceActionContext)(),m=p.data,b=p.refresh,w=p.loading,g=(0,n.useResourceContext)().resource,k=(0,n.useDocumentTitle)().setTitle,E=(0,i.Z)().styles;(0,n.usePlugin)(A.default);var x=null!==(t=null==m?void 0:m.data)&&void 0!==t?t:{},C=x.nodes,O=void 0===C?[]:C,j=x.revisions,P=void 0===j?[]:j,K=T(x,["nodes","revisions"]);(0,h.Yc)(O),(0,o.useEffect)(function(){var e,t=(null!==(e=null==m?void 0:m.data)&&void 0!==e?e:{}).title;null==k||k("".concat((0,y.KQ)("Workflow")).concat(t?": ".concat(t):""))},[null==m?void 0:m.data,k]);var D=(0,o.useCallback)(function(e){var t=e.key;t!=K.id&&r((0,h.SI)(t))},[K.id,r]);var R=(0,o.useCallback)((e=S(function(e){return N(this,function(t){switch(t.label){case 0:return[4,g.update({filterByTk:K.id,values:{enabled:e}})];case 1:return t.sent(),b(),[2]}})}),function(t){return e.apply(this,arguments)}),[g,K.id,b]);if(!(null==m?void 0:m.data))return w?a().createElement(s.Spin,null):a().createElement(s.Result,{status:"404",title:"Not found",extra:a().createElement(s.Button,{onClick:function(){return r(-1)}},(0,y.KQ)("Go back"))});var B=O.find(function(e){return!e.upstream});return a().createElement(v.i.Provider,{value:{workflow:K,revisions:P,nodes:O,refresh:b}},a().createElement("div",{className:"workflow-toolbar"},a().createElement("header",null,a().createElement(s.Breadcrumb,{items:[{title:a().createElement(l.Link,{to:c.pluginSettingsManager.getRoutePath("workflow")},(0,y.KQ)("Workflow"))},{title:a().createElement(s.Tooltip,{title:"Key: ".concat(K.key)},a().createElement("strong",null,K.title))}]}),K.sync?a().createElement(s.Tag,{color:"orange"},(0,y.KQ)("Synchronously")):a().createElement(s.Tag,{color:"cyan"},(0,y.KQ)("Asynchronously"))),a().createElement("aside",null,a().createElement(I,null),a().createElement(s.Dropdown,{className:"workflow-versions",trigger:["click"],menu:{onClick:D,defaultSelectedKeys:["".concat(K.id)],className:(0,n.cx)(E.dropdownClass,E.workflowVersionDropdownClass),items:P.sort(function(e,t){return t.id-e.id}).map(function(e,t){return{role:"button","aria-label":"version-".concat(t),key:"".concat(e.id),icon:e.current?a().createElement(u.RightOutlined,null):null,className:(0,n.cx)({executed:e.executed,unexecuted:!e.executed,enabled:e.enabled}),label:a().createElement(a().Fragment,null,a().createElement("strong",null,"#".concat(e.id)),a().createElement("time",null,(0,d.dayjs)(e.createdAt).fromNow()))}})}},a().createElement(s.Button,{type:"text","aria-label":"version"},a().createElement("label",null,(0,y.KQ)("Version")),a().createElement("span",null,(null==K?void 0:K.id)?"#".concat(K.id):null),a().createElement(u.DownOutlined,null))),a().createElement(s.Switch,{checked:K.enabled,onChange:R,checkedChildren:(0,y.KQ)("On"),unCheckedChildren:(0,y.KQ)("Off")}),a().createElement(Q,null))),a().createElement(f.g,{entry:B}))}var G=function(){var e,t,r,o=(0,l.useParams)(),c=(0,i.Z)().styles;return a().createElement("div",{className:(0,n.cx)(c.workflowPageClass)},a().createElement(n.SchemaComponent,{schema:{type:"void",properties:(e={},t="provider_".concat(o.id),r={type:"void","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:{name:"workflows",fields:[]},resourceName:"workflows",request:{resource:"workflows",action:"get",params:{filter:{id:o.id},appends:["nodes","revisions.id","revisions.createdAt","revisions.current","revisions.executed","revisions.enabled"]}}},"x-component":"WorkflowCanvas"},t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e)},components:{WorkflowCanvas:V}}))}}}]);
|
package/dist/client/999.index.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is part of the NocoBase (R) project.
|
|
3
|
-
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
-
* Authors: NocoBase Team.
|
|
5
|
-
*
|
|
6
|
-
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
-
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
"use strict";(self.webpackChunk_nocobase_plugin_workflow=self.webpackChunk_nocobase_plugin_workflow||[]).push([["999"],{458:function(e,t,n){n.d(t,{g:function(){return g}});var r=n("2721"),o=n("8156"),a=n.n(o);let l=(0,o.createContext)(null),i={didCatch:!1,error:null};class c extends o.Component{constructor(e){super(e),this.resetErrorBoundary=this.resetErrorBoundary.bind(this),this.state=i}static getDerivedStateFromError(e){return{didCatch:!0,error:e}}resetErrorBoundary(){let{error:e}=this.state;if(null!==e){for(var t,n,r=arguments.length,o=Array(r),a=0;a<r;a++)o[a]=arguments[a];null===(t=(n=this.props).onReset)||void 0===t||t.call(n,{args:o,reason:"imperative-api"}),this.setState(i)}}componentDidCatch(e,t){var n,r;null===(n=(r=this.props).onError)||void 0===n||n.call(r,e,t)}componentDidUpdate(e,t){let{didCatch:n}=this.state,{resetKeys:r}=this.props;if(n&&null!==t.error&&function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return e.length!==t.length||e.some((e,n)=>!Object.is(e,t[n]))}(e.resetKeys,r)){var o,a;null===(o=(a=this.props).onReset)||void 0===o||o.call(a,{next:r,prev:e.resetKeys,reason:"keys"}),this.setState(i)}}render(){let{children:e,fallbackRender:t,FallbackComponent:n,fallback:r}=this.props,{didCatch:a,error:i}=this.state,c=e;if(a){let e={error:i,resetErrorBoundary:this.resetErrorBoundary};if((0,o.isValidElement)(r))c=r;else if("function"==typeof t)c=t(e);else if(n)c=(0,o.createElement)(n,e);else throw i}return(0,o.createElement)(l.Provider,{value:{didCatch:a,error:i,resetErrorBoundary:this.resetErrorBoundary}},c)}}var s=n("3772"),u=n("2708"),d=n("8018"),m=n("573"),f=n("8378"),p=n("336"),v=n("5071");function y(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function E(e,t){return!t&&(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function h(){var e=E(["\n margin-top: 0 !important;\n "]);return h=function(){return e},e}function b(){var e=E(["\n margin-bottom: 1em;\n "]);return b=function(){return e},e}function w(){var e=E(["\n margin-top: 0 !important;\n "]);return w=function(){return e},e}function g(e){var t,n,o=e.entry,l=(0,f.Z)().styles,i=(0,d.G)().workflow;var E=(t=a().useState(100),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n,r,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],l=!0,i=!1;try{for(o=o.call(e);!(l=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);l=!0);}catch(e){i=!0,r=e}finally{try{!l&&null!=o.return&&o.return()}finally{if(i)throw r}}return a}}(t,2)||function(e,t){if(e){if("string"==typeof e)return y(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return y(e,t)}}(t,n)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),g=E[0],x=E[1];return a().createElement("div",{className:"workflow-canvas-wrapper"},a().createElement(c,{FallbackComponent:s.ErrorFallback,onError:console.error},a().createElement(v.E1,null,a().createElement("div",{className:"workflow-canvas",style:{zoom:g/100}},a().createElement("div",{className:(0,s.cx)(l.branchBlockClass,(0,s.css)(h()))},a().createElement("div",{className:l.branchClass},(null==i?void 0:i.executed)?a().createElement(r.Alert,{type:"warning",message:(0,m.KQ)("Executed workflow cannot be modified. Could be copied to a new version to modify."),showIcon:!0,className:(0,s.css)(b())}):null,a().createElement(p.Gk,null),a().createElement("div",{className:(0,s.cx)(l.branchBlockClass,(0,s.css)(w()))},a().createElement(u.I,{entry:o})),a().createElement("div",{className:l.terminalClass},(0,m.KQ)("End"))))))),a().createElement("div",{className:"workflow-canvas-zoomer"},a().createElement(r.Slider,{vertical:!0,reverse:!0,defaultValue:100,step:10,min:10,value:g,onChange:x})))}},5625:function(e,t,n){n.r(t),n.d(t,{ExecutionPage:function(){return j}});var r=n("3772"),o=n("8156"),a=n.n(o),l=n("6128"),i=n("2721"),c=n("7584"),s=n("482"),u=n("3238"),d=n("5019"),m=n("458"),f=n("6594"),p=n("9144"),v=n("8018"),y=n("573"),E=n("8378"),h=n("7893");function b(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function w(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++){if(n=a[r],!(t.indexOf(n)>=0))Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}}return o}function g(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],l=!0,i=!1;try{for(o=o.call(e);!(l=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);l=!0);}catch(e){i=!0,r=e}finally{try{!l&&null!=o.return&&o.return()}finally{if(i)throw r}}return a}}(e,t)||k(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function x(e){return function(e){if(Array.isArray(e))return b(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||k(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function k(e,t){if(e){if("string"==typeof e)return b(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return b(e,t)}}function C(){var e,t,n,o=(0,r.usePlugin)(d.default).instructions,l=(0,r.useCompile)(),c=(0,v.G)(),s=c.viewJob,u=c.setViewJob,m=(0,E.Z)().styles,f=(null!=s?s:{}).node,h=void 0===f?{}:f,b=o.get(h.type);return a().createElement(r.ActionContextProvider,{value:{visible:!!s,setVisible:u}},a().createElement(r.SchemaComponent,{schema:{type:"void",properties:(e={},t="".concat(null==s?void 0:s.id,"-").concat(null==s?void 0:s.updatedAt,"-modal"),n={type:"void","x-decorator":"Form","x-decorator-props":{initialValue:s},"x-component":"Action.Modal",title:a().createElement("div",{className:m.nodeTitleClass},a().createElement(i.Tag,null,l(null==b?void 0:b.title)),a().createElement("strong",null,h.title),a().createElement("span",{className:"workflow-node-id"},"#",h.id)),properties:{status:{type:"number",title:'{{t("Status", { ns: "'.concat(y.A7,'" })}}'),"x-decorator":"FormItem","x-component":"Select",enum:p.Vh,"x-read-pretty":!0},updatedAt:{type:"string",title:'{{t("Executed at", { ns: "'.concat(y.A7,'" })}}'),"x-decorator":"FormItem","x-component":"DatePicker","x-component-props":{showTime:!0},"x-read-pretty":!0},result:{type:"object",title:'{{t("Node result", { ns: "'.concat(y.A7,'" })}}'),"x-decorator":"FormItem","x-component":"Input.JSON","x-component-props":{className:m.nodeJobResultClass,autoSize:{minRows:4,maxRows:32}},"x-disabled":!0}}},t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e)}}))}function S(e){var t=(0,v.G)().execution,n=(0,r.useAPIClient)(),u=(0,l.useNavigate)(),d=(0,E.Z)().styles,m=g((0,o.useState)([]),2),y=m[0],b=m[1],w=g((0,o.useState)([]),2),k=w[0],C=w[1];(0,o.useEffect)(function(){if(!!t)n.resource("executions").list({filter:{key:t.key,id:{$lt:t.id}},sort:"-createdAt",pageSize:10,fields:["id","status","createdAt"]}).then(function(e){b(e.data.data)}).catch(function(){})},[t.id]),(0,o.useEffect)(function(){if(!!t)n.resource("executions").list({filter:{key:t.key,id:{$gt:t.id}},sort:"createdAt",pageSize:10,fields:["id","status","createdAt"]}).then(function(e){C(e.data.data.reverse())}).catch(function(){})},[t.id]);var S=(0,o.useCallback)(function(e){var n=e.key;n!=t.id&&u((0,h.s_)(n))},[t.id]);return t?a().createElement(i.Dropdown,{menu:{onClick:S,defaultSelectedKeys:["".concat(t.id)],className:(0,r.cx)(d.dropdownClass,d.executionsDropdownRowClass),items:x(k).concat([t],x(y)).map(function(e){return{key:e.id,label:a().createElement(a().Fragment,null,a().createElement("span",{className:"id"},"#".concat(e.id)),a().createElement("time",null,(0,c.str2moment)(e.createdAt).format("YYYY-MM-DD HH:mm:ss"))),icon:a().createElement("span",null,a().createElement(f.Y,{statusMap:p.uy,status:e.status}))}})}},a().createElement(i.Space,null,a().createElement("strong",null,"#".concat(t.id)),a().createElement(s.DownOutlined,null))):null}function A(){var e,t=(0,u.useTranslation)().t,n=(0,r.useCompile)(),d=(0,r.useResourceActionContext)(),f=d.data,E=d.loading,b=d.refresh,x=(0,r.useDocumentTitle)().setTitle,k=g((0,o.useState)(null),2),A=k[0],j=k[1],O=(0,r.useApp)(),N=(0,r.useAPIClient)();(0,o.useEffect)(function(){var e,t=(null!==(e=null==f?void 0:f.data)&&void 0!==e?e:{}).workflow;null==x||x("".concat((null==t?void 0:t.title)?"".concat(t.title," - "):"").concat((0,y.KQ)("Execution history")))},[null==f?void 0:f.data,x]);var I=(0,o.useCallback)(function(){i.Modal.confirm({title:(0,y.KQ)("Cancel the execution"),icon:a().createElement(s.ExclamationCircleFilled,null),content:(0,y.KQ)("Are you sure you want to cancel the execution?"),onOk:function(){N.resource("executions").cancel({filterByTk:null==f?void 0:f.data.id}).then(function(){i.message.success(t("Operation succeeded")),b()}).catch(function(e){console.error(e.data.error)})}})},[null==f?void 0:f.data]);if(!(null==f?void 0:f.data))return E?a().createElement(i.Spin,null):a().createElement(i.Result,{status:"404",title:"Not found"});var P=null!==(e=null==f?void 0:f.data)&&void 0!==e?e:{},T=P.jobs,B=P.workflow,D=void 0===B?{}:B,K=D.nodes,M=void 0===K?[]:K,R=(D.revisions,w(P.workflow,["nodes","revisions"])),Y=w(P,["jobs","workflow"]);(0,h.Yc)(M),!function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=new Map;e.forEach(function(e){e.jobs=[],n.set(e.id,e)}),t.forEach(function(e){var t=n.get(e.nodeId);t.jobs.push(e),e.node={id:t.id,key:t.key,title:t.title,type:t.type}}),e.forEach(function(e){e.jobs=e.jobs.sort(function(e,t){return e.id-t.id})})}(M,void 0===T?[]:T);var F=M.find(function(e){return!e.upstream}),z=p.uy[Y.status];return a().createElement(v.i.Provider,{value:{workflow:R.type?R:null,nodes:M,execution:Y,viewJob:A,setViewJob:j}},a().createElement("div",{className:"workflow-toolbar"},a().createElement("header",null,a().createElement(i.Breadcrumb,{items:[{title:a().createElement(l.Link,{to:O.pluginSettingsManager.getRoutePath("workflow")},(0,y.KQ)("Workflow"))},{title:a().createElement(i.Tooltip,{title:"Key: ".concat(R.key)},a().createElement(l.Link,{to:(0,h.SI)(R.id)},R.title))},{title:a().createElement(S,null)}]})),a().createElement("aside",null,a().createElement(i.Tag,{color:z.color},n(z.label)),Y.status?null:a().createElement(i.Tooltip,{title:(0,y.KQ)("Cancel the execution")},a().createElement(i.Button,{type:"link",danger:!0,onClick:I,shape:"circle",size:"small",icon:a().createElement(s.StopOutlined,null)})),a().createElement("time",null,(0,c.str2moment)(Y.updatedAt).format("YYYY-MM-DD HH:mm:ss")))),a().createElement(m.g,{entry:F}),a().createElement(C,null))}var j=function(){var e,t,n,o=(0,l.useParams)(),i=(0,E.Z)().styles;return a().createElement("div",{className:(0,r.cx)(i.workflowPageClass)},a().createElement(r.SchemaComponent,{schema:{type:"void",properties:(e={},t="execution_".concat(o.id),n={type:"void","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:{name:"executions",fields:[]},resourceName:"executions",request:{resource:"executions",action:"get",params:{filter:o,appends:["jobs","workflow","workflow.nodes"]}}},"x-component":"ExecutionCanvas"},t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e)},components:{ExecutionCanvas:A}}))}}}]);
|
|
File without changes
|