@nocobase/plugin-workflow 0.8.0-alpha.8 → 0.8.1-alpha.3
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/lib/client/AddButton.js +21 -13
- package/lib/client/ExecutionCanvas.js +10 -24
- package/lib/client/ExecutionResourceProvider.d.ts +2 -1
- package/lib/client/ExecutionResourceProvider.js +4 -3
- package/lib/client/FlowContext.js +1 -1
- package/lib/client/WorkflowCanvas.js +136 -39
- package/lib/client/WorkflowProvider.d.ts +3 -0
- package/lib/client/WorkflowProvider.js +71 -16
- package/lib/client/WorkflowShortcut.d.ts +0 -1
- package/lib/client/WorkflowShortcut.js +4 -47
- package/lib/client/calculators.d.ts +27 -37
- package/lib/client/calculators.js +168 -150
- package/lib/client/components/CollectionFieldset.js +10 -20
- package/lib/client/components/Duration.js +3 -14
- package/lib/client/components/EjsTextArea.d.ts +2 -0
- package/lib/client/components/EjsTextArea.js +232 -0
- package/lib/client/components/OpenDrawer.d.ts +6 -0
- package/lib/client/components/OpenDrawer.js +93 -0
- package/lib/client/constants.js +11 -9
- package/lib/client/index.d.ts +1 -0
- package/lib/client/index.js +14 -0
- package/lib/client/locale/en-US.d.ts +105 -0
- package/lib/client/locale/en-US.js +111 -0
- package/lib/client/locale/index.d.ts +3 -0
- package/lib/client/locale/index.js +69 -0
- package/lib/client/locale/ja-JP.d.ts +88 -0
- package/lib/client/locale/ja-JP.js +94 -0
- package/lib/client/locale/ru-RU.d.ts +88 -0
- package/lib/client/locale/ru-RU.js +94 -0
- package/lib/client/locale/tr-TR.d.ts +88 -0
- package/lib/client/locale/tr-TR.js +94 -0
- package/lib/client/locale/zh-CN.d.ts +130 -0
- package/lib/client/locale/zh-CN.js +136 -0
- package/lib/client/nodes/calculation.d.ts +0 -1
- package/lib/client/nodes/calculation.js +9 -17
- package/lib/client/nodes/condition.js +16 -22
- package/lib/client/nodes/create.d.ts +3 -1
- package/lib/client/nodes/create.js +11 -11
- package/lib/client/nodes/delay.js +8 -6
- package/lib/client/nodes/index.js +46 -14
- package/lib/client/nodes/parallel.d.ts +0 -1
- package/lib/client/nodes/parallel.js +11 -32
- package/lib/client/nodes/query.js +9 -17
- package/lib/client/nodes/request.d.ts +138 -0
- package/lib/client/nodes/request.js +167 -0
- package/lib/client/nodes/update.js +4 -2
- package/lib/client/schemas/collection.js +3 -1
- package/lib/client/schemas/executions.d.ts +211 -207
- package/lib/client/schemas/executions.js +102 -96
- package/lib/client/schemas/workflows.js +112 -22
- package/lib/client/style.js +7 -7
- package/lib/client/triggers/collection.d.ts +2 -1
- package/lib/client/triggers/collection.js +49 -34
- package/lib/client/triggers/index.d.ts +4 -6
- package/lib/client/triggers/index.js +57 -51
- package/lib/client/triggers/schedule/EndsByField.js +13 -39
- package/lib/client/triggers/schedule/OnField.js +10 -5
- package/lib/client/triggers/schedule/RepeatField.js +6 -14
- package/lib/client/triggers/schedule/ScheduleConfig.js +25 -20
- package/lib/client/triggers/schedule/constants.d.ts +4 -0
- package/lib/client/triggers/schedule/constants.js +11 -0
- package/lib/client/triggers/schedule/index.d.ts +2 -3
- package/lib/client/triggers/schedule/index.js +55 -40
- package/lib/server/Plugin.d.ts +15 -5
- package/lib/server/Plugin.js +176 -61
- package/lib/server/Processor.d.ts +1 -2
- package/lib/server/Processor.js +3 -19
- package/lib/server/actions/jobs.js +2 -3
- package/lib/server/actions/workflows.js +13 -5
- package/lib/server/calculators/index.d.ts +4 -2
- package/lib/server/calculators/index.js +6 -4
- package/lib/server/collections/executions.js +2 -1
- package/lib/server/constants.d.ts +1 -0
- package/lib/server/constants.js +1 -0
- package/lib/server/extensions/assignees/actions.js +2 -3
- package/lib/server/extensions/assignees/collections/users_jobs.js +9 -1
- package/lib/server/index.d.ts +3 -4
- package/lib/server/index.js +21 -44
- package/lib/server/instructions/condition.js +1 -1
- package/lib/server/instructions/create.js +3 -1
- package/lib/server/instructions/delay.js +2 -3
- package/lib/server/instructions/destroy.js +3 -1
- package/lib/server/instructions/index.d.ts +3 -2
- package/lib/server/instructions/index.js +1 -1
- package/lib/server/instructions/prompt.js +2 -1
- package/lib/server/instructions/query.js +3 -1
- package/lib/server/instructions/request.d.ts +14 -0
- package/lib/server/instructions/request.js +154 -0
- package/lib/server/instructions/update.d.ts +1 -1
- package/lib/server/instructions/update.js +3 -1
- package/lib/server/migrations/20221129153547-calculation-variables.d.ts +5 -0
- package/lib/server/migrations/20221129153547-calculation-variables.js +116 -0
- package/lib/server/triggers/collection.js +5 -7
- package/lib/server/triggers/schedule.js +17 -6
- package/package.json +13 -8
package/lib/client/AddButton.js
CHANGED
|
@@ -61,6 +61,8 @@ var _nodes = require("./nodes");
|
|
|
61
61
|
|
|
62
62
|
var _style = require("./style");
|
|
63
63
|
|
|
64
|
+
var _locale = require("./locale");
|
|
65
|
+
|
|
64
66
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
65
67
|
|
|
66
68
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
@@ -140,10 +142,13 @@ function AddButton({
|
|
|
140
142
|
|
|
141
143
|
const groups = [{
|
|
142
144
|
value: 'control',
|
|
143
|
-
name:
|
|
145
|
+
name: `{{t("Control", { ns: "${_locale.NAMESPACE}" })}}`
|
|
144
146
|
}, {
|
|
145
147
|
value: 'collection',
|
|
146
|
-
name:
|
|
148
|
+
name: `{{t("Collection operations", { ns: "${_locale.NAMESPACE}" })}}`
|
|
149
|
+
}, {
|
|
150
|
+
value: 'extended',
|
|
151
|
+
name: `{{t("Extended types", { ns: "${_locale.NAMESPACE}" })}}`
|
|
147
152
|
}];
|
|
148
153
|
const instructionList = Array.from(_nodes.instructions.getValues());
|
|
149
154
|
return _react().default.createElement("div", {
|
|
@@ -152,17 +157,20 @@ function AddButton({
|
|
|
152
157
|
trigger: ['click'],
|
|
153
158
|
overlay: _react().default.createElement(_antd().Menu, {
|
|
154
159
|
onClick: ev => onCreate(ev)
|
|
155
|
-
}, groups.map(group =>
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
160
|
+
}, groups.map(group => {
|
|
161
|
+
const groupInstructions = instructionList.filter(item => item.group === group.value);
|
|
162
|
+
return groupInstructions.length ? _react().default.createElement(_antd().Menu.ItemGroup, {
|
|
163
|
+
key: group.value,
|
|
164
|
+
title: compile(group.name)
|
|
165
|
+
}, groupInstructions.map(item => item.options ? _react().default.createElement(_antd().Menu.SubMenu, {
|
|
166
|
+
key: item.type,
|
|
167
|
+
title: compile(item.title)
|
|
168
|
+
}, item.options.map(option => _react().default.createElement(_antd().Menu.Item, {
|
|
169
|
+
key: option.key
|
|
170
|
+
}, compile(option.label)))) : _react().default.createElement(_antd().Menu.Item, {
|
|
171
|
+
key: item.type
|
|
172
|
+
}, compile(item.title)))) : null;
|
|
173
|
+
})),
|
|
166
174
|
disabled: workflow.executed
|
|
167
175
|
}, _react().default.createElement(_antd().Button, {
|
|
168
176
|
shape: "circle",
|
|
@@ -35,16 +35,6 @@ function _css() {
|
|
|
35
35
|
return data;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
function _reactI18next() {
|
|
39
|
-
const data = require("react-i18next");
|
|
40
|
-
|
|
41
|
-
_reactI18next = function _reactI18next() {
|
|
42
|
-
return data;
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
return data;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
38
|
function _reactRouterDom() {
|
|
49
39
|
const data = require("react-router-dom");
|
|
50
40
|
|
|
@@ -85,6 +75,8 @@ var _Branch = require("./Branch");
|
|
|
85
75
|
|
|
86
76
|
var _constants = require("./constants");
|
|
87
77
|
|
|
78
|
+
var _locale = require("./locale");
|
|
79
|
+
|
|
88
80
|
const _excluded = ["nodes", "revisions"],
|
|
89
81
|
_excluded2 = ["jobs", "workflow"];
|
|
90
82
|
|
|
@@ -137,14 +129,10 @@ function makeNodes(nodes, jobs = []) {
|
|
|
137
129
|
function ExecutionCanvas() {
|
|
138
130
|
var _data$data2;
|
|
139
131
|
|
|
140
|
-
const _useTranslation = (0, _reactI18next().useTranslation)(),
|
|
141
|
-
t = _useTranslation.t;
|
|
142
|
-
|
|
143
132
|
const compile = (0, _client().useCompile)();
|
|
144
133
|
|
|
145
134
|
const _useResourceActionCon = (0, _client().useResourceActionContext)(),
|
|
146
135
|
data = _useResourceActionCon.data,
|
|
147
|
-
refresh = _useResourceActionCon.refresh,
|
|
148
136
|
loading = _useResourceActionCon.loading;
|
|
149
137
|
|
|
150
138
|
const _useDocumentTitle = (0, _client().useDocumentTitle)(),
|
|
@@ -156,14 +144,14 @@ function ExecutionCanvas() {
|
|
|
156
144
|
const _ref = (_data$data = data === null || data === void 0 ? void 0 : data.data) !== null && _data$data !== void 0 ? _data$data : {},
|
|
157
145
|
workflow = _ref.workflow;
|
|
158
146
|
|
|
159
|
-
setTitle(`${(workflow === null || workflow === void 0 ? void 0 : workflow.title) ? `${workflow.title} - ` : ''}${
|
|
147
|
+
setTitle === null || setTitle === void 0 ? void 0 : setTitle(`${(workflow === null || workflow === void 0 ? void 0 : workflow.title) ? `${workflow.title} - ` : ''}${(0, _locale.lang)('Execution history')}`);
|
|
160
148
|
}, [data === null || data === void 0 ? void 0 : data.data]);
|
|
161
149
|
|
|
162
150
|
if (!(data === null || data === void 0 ? void 0 : data.data)) {
|
|
163
151
|
if (loading) {
|
|
164
|
-
return _react().default.createElement("div", null,
|
|
152
|
+
return _react().default.createElement("div", null, (0, _locale.lang)('Loading'));
|
|
165
153
|
} else {
|
|
166
|
-
return _react().default.createElement("div", null,
|
|
154
|
+
return _react().default.createElement("div", null, (0, _locale.lang)('Load failed'));
|
|
167
155
|
}
|
|
168
156
|
}
|
|
169
157
|
|
|
@@ -190,17 +178,15 @@ function ExecutionCanvas() {
|
|
|
190
178
|
}
|
|
191
179
|
}, _react().default.createElement("div", {
|
|
192
180
|
className: "workflow-toolbar"
|
|
193
|
-
}, _react().default.createElement("header", null, _react().default.createElement(
|
|
181
|
+
}, _react().default.createElement("header", null, _react().default.createElement(_antd().Breadcrumb, null, _react().default.createElement(_antd().Breadcrumb.Item, null, _react().default.createElement(_reactRouterDom().Link, {
|
|
194
182
|
to: `/admin/settings/workflow/workflows`
|
|
195
|
-
},
|
|
183
|
+
}, (0, _locale.lang)('Workflow'))), _react().default.createElement(_antd().Breadcrumb.Item, null, _react().default.createElement(_reactRouterDom().Link, {
|
|
196
184
|
to: `/admin/settings/workflow/workflows/${workflow.id}`
|
|
197
|
-
}, workflow.title)), _react().default.createElement("strong", null, `#${execution.id}`)), _react().default.createElement("aside", null, _react().default.createElement(_antd().Tag, {
|
|
185
|
+
}, workflow.title)), _react().default.createElement(_antd().Breadcrumb.Item, null, _react().default.createElement("strong", null, `#${execution.id}`)))), _react().default.createElement("aside", null, _react().default.createElement(_antd().Tag, {
|
|
198
186
|
color: statusOption.color
|
|
199
187
|
}, compile(statusOption.label)), _react().default.createElement("time", null, (0, _client2().str2moment)(execution.updatedAt).format('YYYY-MM-DD HH:mm:ss')))), _react().default.createElement("div", {
|
|
200
188
|
className: "workflow-canvas"
|
|
201
|
-
}, _react().default.createElement(_triggers.TriggerConfig, {
|
|
202
|
-
workflow: workflow
|
|
203
|
-
}), _react().default.createElement("div", {
|
|
189
|
+
}, _react().default.createElement(_triggers.TriggerConfig, null), _react().default.createElement("div", {
|
|
204
190
|
className: _style.branchBlockClass
|
|
205
191
|
}, _react().default.createElement(_Branch.Branch, {
|
|
206
192
|
entry: entry
|
|
@@ -210,5 +196,5 @@ function ExecutionCanvas() {
|
|
|
210
196
|
className: (0, _css().cx)(_style.nodeMetaClass)
|
|
211
197
|
}, _react().default.createElement(_antd().Tag, {
|
|
212
198
|
color: "#333"
|
|
213
|
-
},
|
|
199
|
+
}, (0, _locale.lang)('End'))))));
|
|
214
200
|
}
|
|
@@ -25,7 +25,7 @@ function _client() {
|
|
|
25
25
|
return data;
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
const _excluded = ["request"];
|
|
28
|
+
const _excluded = ["request", "filter"];
|
|
29
29
|
|
|
30
30
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
31
31
|
|
|
@@ -43,6 +43,8 @@ const ExecutionResourceProvider = _ref => {
|
|
|
43
43
|
var _request$params;
|
|
44
44
|
|
|
45
45
|
let request = _ref.request,
|
|
46
|
+
_ref$filter = _ref.filter,
|
|
47
|
+
filter = _ref$filter === void 0 ? {} : _ref$filter,
|
|
46
48
|
others = _objectWithoutProperties(_ref, _excluded);
|
|
47
49
|
|
|
48
50
|
const workflow = (0, _client().useRecord)();
|
|
@@ -54,8 +56,7 @@ const ExecutionResourceProvider = _ref => {
|
|
|
54
56
|
key: workflow.key
|
|
55
57
|
})
|
|
56
58
|
})
|
|
57
|
-
})
|
|
58
|
-
workflow
|
|
59
|
+
})
|
|
59
60
|
});
|
|
60
61
|
|
|
61
62
|
return _react().default.createElement(_client().ResourceActionProvider, _objectSpread({}, props));
|
|
@@ -20,7 +20,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
20
20
|
|
|
21
21
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
22
22
|
|
|
23
|
-
const FlowContext = _react().default.createContext(
|
|
23
|
+
const FlowContext = _react().default.createContext({});
|
|
24
24
|
|
|
25
25
|
exports.FlowContext = FlowContext;
|
|
26
26
|
|
|
@@ -55,20 +55,20 @@ function _css() {
|
|
|
55
55
|
return data;
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
function
|
|
59
|
-
const data = require("
|
|
58
|
+
function _classnames() {
|
|
59
|
+
const data = _interopRequireDefault(require("classnames"));
|
|
60
60
|
|
|
61
|
-
|
|
61
|
+
_classnames = function _classnames() {
|
|
62
62
|
return data;
|
|
63
63
|
};
|
|
64
64
|
|
|
65
65
|
return data;
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
function
|
|
69
|
-
const data =
|
|
68
|
+
function _reactI18next() {
|
|
69
|
+
const data = require("react-i18next");
|
|
70
70
|
|
|
71
|
-
|
|
71
|
+
_reactI18next = function _reactI18next() {
|
|
72
72
|
return data;
|
|
73
73
|
};
|
|
74
74
|
|
|
@@ -93,7 +93,14 @@ var _triggers = require("./triggers");
|
|
|
93
93
|
|
|
94
94
|
var _Branch = require("./Branch");
|
|
95
95
|
|
|
96
|
-
|
|
96
|
+
var _executions = require("./schemas/executions");
|
|
97
|
+
|
|
98
|
+
var _ExecutionLink = require("./ExecutionLink");
|
|
99
|
+
|
|
100
|
+
var _locale = require("./locale");
|
|
101
|
+
|
|
102
|
+
const _excluded = ["request", "filter"],
|
|
103
|
+
_excluded2 = ["nodes", "revisions"];
|
|
97
104
|
|
|
98
105
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
99
106
|
|
|
@@ -105,16 +112,54 @@ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try
|
|
|
105
112
|
|
|
106
113
|
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
107
114
|
|
|
108
|
-
function
|
|
115
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
109
116
|
|
|
110
|
-
function
|
|
117
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
118
|
+
|
|
119
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
111
120
|
|
|
112
|
-
function
|
|
121
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
122
|
+
|
|
123
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
113
124
|
|
|
114
125
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
115
126
|
|
|
116
127
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
117
128
|
|
|
129
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
130
|
+
|
|
131
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
132
|
+
|
|
133
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
134
|
+
|
|
135
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
136
|
+
|
|
137
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
138
|
+
|
|
139
|
+
function ExecutionResourceProvider(_ref) {
|
|
140
|
+
var _request$params;
|
|
141
|
+
|
|
142
|
+
let request = _ref.request,
|
|
143
|
+
_ref$filter = _ref.filter,
|
|
144
|
+
filter = _ref$filter === void 0 ? {} : _ref$filter,
|
|
145
|
+
others = _objectWithoutProperties(_ref, _excluded);
|
|
146
|
+
|
|
147
|
+
const _useFlowContext = (0, _FlowContext.useFlowContext)(),
|
|
148
|
+
workflow = _useFlowContext.workflow;
|
|
149
|
+
|
|
150
|
+
const props = _objectSpread(_objectSpread({}, others), {}, {
|
|
151
|
+
request: _objectSpread(_objectSpread({}, request), {}, {
|
|
152
|
+
params: _objectSpread(_objectSpread({}, request === null || request === void 0 ? void 0 : request.params), {}, {
|
|
153
|
+
filter: _objectSpread(_objectSpread({}, request === null || request === void 0 ? void 0 : (_request$params = request.params) === null || _request$params === void 0 ? void 0 : _request$params.filter), {}, {
|
|
154
|
+
key: workflow.key
|
|
155
|
+
})
|
|
156
|
+
})
|
|
157
|
+
})
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
return _react().default.createElement(_client().ResourceActionProvider, _objectSpread({}, props));
|
|
161
|
+
}
|
|
162
|
+
|
|
118
163
|
function makeNodes(nodes) {
|
|
119
164
|
const nodesMap = new Map();
|
|
120
165
|
nodes.forEach(item => nodesMap.set(item.id, item));
|
|
@@ -144,11 +189,11 @@ function makeNodes(nodes) {
|
|
|
144
189
|
function WorkflowCanvas() {
|
|
145
190
|
var _data$data2;
|
|
146
191
|
|
|
192
|
+
const history = (0, _reactRouterDom().useHistory)();
|
|
193
|
+
|
|
147
194
|
const _useTranslation = (0, _reactI18next().useTranslation)(),
|
|
148
195
|
t = _useTranslation.t;
|
|
149
196
|
|
|
150
|
-
const history = (0, _reactRouterDom().useHistory)();
|
|
151
|
-
|
|
152
197
|
const _useResourceActionCon = (0, _client().useResourceActionContext)(),
|
|
153
198
|
data = _useResourceActionCon.data,
|
|
154
199
|
refresh = _useResourceActionCon.refresh,
|
|
@@ -161,25 +206,30 @@ function WorkflowCanvas() {
|
|
|
161
206
|
const _useDocumentTitle = (0, _client().useDocumentTitle)(),
|
|
162
207
|
setTitle = _useDocumentTitle.setTitle;
|
|
163
208
|
|
|
209
|
+
const _useState = (0, _react().useState)(false),
|
|
210
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
211
|
+
visible = _useState2[0],
|
|
212
|
+
setVisible = _useState2[1];
|
|
213
|
+
|
|
164
214
|
(0, _react().useEffect)(() => {
|
|
165
215
|
var _data$data;
|
|
166
216
|
|
|
167
|
-
const
|
|
168
|
-
title =
|
|
217
|
+
const _ref2 = (_data$data = data === null || data === void 0 ? void 0 : data.data) !== null && _data$data !== void 0 ? _data$data : {},
|
|
218
|
+
title = _ref2.title;
|
|
169
219
|
|
|
170
|
-
setTitle(`${
|
|
220
|
+
setTitle === null || setTitle === void 0 ? void 0 : setTitle(`${(0, _locale.lang)('Workflow')}${title ? `: ${title}` : ''}`);
|
|
171
221
|
}, [data === null || data === void 0 ? void 0 : data.data]);
|
|
172
222
|
|
|
173
223
|
if (!(data === null || data === void 0 ? void 0 : data.data) && !loading) {
|
|
174
|
-
return _react().default.createElement("div", null,
|
|
224
|
+
return _react().default.createElement("div", null, (0, _locale.lang)('Load failed'));
|
|
175
225
|
}
|
|
176
226
|
|
|
177
|
-
const
|
|
178
|
-
|
|
179
|
-
nodes =
|
|
180
|
-
|
|
181
|
-
revisions =
|
|
182
|
-
workflow = _objectWithoutProperties(
|
|
227
|
+
const _ref3 = (_data$data2 = data === null || data === void 0 ? void 0 : data.data) !== null && _data$data2 !== void 0 ? _data$data2 : {},
|
|
228
|
+
_ref3$nodes = _ref3.nodes,
|
|
229
|
+
nodes = _ref3$nodes === void 0 ? [] : _ref3$nodes,
|
|
230
|
+
_ref3$revisions = _ref3.revisions,
|
|
231
|
+
revisions = _ref3$revisions === void 0 ? [] : _ref3$revisions,
|
|
232
|
+
workflow = _objectWithoutProperties(_ref3, _excluded2);
|
|
183
233
|
|
|
184
234
|
makeNodes(nodes);
|
|
185
235
|
const entry = nodes.find(item => !item.upstream);
|
|
@@ -218,7 +268,10 @@ function WorkflowCanvas() {
|
|
|
218
268
|
function _onRevision() {
|
|
219
269
|
_onRevision = _asyncToGenerator(function* () {
|
|
220
270
|
const _yield$resource$revis = yield resource.revision({
|
|
221
|
-
filterByTk: workflow[targetKey]
|
|
271
|
+
filterByTk: workflow[targetKey],
|
|
272
|
+
filter: {
|
|
273
|
+
key: workflow.key
|
|
274
|
+
}
|
|
222
275
|
}),
|
|
223
276
|
revision = _yield$resource$revis.data.data;
|
|
224
277
|
|
|
@@ -229,6 +282,30 @@ function WorkflowCanvas() {
|
|
|
229
282
|
return _onRevision.apply(this, arguments);
|
|
230
283
|
}
|
|
231
284
|
|
|
285
|
+
function onMenuCommand(_x2) {
|
|
286
|
+
return _onMenuCommand.apply(this, arguments);
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
function _onMenuCommand() {
|
|
290
|
+
_onMenuCommand = _asyncToGenerator(function* ({
|
|
291
|
+
key
|
|
292
|
+
}) {
|
|
293
|
+
switch (key) {
|
|
294
|
+
case 'history':
|
|
295
|
+
setVisible(true);
|
|
296
|
+
return;
|
|
297
|
+
|
|
298
|
+
case 'revision':
|
|
299
|
+
return onRevision();
|
|
300
|
+
|
|
301
|
+
default:
|
|
302
|
+
break;
|
|
303
|
+
}
|
|
304
|
+
});
|
|
305
|
+
return _onMenuCommand.apply(this, arguments);
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
const revisionable = workflow.executed && !revisions.find(item => !item.executed && new Date(item.createdAt) > new Date(workflow.createdAt));
|
|
232
309
|
return _react().default.createElement(_FlowContext.FlowContext.Provider, {
|
|
233
310
|
value: {
|
|
234
311
|
workflow,
|
|
@@ -238,18 +315,18 @@ function WorkflowCanvas() {
|
|
|
238
315
|
}
|
|
239
316
|
}, _react().default.createElement("div", {
|
|
240
317
|
className: "workflow-toolbar"
|
|
241
|
-
}, _react().default.createElement("header", null, _react().default.createElement(
|
|
318
|
+
}, _react().default.createElement("header", null, _react().default.createElement(_antd().Breadcrumb, null, _react().default.createElement(_antd().Breadcrumb.Item, null, _react().default.createElement(_reactRouterDom().Link, {
|
|
242
319
|
to: `/admin/settings/workflow/workflows`
|
|
243
|
-
},
|
|
320
|
+
}, (0, _locale.lang)('Workflow'))), _react().default.createElement(_antd().Breadcrumb.Item, null, _react().default.createElement("strong", null, workflow.title)))), _react().default.createElement("aside", null, _react().default.createElement("div", {
|
|
244
321
|
className: "workflow-versions"
|
|
245
|
-
}, _react().default.createElement(
|
|
322
|
+
}, _react().default.createElement(_antd().Dropdown, {
|
|
246
323
|
trigger: ['click'],
|
|
247
324
|
overlay: _react().default.createElement(_antd().Menu, {
|
|
248
325
|
onClick: onSwitchVersion,
|
|
249
|
-
defaultSelectedKeys: [workflow.id],
|
|
326
|
+
defaultSelectedKeys: [`${workflow.id}`],
|
|
250
327
|
className: (0, _css().cx)(_style.workflowVersionDropdownClass)
|
|
251
328
|
}, revisions.sort((a, b) => b.id - a.id).map((item, index) => _react().default.createElement(_antd().Menu.Item, {
|
|
252
|
-
key: item.id
|
|
329
|
+
key: `${item.id}`,
|
|
253
330
|
icon: item.current ? _react().default.createElement(_icons().RightOutlined, null) : null,
|
|
254
331
|
className: (0, _classnames().default)({
|
|
255
332
|
executed: item.executed,
|
|
@@ -258,19 +335,39 @@ function WorkflowCanvas() {
|
|
|
258
335
|
})
|
|
259
336
|
}, _react().default.createElement("strong", null, `#${item.id}`), _react().default.createElement("time", null, new Date(item.createdAt).toLocaleString()))))
|
|
260
337
|
}, _react().default.createElement(_antd().Button, {
|
|
261
|
-
type: "
|
|
262
|
-
}, (workflow === null || workflow === void 0 ? void 0 : workflow.id) ? `#${workflow.id}` : null, _react().default.createElement(_icons().DownOutlined, null)))), _react().default.createElement(_antd().Switch, {
|
|
338
|
+
type: "text"
|
|
339
|
+
}, _react().default.createElement("label", null, (0, _locale.lang)('Version')), _react().default.createElement("span", null, (workflow === null || workflow === void 0 ? void 0 : workflow.id) ? `#${workflow.id}` : null), _react().default.createElement(_icons().DownOutlined, null)))), _react().default.createElement(_antd().Switch, {
|
|
263
340
|
checked: workflow.enabled,
|
|
264
341
|
onChange: onToggle,
|
|
265
|
-
checkedChildren:
|
|
266
|
-
unCheckedChildren:
|
|
267
|
-
}),
|
|
268
|
-
|
|
269
|
-
|
|
342
|
+
checkedChildren: (0, _locale.lang)('On'),
|
|
343
|
+
unCheckedChildren: (0, _locale.lang)('Off')
|
|
344
|
+
}), _react().default.createElement(_antd().Dropdown, {
|
|
345
|
+
overlay: _react().default.createElement(_antd().Menu, {
|
|
346
|
+
onClick: onMenuCommand
|
|
347
|
+
}, _react().default.createElement(_antd().Menu.Item, {
|
|
348
|
+
key: "history",
|
|
349
|
+
disabled: !workflow.allExecuted
|
|
350
|
+
}, (0, _locale.lang)('Execution history')), _react().default.createElement(_antd().Menu.Item, {
|
|
351
|
+
key: "revision",
|
|
352
|
+
disabled: !revisionable
|
|
353
|
+
}, (0, _locale.lang)('Copy to new version')))
|
|
354
|
+
}, _react().default.createElement(_antd().Button, {
|
|
355
|
+
type: "text",
|
|
356
|
+
icon: _react().default.createElement(_icons().EllipsisOutlined, null)
|
|
357
|
+
})), _react().default.createElement(_client().ActionContext.Provider, {
|
|
358
|
+
value: {
|
|
359
|
+
visible,
|
|
360
|
+
setVisible
|
|
361
|
+
}
|
|
362
|
+
}, _react().default.createElement(_client().SchemaComponent, {
|
|
363
|
+
schema: _executions.executionSchema,
|
|
364
|
+
components: {
|
|
365
|
+
ExecutionResourceProvider,
|
|
366
|
+
ExecutionLink: _ExecutionLink.ExecutionLink
|
|
367
|
+
}
|
|
368
|
+
})))), _react().default.createElement("div", {
|
|
270
369
|
className: "workflow-canvas"
|
|
271
|
-
}, _react().default.createElement(_triggers.TriggerConfig, {
|
|
272
|
-
workflow: workflow
|
|
273
|
-
}), _react().default.createElement("div", {
|
|
370
|
+
}, _react().default.createElement(_triggers.TriggerConfig, null), _react().default.createElement("div", {
|
|
274
371
|
className: _style.branchBlockClass
|
|
275
372
|
}, _react().default.createElement(_Branch.Branch, {
|
|
276
373
|
entry: entry
|
|
@@ -280,5 +377,5 @@ function WorkflowCanvas() {
|
|
|
280
377
|
className: (0, _css().cx)(_style.nodeMetaClass)
|
|
281
378
|
}, _react().default.createElement(_antd().Tag, {
|
|
282
379
|
color: "#333"
|
|
283
|
-
},
|
|
380
|
+
}, (0, _locale.lang)('End'))))));
|
|
284
381
|
}
|
|
@@ -3,36 +3,63 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.WorkflowProvider = void 0;
|
|
6
|
+
exports.WorkflowProvider = exports.WorkflowContext = void 0;
|
|
7
|
+
exports.useWorkflowContext = useWorkflowContext;
|
|
7
8
|
|
|
8
|
-
function
|
|
9
|
-
const data = require("
|
|
9
|
+
function _react() {
|
|
10
|
+
const data = _interopRequireWildcard(require("react"));
|
|
10
11
|
|
|
11
|
-
|
|
12
|
+
_react = function _react() {
|
|
12
13
|
return data;
|
|
13
14
|
};
|
|
14
15
|
|
|
15
16
|
return data;
|
|
16
17
|
}
|
|
17
18
|
|
|
18
|
-
function
|
|
19
|
-
const data =
|
|
19
|
+
function _antd() {
|
|
20
|
+
const data = require("antd");
|
|
20
21
|
|
|
21
|
-
|
|
22
|
+
_antd = function _antd() {
|
|
22
23
|
return data;
|
|
23
24
|
};
|
|
24
25
|
|
|
25
26
|
return data;
|
|
26
27
|
}
|
|
27
28
|
|
|
28
|
-
|
|
29
|
+
function _client() {
|
|
30
|
+
const data = require("@nocobase/client");
|
|
31
|
+
|
|
32
|
+
_client = function _client() {
|
|
33
|
+
return data;
|
|
34
|
+
};
|
|
29
35
|
|
|
30
|
-
|
|
36
|
+
return data;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
var _WorkflowPage = require("./WorkflowPage");
|
|
31
40
|
|
|
32
41
|
var _ExecutionPage = require("./ExecutionPage");
|
|
33
42
|
|
|
43
|
+
var _triggers = require("./triggers");
|
|
44
|
+
|
|
45
|
+
var _nodes = require("./nodes");
|
|
46
|
+
|
|
47
|
+
var _locale = require("./locale");
|
|
48
|
+
|
|
49
|
+
var _workflows = require("./schemas/workflows");
|
|
50
|
+
|
|
51
|
+
var _WorkflowLink = require("./WorkflowLink");
|
|
52
|
+
|
|
53
|
+
var _ExecutionResourceProvider = require("./ExecutionResourceProvider");
|
|
54
|
+
|
|
55
|
+
var _ExecutionLink = require("./ExecutionLink");
|
|
56
|
+
|
|
57
|
+
var _OpenDrawer = _interopRequireDefault(require("./components/OpenDrawer"));
|
|
58
|
+
|
|
34
59
|
const _excluded = ["routes", "components"];
|
|
35
60
|
|
|
61
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
62
|
+
|
|
36
63
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
37
64
|
|
|
38
65
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -47,6 +74,30 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
|
|
|
47
74
|
|
|
48
75
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
49
76
|
|
|
77
|
+
const WorkflowContext = _react().default.createContext({});
|
|
78
|
+
|
|
79
|
+
exports.WorkflowContext = WorkflowContext;
|
|
80
|
+
|
|
81
|
+
function useWorkflowContext() {
|
|
82
|
+
return (0, _react().useContext)(WorkflowContext);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
function WorkflowPane() {
|
|
86
|
+
return _react().default.createElement(_antd().Card, {
|
|
87
|
+
bordered: false
|
|
88
|
+
}, _react().default.createElement(_client().SchemaComponent, {
|
|
89
|
+
schema: _workflows.workflowSchema,
|
|
90
|
+
components: {
|
|
91
|
+
WorkflowLink: _WorkflowLink.WorkflowLink,
|
|
92
|
+
ExecutionResourceProvider: _ExecutionResourceProvider.ExecutionResourceProvider,
|
|
93
|
+
ExecutionLink: _ExecutionLink.ExecutionLink,
|
|
94
|
+
OpenDrawer: _OpenDrawer.default
|
|
95
|
+
}
|
|
96
|
+
}));
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
;
|
|
100
|
+
|
|
50
101
|
const WorkflowProvider = props => {
|
|
51
102
|
const ctx = (0, _react().useContext)(_client().PluginManagerContext);
|
|
52
103
|
|
|
@@ -68,20 +119,19 @@ const WorkflowProvider = props => {
|
|
|
68
119
|
settings: {
|
|
69
120
|
workflow: {
|
|
70
121
|
icon: 'PartitionOutlined',
|
|
71
|
-
title:
|
|
122
|
+
// title: `{{t("Workflow", { ns: "${NAMESPACE}" })}}`,
|
|
123
|
+
title: (0, _locale.lang)('Workflow'),
|
|
72
124
|
tabs: {
|
|
73
125
|
workflows: {
|
|
74
|
-
title: '
|
|
75
|
-
component:
|
|
126
|
+
title: (0, _locale.lang)('Workflow'),
|
|
127
|
+
component: WorkflowPane
|
|
76
128
|
}
|
|
77
129
|
}
|
|
78
130
|
}
|
|
79
131
|
}
|
|
80
132
|
}, _react().default.createElement(_client().PluginManagerContext.Provider, {
|
|
81
133
|
value: {
|
|
82
|
-
components: _objectSpread(
|
|
83
|
-
WorkflowShortcut: _WorkflowShortcut.WorkflowShortcut
|
|
84
|
-
})
|
|
134
|
+
components: _objectSpread({}, ctx === null || ctx === void 0 ? void 0 : ctx.components)
|
|
85
135
|
}
|
|
86
136
|
}, _react().default.createElement(_client().RouteSwitchContext.Provider, {
|
|
87
137
|
value: _objectSpread(_objectSpread({
|
|
@@ -92,7 +142,12 @@ const WorkflowProvider = props => {
|
|
|
92
142
|
}, others), {}, {
|
|
93
143
|
routes
|
|
94
144
|
})
|
|
95
|
-
},
|
|
145
|
+
}, _react().default.createElement(WorkflowContext.Provider, {
|
|
146
|
+
value: {
|
|
147
|
+
triggers: _triggers.triggers,
|
|
148
|
+
instructions: _nodes.instructions
|
|
149
|
+
}
|
|
150
|
+
}, props.children))));
|
|
96
151
|
};
|
|
97
152
|
|
|
98
153
|
exports.WorkflowProvider = WorkflowProvider;
|