@kineticdata/react 5.1.0-rc.2 → 5.1.0
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/apis/core/authentication.js +2 -2
- package/lib/apis/core/securityPolicyDefinitions.test.js +4 -4
- package/lib/apis/http.js +9 -2
- package/lib/apis/system/index.js +86 -1
- package/lib/apis/task/index.js +10 -8
- package/lib/components/common/BridgeSelect.js +2 -1
- package/lib/components/common/FormSelect.js +2 -1
- package/lib/components/common/TableInput.js +74 -29
- package/lib/components/common/TeamSelect.js +2 -1
- package/lib/components/common/UserSelect.js +2 -1
- package/lib/components/common/authentication/AuthenticationContainer.js +50 -27
- package/lib/components/core/file_resource/FileResourceForm.js +2 -2
- package/lib/components/core/space/SpaceForm.js +37 -8
- package/lib/components/core/submission/SubmissionForm.js +124 -0
- package/lib/components/core/webapi/WebApiForm.js +111 -126
- package/lib/components/form/Form.helpers.js +1 -1
- package/lib/components/form/Form.js +198 -142
- package/lib/components/index.js +5 -1
- package/lib/components/system/SystemBackgroundTasksTable.js +83 -0
- package/lib/components/system/SystemSecurityForm.js +69 -0
- package/lib/components/system/spaces/SystemSpaceForm.js +44 -16
- package/lib/components/task/builder/Connector.js +19 -8
- package/lib/components/task/builder/ConnectorForm.js +1 -1
- package/lib/components/task/builder/Node.js +10 -3
- package/lib/components/task/builder/NodeForm.js +51 -22
- package/lib/components/task/builder/NodeParametersForm.js +5 -2
- package/lib/components/task/builder/SvgCanvas.js +13 -4
- package/lib/components/task/builder/TaskDefinitionConfigForm.js +113 -0
- package/lib/components/task/builder/TreeBuilder.js +25 -7
- package/lib/components/task/builder/builder.redux.js +159 -52
- package/lib/components/task/builder/helpers.js +5 -3
- package/lib/components/task/builder/models.js +84 -12
- package/lib/components/task/errors/RunErrorTable.js +1 -1
- package/lib/components/task/runs/CreateManualTriggerForm.js +15 -24
- package/lib/components/task/workflows/WorkflowForm.js +67 -85
- package/lib/index.js +1 -0
- package/package.json +2 -2
|
@@ -155,7 +155,7 @@ export var TreeBuilderComponent = /*#__PURE__*/function (_Component) {
|
|
|
155
155
|
};
|
|
156
156
|
|
|
157
157
|
_this.isDirty = function (treeBuilderState) {
|
|
158
|
-
return treeBuilderState && !is(treeBuilderState.lastSave, treeBuilderState.tree);
|
|
158
|
+
return treeBuilderState && (!is(treeBuilderState.lastSave, treeBuilderState.tree) || !is(treeBuilderState.lastWebApi, treeBuilderState.webApi));
|
|
159
159
|
};
|
|
160
160
|
|
|
161
161
|
_this.state = {
|
|
@@ -202,7 +202,7 @@ export var TreeBuilderComponent = /*#__PURE__*/function (_Component) {
|
|
|
202
202
|
// placeholder then we will call configureTreeBuilder with the component's
|
|
203
203
|
// props at that time
|
|
204
204
|
if (this.props.treeBuilderState === null) {
|
|
205
|
-
configureTreeBuilder(pick(this.props, ['treeKey', 'sourceName', 'sourceGroup', 'name']));
|
|
205
|
+
configureTreeBuilder(pick(this.props, ['treeKey', 'sourceName', 'sourceGroup', 'name', 'platformSourceName']));
|
|
206
206
|
}
|
|
207
207
|
}
|
|
208
208
|
}, {
|
|
@@ -239,11 +239,14 @@ export var TreeBuilderComponent = /*#__PURE__*/function (_Component) {
|
|
|
239
239
|
highlightId = _ref4[1];
|
|
240
240
|
|
|
241
241
|
if (treeBuilderState) {
|
|
242
|
-
var
|
|
242
|
+
var lastSave = treeBuilderState.lastSave,
|
|
243
|
+
lastWebApi = treeBuilderState.lastWebApi,
|
|
244
|
+
redoStack = treeBuilderState.redoStack,
|
|
243
245
|
saving = treeBuilderState.saving,
|
|
244
246
|
tasks = treeBuilderState.tasks,
|
|
245
247
|
tree = treeBuilderState.tree,
|
|
246
|
-
undoStack = treeBuilderState.undoStack
|
|
248
|
+
undoStack = treeBuilderState.undoStack,
|
|
249
|
+
webApi = treeBuilderState.webApi;
|
|
247
250
|
return this.props.children({
|
|
248
251
|
actions: {
|
|
249
252
|
deleteConnector: function deleteConnector(id) {
|
|
@@ -270,6 +273,18 @@ export var TreeBuilderComponent = /*#__PURE__*/function (_Component) {
|
|
|
270
273
|
dependencies: dependencies
|
|
271
274
|
}));
|
|
272
275
|
},
|
|
276
|
+
updateSettings: function updateSettings(values) {
|
|
277
|
+
return dispatch('TREE_UPDATE_SETTINGS', {
|
|
278
|
+
treeKey: treeKey,
|
|
279
|
+
values: values
|
|
280
|
+
});
|
|
281
|
+
},
|
|
282
|
+
updateWebApi: function updateWebApi(values) {
|
|
283
|
+
return dispatch('TREE_UPDATE_WEB_API', {
|
|
284
|
+
treeKey: treeKey,
|
|
285
|
+
values: values
|
|
286
|
+
});
|
|
287
|
+
},
|
|
273
288
|
save: function save(_ref5) {
|
|
274
289
|
var _ref5$overwrite = _ref5.overwrite,
|
|
275
290
|
overwrite = _ref5$overwrite === void 0 ? false : _ref5$overwrite,
|
|
@@ -305,12 +320,14 @@ export var TreeBuilderComponent = /*#__PURE__*/function (_Component) {
|
|
|
305
320
|
}
|
|
306
321
|
},
|
|
307
322
|
dirty: this.isDirty(treeBuilderState),
|
|
308
|
-
|
|
323
|
+
lastTree: lastSave,
|
|
324
|
+
lastWebApi: lastWebApi,
|
|
325
|
+
name: tree ? tree.name : null,
|
|
309
326
|
saving: saving,
|
|
310
327
|
sidebarRef: this.sidebarRef,
|
|
311
328
|
tasks: tasks,
|
|
312
329
|
tree: tree,
|
|
313
|
-
treeBuilder: /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(SvgCanvas, {
|
|
330
|
+
treeBuilder: tree && /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(SvgCanvas, {
|
|
314
331
|
ref: this.canvasRef
|
|
315
332
|
}, tree.connectors.map(function (connector) {
|
|
316
333
|
return /*#__PURE__*/React.createElement(Connector, {
|
|
@@ -350,7 +367,8 @@ export var TreeBuilderComponent = /*#__PURE__*/function (_Component) {
|
|
|
350
367
|
tasks: tasks,
|
|
351
368
|
tree: tree
|
|
352
369
|
});
|
|
353
|
-
}).toList()))
|
|
370
|
+
}).toList())),
|
|
371
|
+
webApi: webApi
|
|
354
372
|
});
|
|
355
373
|
}
|
|
356
374
|
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
2
|
-
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
3
2
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
3
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
4
4
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
5
5
|
import { all, call, put, select, takeEvery } from 'redux-saga/effects';
|
|
6
6
|
import { List, OrderedMap } from 'immutable';
|
|
7
7
|
import { isFunction } from 'lodash-es';
|
|
8
8
|
import { action, dispatch, regHandlers, regSaga } from '../../../store';
|
|
9
|
-
import { deserializeTree, serializeTree, Connector, TreeBuilderState } from './models';
|
|
10
|
-
import { cloneTree, fetchTaskCategories, fetchTree, updateTree } from '../../../apis
|
|
9
|
+
import { deserializeTree, serializeTree, Connector, TreeBuilderState, deserializeWebApi } from './models';
|
|
10
|
+
import { cloneTree, fetchTaskCategories, fetchTree, fetchWebApi, updateTree, updateWebApi } from '../../../apis';
|
|
11
11
|
import { renameDependencies, treeReturnTask } from './helpers';
|
|
12
12
|
export var mountTreeBuilder = function mountTreeBuilder(treeKey) {
|
|
13
13
|
return dispatch('TREE_MOUNT', {
|
|
@@ -26,12 +26,15 @@ export var configureTreeBuilder = function configureTreeBuilder(props) {
|
|
|
26
26
|
|
|
27
27
|
var remember = function remember(state, treeKey) {
|
|
28
28
|
return state.updateIn(['trees', treeKey, 'undoStack'], function (stack) {
|
|
29
|
-
return stack.push(
|
|
29
|
+
return stack.push({
|
|
30
|
+
tree: state.getIn(['trees', treeKey, 'tree']),
|
|
31
|
+
webApi: state.getIn(['trees', treeKey, 'webApi'])
|
|
32
|
+
});
|
|
30
33
|
}).deleteIn(['trees', treeKey, 'redoStack']);
|
|
31
34
|
};
|
|
32
35
|
|
|
33
36
|
regSaga(takeEvery('TREE_CONFIGURE', /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
|
|
34
|
-
var payload, name, sourceGroup, sourceName, treeKey, _yield$all, _yield$all2, tree, categories;
|
|
37
|
+
var payload, name, sourceGroup, sourceName, treeKey, webApiProps, _yield$all, _yield$all2, tree, categories, webApi;
|
|
35
38
|
|
|
36
39
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
37
40
|
while (1) {
|
|
@@ -40,46 +43,52 @@ regSaga(takeEvery('TREE_CONFIGURE', /*#__PURE__*/_regeneratorRuntime.mark(functi
|
|
|
40
43
|
payload = _ref.payload;
|
|
41
44
|
_context.prev = 1;
|
|
42
45
|
name = payload.name, sourceGroup = payload.sourceGroup, sourceName = payload.sourceName, treeKey = payload.treeKey;
|
|
43
|
-
|
|
46
|
+
webApiProps = getWebApiProps(payload);
|
|
47
|
+
_context.next = 6;
|
|
44
48
|
return all([call(fetchTree, {
|
|
45
49
|
name: name,
|
|
46
50
|
sourceGroup: sourceGroup,
|
|
47
51
|
sourceName: sourceName,
|
|
48
|
-
include: 'bindings,details,treeJson'
|
|
52
|
+
include: 'bindings,categories,details,treeJson,inputs,outputs'
|
|
49
53
|
}), call(fetchTaskCategories, {
|
|
50
54
|
include: 'handlers.results,handlers.parameters,trees.parameters,trees.inputs,trees.outputs'
|
|
51
|
-
})
|
|
55
|
+
}), webApiProps ? call(fetchWebApi, _objectSpread(_objectSpread({}, webApiProps), {}, {
|
|
56
|
+
include: 'details,securityPolicies'
|
|
57
|
+
})) : {}]);
|
|
52
58
|
|
|
53
|
-
case
|
|
59
|
+
case 6:
|
|
54
60
|
_yield$all = _context.sent;
|
|
55
|
-
_yield$all2 = _slicedToArray(_yield$all,
|
|
61
|
+
_yield$all2 = _slicedToArray(_yield$all, 3);
|
|
56
62
|
tree = _yield$all2[0].tree;
|
|
57
63
|
categories = _yield$all2[1].categories;
|
|
58
|
-
|
|
64
|
+
webApi = _yield$all2[2].webApi;
|
|
65
|
+
_context.next = 13;
|
|
59
66
|
return put(action('TREE_LOADED', {
|
|
60
67
|
categories: categories,
|
|
68
|
+
kappSlug: webApiProps && webApiProps.kappSlug,
|
|
61
69
|
treeKey: treeKey,
|
|
62
|
-
tree: deserializeTree(tree)
|
|
70
|
+
tree: deserializeTree(tree),
|
|
71
|
+
webApi: webApiProps && deserializeWebApi(webApi, webApiProps.kappSlug)
|
|
63
72
|
}));
|
|
64
73
|
|
|
65
|
-
case
|
|
66
|
-
_context.next =
|
|
74
|
+
case 13:
|
|
75
|
+
_context.next = 18;
|
|
67
76
|
break;
|
|
68
77
|
|
|
69
|
-
case
|
|
70
|
-
_context.prev =
|
|
78
|
+
case 15:
|
|
79
|
+
_context.prev = 15;
|
|
71
80
|
_context.t0 = _context["catch"](1);
|
|
72
81
|
console.error('Caught error loading tree', _context.t0);
|
|
73
82
|
|
|
74
|
-
case
|
|
83
|
+
case 18:
|
|
75
84
|
case "end":
|
|
76
85
|
return _context.stop();
|
|
77
86
|
}
|
|
78
87
|
}
|
|
79
|
-
}, _callee, null, [[1,
|
|
88
|
+
}, _callee, null, [[1, 15]]);
|
|
80
89
|
})));
|
|
81
90
|
regSaga(takeEvery('TREE_SAVE', /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref2) {
|
|
82
|
-
var payload, newName, onError, onSave, overwrite, treeKey, _yield$select, tree, name, sourceGroup, sourceName, _yield,
|
|
91
|
+
var payload, newName, onError, onSave, overwrite, treeKey, _yield$select, kappSlug, lastSave, lastWebApi, tree, webApi, name, sourceGroup, sourceName, _yield, error1, newTree, _yield2, error2, error;
|
|
83
92
|
|
|
84
93
|
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
85
94
|
while (1) {
|
|
@@ -97,11 +106,15 @@ regSaga(takeEvery('TREE_SAVE', /*#__PURE__*/_regeneratorRuntime.mark(function _c
|
|
|
97
106
|
|
|
98
107
|
case 5:
|
|
99
108
|
_yield$select = _context2.sent;
|
|
109
|
+
kappSlug = _yield$select.kappSlug;
|
|
110
|
+
lastSave = _yield$select.lastSave;
|
|
111
|
+
lastWebApi = _yield$select.lastWebApi;
|
|
100
112
|
tree = _yield$select.tree;
|
|
101
|
-
|
|
113
|
+
webApi = _yield$select.webApi;
|
|
114
|
+
name = lastSave.name, sourceGroup = lastSave.sourceGroup, sourceName = lastSave.sourceName; // if a newName was passed we will be creating a new tree with the builder
|
|
102
115
|
// contents, otherwise just an update
|
|
103
116
|
|
|
104
|
-
_context2.next =
|
|
117
|
+
_context2.next = 14;
|
|
105
118
|
return newName ? call(cloneTree, {
|
|
106
119
|
name: name,
|
|
107
120
|
sourceGroup: sourceGroup,
|
|
@@ -116,36 +129,50 @@ regSaga(takeEvery('TREE_SAVE', /*#__PURE__*/_regeneratorRuntime.mark(function _c
|
|
|
116
129
|
tree: serializeTree(tree, overwrite)
|
|
117
130
|
});
|
|
118
131
|
|
|
119
|
-
case
|
|
132
|
+
case 14:
|
|
120
133
|
_yield = _context2.sent;
|
|
121
|
-
|
|
134
|
+
error1 = _yield.error;
|
|
122
135
|
newTree = _yield.tree;
|
|
123
|
-
_context2.next =
|
|
136
|
+
_context2.next = 19;
|
|
137
|
+
return webApi && !error1 ? call(updateWebApi, {
|
|
138
|
+
slug: lastWebApi.get('slug'),
|
|
139
|
+
kappSlug: kappSlug,
|
|
140
|
+
webApi: webApi
|
|
141
|
+
}) : {};
|
|
142
|
+
|
|
143
|
+
case 19:
|
|
144
|
+
_yield2 = _context2.sent;
|
|
145
|
+
error2 = _yield2.error;
|
|
146
|
+
error = error1 || error2; // dispatch the appropriate action based on the result of the call above
|
|
147
|
+
|
|
148
|
+
_context2.next = 24;
|
|
124
149
|
return put(error ? action('TREE_SAVE_ERROR', {
|
|
125
150
|
treeKey: treeKey,
|
|
126
151
|
error: error.message || error,
|
|
127
152
|
onError: onError
|
|
128
153
|
}) : action('TREE_SAVE_SUCCESS', {
|
|
154
|
+
previousTree: lastSave,
|
|
129
155
|
treeKey: treeKey,
|
|
130
156
|
tree: newTree,
|
|
157
|
+
webApi: webApi,
|
|
131
158
|
onSave: onSave
|
|
132
159
|
}));
|
|
133
160
|
|
|
134
|
-
case
|
|
135
|
-
_context2.next =
|
|
161
|
+
case 24:
|
|
162
|
+
_context2.next = 29;
|
|
136
163
|
break;
|
|
137
164
|
|
|
138
|
-
case
|
|
139
|
-
_context2.prev =
|
|
165
|
+
case 26:
|
|
166
|
+
_context2.prev = 26;
|
|
140
167
|
_context2.t0 = _context2["catch"](1);
|
|
141
168
|
console.error(_context2.t0);
|
|
142
169
|
|
|
143
|
-
case
|
|
170
|
+
case 29:
|
|
144
171
|
case "end":
|
|
145
172
|
return _context2.stop();
|
|
146
173
|
}
|
|
147
174
|
}
|
|
148
|
-
}, _callee2, null, [[1,
|
|
175
|
+
}, _callee2, null, [[1, 26]]);
|
|
149
176
|
})));
|
|
150
177
|
regSaga(takeEvery('TREE_SAVE_ERROR', /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_ref3) {
|
|
151
178
|
var _ref3$payload, error, onError;
|
|
@@ -182,38 +209,45 @@ regSaga(takeEvery('TREE_SAVE_ERROR', /*#__PURE__*/_regeneratorRuntime.mark(funct
|
|
|
182
209
|
}, _callee3, null, [[1, 7]]);
|
|
183
210
|
})));
|
|
184
211
|
regSaga(takeEvery('TREE_SAVE_SUCCESS', /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(_ref4) {
|
|
185
|
-
var _ref4$payload, onSave, tree;
|
|
212
|
+
var _ref4$payload, onSave, previousTree, treeKey, tree;
|
|
186
213
|
|
|
187
214
|
return _regeneratorRuntime.wrap(function _callee4$(_context4) {
|
|
188
215
|
while (1) {
|
|
189
216
|
switch (_context4.prev = _context4.next) {
|
|
190
217
|
case 0:
|
|
191
|
-
_ref4$payload = _ref4.payload, onSave = _ref4$payload.onSave,
|
|
218
|
+
_ref4$payload = _ref4.payload, onSave = _ref4$payload.onSave, previousTree = _ref4$payload.previousTree, treeKey = _ref4$payload.treeKey;
|
|
192
219
|
_context4.prev = 1;
|
|
193
220
|
|
|
194
221
|
if (!isFunction(onSave)) {
|
|
195
|
-
_context4.next =
|
|
222
|
+
_context4.next = 8;
|
|
196
223
|
break;
|
|
197
224
|
}
|
|
198
225
|
|
|
199
226
|
_context4.next = 5;
|
|
200
|
-
return
|
|
227
|
+
return select(function (state) {
|
|
228
|
+
return state.getIn(['trees', treeKey, 'tree']);
|
|
229
|
+
});
|
|
201
230
|
|
|
202
231
|
case 5:
|
|
203
|
-
|
|
232
|
+
tree = _context4.sent;
|
|
233
|
+
_context4.next = 8;
|
|
234
|
+
return call(onSave, tree, previousTree);
|
|
235
|
+
|
|
236
|
+
case 8:
|
|
237
|
+
_context4.next = 13;
|
|
204
238
|
break;
|
|
205
239
|
|
|
206
|
-
case
|
|
207
|
-
_context4.prev =
|
|
240
|
+
case 10:
|
|
241
|
+
_context4.prev = 10;
|
|
208
242
|
_context4.t0 = _context4["catch"](1);
|
|
209
243
|
console.error(_context4.t0);
|
|
210
244
|
|
|
211
|
-
case
|
|
245
|
+
case 13:
|
|
212
246
|
case "end":
|
|
213
247
|
return _context4.stop();
|
|
214
248
|
}
|
|
215
249
|
}
|
|
216
|
-
}, _callee4, null, [[1,
|
|
250
|
+
}, _callee4, null, [[1, 10]]);
|
|
217
251
|
})));
|
|
218
252
|
regHandlers({
|
|
219
253
|
// the TreeBuilder component does nothing while the tree state is undefined,
|
|
@@ -234,11 +268,14 @@ regHandlers({
|
|
|
234
268
|
TREE_LOADED: function TREE_LOADED(state, _ref8) {
|
|
235
269
|
var _ref8$payload = _ref8.payload,
|
|
236
270
|
categories = _ref8$payload.categories,
|
|
271
|
+
kappSlug = _ref8$payload.kappSlug,
|
|
237
272
|
treeKey = _ref8$payload.treeKey,
|
|
238
|
-
tree = _ref8$payload.tree
|
|
273
|
+
tree = _ref8$payload.tree,
|
|
274
|
+
webApi = _ref8$payload.webApi;
|
|
239
275
|
return state.mergeIn(['trees', treeKey], {
|
|
240
|
-
|
|
276
|
+
kappSlug: kappSlug,
|
|
241
277
|
lastSave: tree,
|
|
278
|
+
lastWebApi: webApi,
|
|
242
279
|
loading: false,
|
|
243
280
|
tasks: List(categories).map(function (category) {
|
|
244
281
|
return category.name === 'System Controls' ? _objectSpread(_objectSpread({}, category), {}, {
|
|
@@ -251,7 +288,8 @@ regHandlers({
|
|
|
251
288
|
}).reduce(function (reduction, task) {
|
|
252
289
|
return reduction.set(task.definitionId, task);
|
|
253
290
|
}, OrderedMap()),
|
|
254
|
-
tree: tree
|
|
291
|
+
tree: tree,
|
|
292
|
+
webApi: webApi
|
|
255
293
|
});
|
|
256
294
|
},
|
|
257
295
|
TREE_SAVE: function TREE_SAVE(state, _ref9) {
|
|
@@ -272,7 +310,8 @@ regHandlers({
|
|
|
272
310
|
TREE_SAVE_SUCCESS: function TREE_SAVE_SUCCESS(state, _ref11) {
|
|
273
311
|
var _ref11$payload = _ref11.payload,
|
|
274
312
|
tree = _ref11$payload.tree,
|
|
275
|
-
treeKey = _ref11$payload.treeKey
|
|
313
|
+
treeKey = _ref11$payload.treeKey,
|
|
314
|
+
webApi = _ref11$payload.webApi;
|
|
276
315
|
var newTree = state.getIn(['trees', treeKey, 'tree']).merge({
|
|
277
316
|
name: tree.name,
|
|
278
317
|
versionId: tree.versionId
|
|
@@ -281,29 +320,39 @@ regHandlers({
|
|
|
281
320
|
dirty: false,
|
|
282
321
|
error: null,
|
|
283
322
|
lastSave: newTree,
|
|
323
|
+
lastWebApi: webApi,
|
|
284
324
|
saving: false,
|
|
285
|
-
tree: newTree
|
|
325
|
+
tree: newTree,
|
|
326
|
+
webApi: webApi
|
|
286
327
|
});
|
|
287
328
|
},
|
|
288
329
|
TREE_UNDO: function TREE_UNDO(state, _ref12) {
|
|
289
330
|
var treeKey = _ref12.payload.treeKey;
|
|
290
331
|
return state.getIn(['trees', treeKey, 'undoStack']).isEmpty() ? state : state.updateIn(['trees', treeKey], function (builderState) {
|
|
291
332
|
return builderState.merge({
|
|
292
|
-
tree: builderState.undoStack.last(),
|
|
293
|
-
redoStack: builderState.redoStack.push(
|
|
294
|
-
|
|
333
|
+
tree: builderState.undoStack.last().tree,
|
|
334
|
+
redoStack: builderState.redoStack.push({
|
|
335
|
+
tree: builderState.tree,
|
|
336
|
+
webApi: builderState.webApi
|
|
337
|
+
}),
|
|
338
|
+
undoStack: builderState.undoStack.butLast(),
|
|
339
|
+
webApi: builderState.undoStack.last().webApi
|
|
295
340
|
});
|
|
296
|
-
});
|
|
341
|
+
}).updateIn(['trees', treeKey], synchronizeRoutineDefinition);
|
|
297
342
|
},
|
|
298
343
|
TREE_REDO: function TREE_REDO(state, _ref13) {
|
|
299
344
|
var treeKey = _ref13.payload.treeKey;
|
|
300
345
|
return state.getIn(['trees', treeKey, 'redoStack']).isEmpty() ? state : state.updateIn(['trees', treeKey], function (builderState) {
|
|
301
346
|
return builderState.merge({
|
|
302
|
-
tree: builderState.redoStack.last(),
|
|
347
|
+
tree: builderState.redoStack.last().tree,
|
|
303
348
|
redoStack: builderState.redoStack.butLast(),
|
|
304
|
-
undoStack: builderState.undoStack.push(
|
|
349
|
+
undoStack: builderState.undoStack.push({
|
|
350
|
+
tree: builderState.tree,
|
|
351
|
+
webApi: builderState.webApi
|
|
352
|
+
}),
|
|
353
|
+
webApi: builderState.redoStack.last().webApi
|
|
305
354
|
});
|
|
306
|
-
});
|
|
355
|
+
}).updateIn(['trees', treeKey], synchronizeRoutineDefinition);
|
|
307
356
|
},
|
|
308
357
|
TREE_UPDATE: function TREE_UPDATE(state, _ref14) {
|
|
309
358
|
var _ref14$payload = _ref14.payload,
|
|
@@ -399,5 +448,63 @@ regHandlers({
|
|
|
399
448
|
id = _ref22$payload.id,
|
|
400
449
|
nodeId = _ref22$payload.nodeId;
|
|
401
450
|
return remember(state, treeKey).setIn(['trees', treeKey, 'tree', 'connectors', id, 'tailId'], nodeId);
|
|
451
|
+
},
|
|
452
|
+
TREE_UPDATE_SETTINGS: function TREE_UPDATE_SETTINGS(state, _ref23) {
|
|
453
|
+
var _ref23$payload = _ref23.payload,
|
|
454
|
+
treeKey = _ref23$payload.treeKey,
|
|
455
|
+
values = _ref23$payload.values;
|
|
456
|
+
// If the updated settings are for a routine we rebuild the "Tree Input"
|
|
457
|
+
// bindings.
|
|
458
|
+
var bindings = values.inputs ? _objectSpread(_objectSpread({}, state.getIn(['trees', treeKey, 'tree', 'bindings'])), {}, {
|
|
459
|
+
'Tree Input': values.inputs.groupBy(function (input) {
|
|
460
|
+
return input.get('name');
|
|
461
|
+
}).map(function (list) {
|
|
462
|
+
return list.first().get('name');
|
|
463
|
+
}).map(function (name) {
|
|
464
|
+
return "<%=@inputs['".concat(name, "']%>");
|
|
465
|
+
}).toJS()
|
|
466
|
+
}) : state.getIn(['trees', treeKey, 'tree', 'bindings']);
|
|
467
|
+
return remember(state, treeKey).mergeIn(['trees', treeKey, 'tree'], _objectSpread(_objectSpread({}, values), {}, {
|
|
468
|
+
bindings: bindings
|
|
469
|
+
})).updateIn(['trees', treeKey], synchronizeRoutineDefinition);
|
|
470
|
+
},
|
|
471
|
+
TREE_UPDATE_WEB_API: function TREE_UPDATE_WEB_API(state, _ref24) {
|
|
472
|
+
var _ref24$payload = _ref24.payload,
|
|
473
|
+
treeKey = _ref24$payload.treeKey,
|
|
474
|
+
values = _ref24$payload.values;
|
|
475
|
+
return remember(state, treeKey).mergeIn(['trees', treeKey, 'webApi'], values).setIn(['trees', treeKey, 'tree', 'name'], values.slug);
|
|
402
476
|
}
|
|
403
|
-
});
|
|
477
|
+
});
|
|
478
|
+
|
|
479
|
+
var synchronizeRoutineDefinition = function synchronizeRoutineDefinition(treeBuilderState) {
|
|
480
|
+
var tree = treeBuilderState.tree;
|
|
481
|
+
var definitionId = tree.definitionId,
|
|
482
|
+
inputs = tree.inputs,
|
|
483
|
+
outputs = tree.outputs;
|
|
484
|
+
return treeBuilderState.update('tasks', function (tasks) {
|
|
485
|
+
return tasks.map(function (task, taskDefinitionId) {
|
|
486
|
+
return definitionId === taskDefinitionId ? _objectSpread(_objectSpread({}, task), {}, {
|
|
487
|
+
inputs: inputs.toJS(),
|
|
488
|
+
outputs: outputs.toJS()
|
|
489
|
+
}) : taskDefinitionId === 'system_tree_return_v1' ? treeReturnTask(tree) : task;
|
|
490
|
+
});
|
|
491
|
+
});
|
|
492
|
+
};
|
|
493
|
+
|
|
494
|
+
var getWebApiProps = function getWebApiProps(_ref25) {
|
|
495
|
+
var name = _ref25.name,
|
|
496
|
+
platformSourceName = _ref25.platformSourceName,
|
|
497
|
+
sourceGroup = _ref25.sourceGroup,
|
|
498
|
+
sourceName = _ref25.sourceName;
|
|
499
|
+
|
|
500
|
+
if (sourceName === platformSourceName && sourceGroup.startsWith('WebApis')) {
|
|
501
|
+
var kappSlug = sourceGroup.startsWith('WebApis > ') ? sourceGroup.replace('WebApis > ', '') : undefined;
|
|
502
|
+
var slug = name;
|
|
503
|
+
return {
|
|
504
|
+
kappSlug: kappSlug,
|
|
505
|
+
slug: slug
|
|
506
|
+
};
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
return null;
|
|
510
|
+
};
|
|
@@ -331,7 +331,7 @@ export var normalizeParameter = function normalizeParameter(_ref12) {
|
|
|
331
331
|
value: defaultValue
|
|
332
332
|
}, rest);
|
|
333
333
|
};
|
|
334
|
-
var defaultOutputs = [{
|
|
334
|
+
var defaultOutputs = List([{
|
|
335
335
|
id: 'content',
|
|
336
336
|
name: 'Content'
|
|
337
337
|
}, {
|
|
@@ -346,7 +346,7 @@ var defaultOutputs = [{
|
|
|
346
346
|
id: 'response_code',
|
|
347
347
|
name: 'Response Code',
|
|
348
348
|
defaultValue: '200'
|
|
349
|
-
}];
|
|
349
|
+
}]).map(Map);
|
|
350
350
|
export var treeReturnTask = function treeReturnTask(tree) {
|
|
351
351
|
return {
|
|
352
352
|
deferrable: false,
|
|
@@ -358,7 +358,9 @@ export var treeReturnTask = function treeReturnTask(tree) {
|
|
|
358
358
|
selectionCriterion: null,
|
|
359
359
|
status: 'Active',
|
|
360
360
|
visible: false,
|
|
361
|
-
parameters: (tree.
|
|
361
|
+
parameters: (tree.definitionId ? tree.outputs : defaultOutputs).map(function (output) {
|
|
362
|
+
return output.toObject();
|
|
363
|
+
}).map(function (output) {
|
|
362
364
|
return {
|
|
363
365
|
name: output.name,
|
|
364
366
|
defaultValue: output.defaultValue || '',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
3
|
-
import { List, OrderedMap, Record } from 'immutable';
|
|
3
|
+
import { List, Map, OrderedMap, Record } from 'immutable';
|
|
4
4
|
/*******************************************************************************
|
|
5
5
|
* Immutable records *
|
|
6
6
|
******************************************************************************/
|
|
@@ -9,17 +9,34 @@ export var Point = Record({
|
|
|
9
9
|
x: 0,
|
|
10
10
|
y: 0
|
|
11
11
|
}, 'Point');
|
|
12
|
+
export var WebApi = Record({
|
|
13
|
+
createdAt: null,
|
|
14
|
+
createdBy: null,
|
|
15
|
+
method: null,
|
|
16
|
+
securityPolicies: null,
|
|
17
|
+
slug: null,
|
|
18
|
+
kappSlug: null,
|
|
19
|
+
updatedAt: null,
|
|
20
|
+
updatedBy: null
|
|
21
|
+
});
|
|
12
22
|
export var Tree = Record({
|
|
13
23
|
bindings: OrderedMap(),
|
|
24
|
+
categories: List(),
|
|
14
25
|
connectors: OrderedMap(),
|
|
26
|
+
definitionId: null,
|
|
27
|
+
inputs: null,
|
|
15
28
|
name: '',
|
|
16
29
|
nextNodeId: 0,
|
|
17
30
|
nextConnectorId: 0,
|
|
18
31
|
nodes: OrderedMap(),
|
|
32
|
+
notes: '',
|
|
33
|
+
outputs: null,
|
|
34
|
+
ownerEmail: '',
|
|
19
35
|
schemaVersion: '',
|
|
20
36
|
sourceGroup: '',
|
|
21
37
|
sourceName: '',
|
|
22
|
-
|
|
38
|
+
status: '',
|
|
39
|
+
type: '',
|
|
23
40
|
versionId: '0'
|
|
24
41
|
});
|
|
25
42
|
export var Node = Record({
|
|
@@ -60,13 +77,16 @@ export var Connector = Record({
|
|
|
60
77
|
export var TreeBuilderState = Record({
|
|
61
78
|
categories: OrderedMap(),
|
|
62
79
|
error: null,
|
|
80
|
+
kappSlug: null,
|
|
63
81
|
lastSave: null,
|
|
82
|
+
lastWebApi: null,
|
|
64
83
|
loading: true,
|
|
65
84
|
redoStack: List(),
|
|
66
85
|
saving: false,
|
|
67
86
|
tasks: OrderedMap(),
|
|
68
|
-
tree:
|
|
69
|
-
undoStack: List()
|
|
87
|
+
tree: null,
|
|
88
|
+
undoStack: List(),
|
|
89
|
+
webApi: null
|
|
70
90
|
});
|
|
71
91
|
export var NodeResultDependency = Record({
|
|
72
92
|
// where the dependency was found, one of:
|
|
@@ -89,10 +109,9 @@ var deserializeNodeId = function deserializeNodeId(id) {
|
|
|
89
109
|
return match ? parseInt(match[1]) : 0;
|
|
90
110
|
};
|
|
91
111
|
|
|
92
|
-
var serializeNodeId = function serializeNodeId(node) {
|
|
112
|
+
export var serializeNodeId = function serializeNodeId(node) {
|
|
93
113
|
return node.id === 0 ? 'start' : "".concat(node.definitionId, "_").concat(node.id);
|
|
94
114
|
};
|
|
95
|
-
|
|
96
115
|
export var deserializeNode = function deserializeNode(_ref) {
|
|
97
116
|
var id = _ref.id,
|
|
98
117
|
messages = _ref.messages,
|
|
@@ -145,17 +164,33 @@ export var serializeConnector = function serializeConnector(nodes) {
|
|
|
145
164
|
};
|
|
146
165
|
export var deserializeTree = function deserializeTree(_ref4) {
|
|
147
166
|
var bindings = _ref4.bindings,
|
|
167
|
+
categories = _ref4.categories,
|
|
168
|
+
definitionId = _ref4.definitionId,
|
|
169
|
+
inputs = _ref4.inputs,
|
|
148
170
|
name = _ref4.name,
|
|
171
|
+
notes = _ref4.notes,
|
|
172
|
+
outputs = _ref4.outputs,
|
|
173
|
+
ownerEmail = _ref4.ownerEmail,
|
|
149
174
|
sourceGroup = _ref4.sourceGroup,
|
|
150
175
|
sourceName = _ref4.sourceName,
|
|
176
|
+
status = _ref4.status,
|
|
151
177
|
treeJson = _ref4.treeJson,
|
|
178
|
+
type = _ref4.type,
|
|
152
179
|
versionId = _ref4.versionId;
|
|
153
180
|
return Tree({
|
|
154
181
|
bindings: bindings,
|
|
182
|
+
categories: List(categories).map(function (c) {
|
|
183
|
+
return c.name;
|
|
184
|
+
}),
|
|
155
185
|
connectors: OrderedMap(treeJson.connectors.map(deserializeConnector).map(function (c) {
|
|
156
186
|
return [c.id, c];
|
|
157
187
|
})),
|
|
188
|
+
definitionId: definitionId,
|
|
189
|
+
inputs: List(inputs).map(Map),
|
|
158
190
|
name: name,
|
|
191
|
+
notes: notes,
|
|
192
|
+
outputs: List(outputs).map(Map),
|
|
193
|
+
ownerEmail: ownerEmail,
|
|
159
194
|
nextNodeId: treeJson.lastId + 1,
|
|
160
195
|
nextConnectorId: treeJson.connectors.length,
|
|
161
196
|
nodes: OrderedMap(treeJson.nodes.map(deserializeNode).map(function (n) {
|
|
@@ -164,27 +199,64 @@ export var deserializeTree = function deserializeTree(_ref4) {
|
|
|
164
199
|
schemaVersion: treeJson.schemaVersion,
|
|
165
200
|
sourceGroup: sourceGroup,
|
|
166
201
|
sourceName: sourceName,
|
|
167
|
-
|
|
202
|
+
status: status,
|
|
203
|
+
type: type,
|
|
168
204
|
versionId: versionId
|
|
169
205
|
});
|
|
170
206
|
};
|
|
171
207
|
export var serializeTree = function serializeTree(_ref5) {
|
|
172
208
|
var connectors = _ref5.connectors,
|
|
209
|
+
categories = _ref5.categories,
|
|
210
|
+
definitionId = _ref5.definitionId,
|
|
211
|
+
inputs = _ref5.inputs,
|
|
212
|
+
name = _ref5.name,
|
|
173
213
|
nextNodeId = _ref5.nextNodeId,
|
|
174
214
|
nodes = _ref5.nodes,
|
|
215
|
+
notes = _ref5.notes,
|
|
216
|
+
outputs = _ref5.outputs,
|
|
217
|
+
ownerEmail = _ref5.ownerEmail,
|
|
175
218
|
schemaVersion = _ref5.schemaVersion,
|
|
176
|
-
|
|
219
|
+
sourceGroup = _ref5.sourceGroup,
|
|
220
|
+
sourceName = _ref5.sourceName,
|
|
221
|
+
status = _ref5.status,
|
|
177
222
|
versionId = _ref5.versionId;
|
|
178
223
|
var overwrite = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
179
224
|
return {
|
|
180
|
-
|
|
225
|
+
categories: categories,
|
|
226
|
+
definitionId: definitionId,
|
|
227
|
+
inputs: inputs,
|
|
228
|
+
name: name,
|
|
229
|
+
notes: notes,
|
|
230
|
+
outputs: outputs,
|
|
231
|
+
ownerEmail: ownerEmail,
|
|
232
|
+
sourceGroup: sourceGroup,
|
|
233
|
+
sourceName: sourceName,
|
|
234
|
+
status: status,
|
|
235
|
+
treeJson: {
|
|
181
236
|
connectors: connectors.toList().map(serializeConnector(nodes)).toJS(),
|
|
182
237
|
lastId: nextNodeId - 1,
|
|
183
238
|
nodes: nodes.toList().map(serializeNode).toJS(),
|
|
184
239
|
schemaVersion: schemaVersion
|
|
185
|
-
},
|
|
186
|
-
taskDefinition: taskDefinition
|
|
187
|
-
} : {}),
|
|
240
|
+
},
|
|
188
241
|
versionId: overwrite ? null : versionId
|
|
189
242
|
};
|
|
243
|
+
};
|
|
244
|
+
export var deserializeWebApi = function deserializeWebApi(_ref6, kappSlug) {
|
|
245
|
+
var createdAt = _ref6.createdAt,
|
|
246
|
+
createdBy = _ref6.createdBy,
|
|
247
|
+
method = _ref6.method,
|
|
248
|
+
securityPolicies = _ref6.securityPolicies,
|
|
249
|
+
slug = _ref6.slug,
|
|
250
|
+
updatedAt = _ref6.updatedAt,
|
|
251
|
+
updatedBy = _ref6.updatedBy;
|
|
252
|
+
return WebApi({
|
|
253
|
+
createdAt: createdAt,
|
|
254
|
+
createdBy: createdBy,
|
|
255
|
+
method: method,
|
|
256
|
+
securityPolicies: List(securityPolicies).map(Map),
|
|
257
|
+
slug: slug,
|
|
258
|
+
kappSlug: kappSlug,
|
|
259
|
+
updatedAt: updatedAt,
|
|
260
|
+
updatedBy: updatedBy
|
|
261
|
+
});
|
|
190
262
|
};
|
|
@@ -24,7 +24,7 @@ var dataSource = function dataSource(_ref) {
|
|
|
24
24
|
relatedItem1Type: paramData.filters.get('relatedItem1Type'),
|
|
25
25
|
relatedItem2Id: paramData.filters.get('relatedItem2Id'),
|
|
26
26
|
relatedItem2Type: paramData.filters.get('relatedItem2Type'),
|
|
27
|
-
include: 'details,run,messages,messages.details',
|
|
27
|
+
include: 'details,run,run.details,messages,messages.details',
|
|
28
28
|
limit: paramData.pageSize,
|
|
29
29
|
offset: paramData.nextPageToken,
|
|
30
30
|
timeline: paramData.sortColumn,
|