@kineticdata/react 5.0.16 → 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.
Files changed (88) hide show
  1. package/lib/apis/core/attributeDefinitions.js +3 -2
  2. package/lib/apis/core/authentication.js +13 -5
  3. package/lib/apis/core/backgroundJobs.js +22 -39
  4. package/lib/apis/core/fileResources.js +36 -0
  5. package/lib/apis/core/filestores.js +40 -0
  6. package/lib/apis/core/forms.js +21 -36
  7. package/lib/apis/core/forms.test.js +51 -278
  8. package/lib/apis/core/securityPolicyDefinitions.test.js +4 -4
  9. package/lib/apis/core/submissions.js +46 -30
  10. package/lib/apis/core/webhooks.js +1 -2
  11. package/lib/apis/discussions/index.js +2 -1
  12. package/lib/apis/http.js +28 -13
  13. package/lib/apis/http.test.js +13 -15
  14. package/lib/apis/index.js +2 -0
  15. package/lib/apis/system/index.js +86 -1
  16. package/lib/apis/task/index.js +22 -14
  17. package/lib/components/agent/filestore/FilestoreForm.js +132 -0
  18. package/lib/components/agent/filestore/FilestoreTable.js +53 -0
  19. package/lib/components/common/BridgeSelect.js +2 -1
  20. package/lib/components/common/FormSelect.js +2 -1
  21. package/lib/components/common/Scroller.js +6 -6
  22. package/lib/components/common/TableInput.js +74 -29
  23. package/lib/components/common/TeamSelect.js +2 -1
  24. package/lib/components/common/Typeahead.js +7 -4
  25. package/lib/components/common/UserSelect.js +2 -1
  26. package/lib/components/common/authentication/AuthenticationContainer.js +50 -27
  27. package/lib/components/common/code_input/languageHelpers.test.js +1 -1
  28. package/lib/components/core/attribute_definition/AttributeDefinitionForm.js +1 -1
  29. package/lib/components/core/attribute_definition/AttributeDefinitionTable.js +1 -1
  30. package/lib/components/core/core_form/CoreForm.js +10 -10
  31. package/lib/components/core/field_definition/FieldDefinitionForm.js +130 -0
  32. package/lib/components/core/field_definition/FieldDefinitionTable.js +86 -0
  33. package/lib/components/core/file_resource/FileResourceForm.js +180 -0
  34. package/lib/components/core/file_resource/FileResourceTable.js +71 -0
  35. package/lib/components/core/form/FormForm.js +12 -17
  36. package/lib/components/core/form/FormTable.js +3 -8
  37. package/lib/components/core/i18n/I18n.js +15 -15
  38. package/lib/components/core/index_definition/IndexDefinitionForm.js +32 -19
  39. package/lib/components/core/index_definition/IndexDefinitionTable.js +15 -24
  40. package/lib/components/core/index_job/IndexJobTable.js +12 -9
  41. package/lib/components/core/security_definition/SecurityDefinitionForm.js +1 -1
  42. package/lib/components/core/space/SpaceForm.js +59 -10
  43. package/lib/components/core/submission/DatastoreSubmissionTable.js +31 -1
  44. package/lib/components/core/submission/FormSubmissionFilters.js +378 -0
  45. package/lib/components/core/submission/FormSubmissionTable.js +116 -0
  46. package/lib/components/core/submission/KappSubmissionTable.js +250 -0
  47. package/lib/components/core/submission/SubmissionForm.js +124 -0
  48. package/lib/components/core/submission/SubmissionTable.js +35 -249
  49. package/lib/components/core/submission/helpers.js +95 -0
  50. package/lib/components/core/submission/helpers.test.js +96 -0
  51. package/lib/components/core/translation/ContextTable.js +1 -1
  52. package/lib/components/core/user/UserForm.js +2 -2
  53. package/lib/components/core/webapi/WebApiForm.js +111 -126
  54. package/lib/components/core/webhook/WebhookForm.js +1 -1
  55. package/lib/components/form/Form.helpers.js +1 -1
  56. package/lib/components/form/Form.js +200 -144
  57. package/lib/components/index.js +16 -6
  58. package/lib/components/system/SystemBackgroundTasksTable.js +83 -0
  59. package/lib/components/system/SystemSecurityForm.js +69 -0
  60. package/lib/components/system/helpers.js +20 -6
  61. package/lib/components/system/spaces/SystemSpaceForm.js +44 -16
  62. package/lib/components/system/spaces/SystemTenantForm.js +15 -9
  63. package/lib/components/system/spaces/SystemTenantTable.js +21 -16
  64. package/lib/components/table/Table.js +37 -10
  65. package/lib/components/table/Table.redux.js +228 -57
  66. package/lib/components/table/Table.redux.test.js +73 -2
  67. package/lib/components/task/builder/Connector.js +21 -10
  68. package/lib/components/task/builder/ConnectorForm.js +1 -1
  69. package/lib/components/task/builder/Node.js +10 -3
  70. package/lib/components/task/builder/NodeForm.js +54 -22
  71. package/lib/components/task/builder/NodeParametersForm.js +5 -2
  72. package/lib/components/task/builder/SvgCanvas.js +13 -4
  73. package/lib/components/task/builder/TaskDefinitionConfigForm.js +113 -0
  74. package/lib/components/task/builder/TreeBuilder.js +27 -9
  75. package/lib/components/task/builder/builder.redux.js +159 -52
  76. package/lib/components/task/builder/helpers.js +5 -3
  77. package/lib/components/task/builder/models.js +84 -12
  78. package/lib/components/task/errors/RunErrorTable.js +1 -1
  79. package/lib/components/task/runs/CreateManualTriggerForm.js +15 -24
  80. package/lib/components/task/runs/RunTable.js +5 -3
  81. package/lib/components/task/triggers/TriggerTable.js +3 -2
  82. package/lib/components/task/workflows/WorkflowForm.js +67 -85
  83. package/lib/helpers/index.js +19 -2
  84. package/lib/index.js +1 -0
  85. package/lib/models/discussions.js +18 -2
  86. package/lib/models/index.js +1 -1
  87. package/package.json +3 -3
  88. package/proxyhelper.js +19 -6
@@ -3,6 +3,8 @@ import { List } from 'immutable';
3
3
  import { generateForm } from '../../form/Form';
4
4
  import { NodeMessage } from './models';
5
5
  import { buildBindings } from './helpers';
6
+ import { fetchForm } from '../../../apis';
7
+ import { checkOmittedParameters, generateTaskDefinition } from './TaskDefinitionConfigForm';
6
8
 
7
9
  var dataSources = function dataSources(_ref) {
8
10
  var tasks = _ref.tasks,
@@ -18,6 +20,33 @@ var dataSources = function dataSources(_ref) {
18
20
  return node.parameters;
19
21
  },
20
22
  params: [node]
23
+ },
24
+ form: {
25
+ fn: function fn(node) {
26
+ return fetchForm({
27
+ kappSlug: node.parameters.find(function (parameter) {
28
+ return parameter.id === 'kappSlug';
29
+ }).value,
30
+ formSlug: node.parameters.find(function (parameter) {
31
+ return parameter.id === 'formSlug';
32
+ }).value,
33
+ include: 'fields,kapp'
34
+ }).then(function (data) {
35
+ return data.form;
36
+ });
37
+ },
38
+ params: generateTaskDefinition(tasks.get(node.definitionId)) ? [node] : null
39
+ },
40
+ task: {
41
+ fn: function fn(node, form) {
42
+ return form ? generateTaskDefinition(tasks.get(node.definitionId))({
43
+ form: form.toJS()
44
+ }) : tasks.get(node.definitionId);
45
+ },
46
+ params: function params(_ref2) {
47
+ var form = _ref2.form;
48
+ return generateTaskDefinition(tasks.get(node.definitionId)) ? form ? [node, form] : null : [node, null];
49
+ }
21
50
  }
22
51
  };
23
52
  };
@@ -34,26 +63,26 @@ var getOptions = function getOptions(menu) {
34
63
  };
35
64
 
36
65
  var checkDependsOn = function checkDependsOn(parameter) {
37
- return !parameter.dependsOnId || function (_ref2) {
38
- var values = _ref2.values;
66
+ return !parameter.dependsOnId || function (_ref3) {
67
+ var values = _ref3.values;
39
68
  return values.get("parameter_".concat(parameter.dependsOnId)) === parameter.dependsOnValue;
40
69
  };
41
70
  };
42
71
 
43
- var fields = function fields(_ref3) {
44
- var tasks = _ref3.tasks,
45
- tree = _ref3.tree,
46
- node = _ref3.node;
47
- return function (_ref4) {
48
- var bindings = _ref4.bindings;
72
+ var fields = function fields(_ref4) {
73
+ var tasks = _ref4.tasks,
74
+ tree = _ref4.tree,
75
+ node = _ref4.node;
76
+ return function (_ref5) {
77
+ var bindings = _ref5.bindings;
49
78
  return bindings && [{
50
79
  name: 'name',
51
80
  label: 'Name',
52
81
  type: 'text',
53
82
  initialValue: node.name,
54
83
  required: true,
55
- constraint: function constraint(_ref5) {
56
- var values = _ref5.values;
84
+ constraint: function constraint(_ref6) {
85
+ var values = _ref6.values;
57
86
  return tree.nodes.some(function (other) {
58
87
  return other.name === values.get('name') && other.id !== node.id;
59
88
  }) ? 'This name is already used by another node' : values.get('name').length > 128 ? 'Name cannot exceed 128 characters' : true;
@@ -98,14 +127,14 @@ var fields = function fields(_ref3) {
98
127
  initialValue: parameter.value,
99
128
  options: parameter.menu ? getOptions(parameter.menu) : bindings,
100
129
  "transient": true,
101
- visible: checkDependsOn(parameter)
130
+ visible: checkDependsOn(parameter) && checkOmittedParameters(node, parameter)
102
131
  };
103
132
  })), [{
104
133
  name: 'parameters',
105
134
  type: null,
106
135
  visible: false,
107
- serialize: function serialize(_ref6) {
108
- var values = _ref6.values;
136
+ serialize: function serialize(_ref7) {
137
+ var values = _ref7.values;
109
138
  return node.parameters.map(function (parameter) {
110
139
  return parameter.set('value', values.get("parameter_".concat(parameter.id)));
111
140
  });
@@ -122,8 +151,8 @@ var fields = function fields(_ref3) {
122
151
  language: 'erb',
123
152
  options: bindings,
124
153
  "transient": true,
125
- visible: function visible(_ref7) {
126
- var values = _ref7.values;
154
+ visible: function visible(_ref8) {
155
+ var values = _ref8.values;
127
156
  return values.get('defers', false);
128
157
  }
129
158
  }, {
@@ -138,8 +167,8 @@ var fields = function fields(_ref3) {
138
167
  language: 'erb',
139
168
  options: bindings,
140
169
  "transient": true,
141
- visible: function visible(_ref8) {
142
- var values = _ref8.values;
170
+ visible: function visible(_ref9) {
171
+ var values = _ref9.values;
143
172
  return values.get('defers', false);
144
173
  }
145
174
  }, {
@@ -158,23 +187,26 @@ var fields = function fields(_ref3) {
158
187
  name: 'messages',
159
188
  type: null,
160
189
  visible: false,
161
- serialize: function serialize(_ref9) {
162
- var values = _ref9.values;
190
+ serialize: function serialize(_ref10) {
191
+ var values = _ref10.values;
163
192
  return List(values.get('defers') ? ['Create', 'Update', 'Complete'] : ['Complete']).map(function (type) {
164
193
  return NodeMessage({
165
194
  type: type,
166
195
  value: values.get("message_".concat(type))
167
196
  });
197
+ }) // Do not serialize empty messages.
198
+ .filter(function (message) {
199
+ return !!message.value;
168
200
  });
169
201
  }
170
202
  }]);
171
203
  };
172
204
  };
173
205
 
174
- var handleSubmit = function handleSubmit(_ref10) {
175
- var node = _ref10.node;
206
+ var handleSubmit = function handleSubmit(_ref11) {
207
+ var node = _ref11.node;
176
208
  return function (values) {
177
- return values.toObject();
209
+ return node.merge(values);
178
210
  };
179
211
  };
180
212
 
@@ -2,6 +2,7 @@ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
2
2
  import { generateForm } from '../../form/Form';
3
3
  import { buildBindings, normalizeParameter } from './helpers';
4
4
  import { NodeParameter } from './models';
5
+ import { checkOmittedParameters } from './TaskDefinitionConfigForm';
5
6
 
6
7
  var getOptions = function getOptions(menu) {
7
8
  return menu.split(',').filter(function (value) {
@@ -54,7 +55,8 @@ var fields = function fields(_ref2) {
54
55
  initialValue: parameter.value,
55
56
  options: parameter.menu ? getOptions(parameter.menu) : bindings,
56
57
  "transient": true,
57
- enabled: false
58
+ enabled: false,
59
+ visible: checkOmittedParameters(node, parameter)
58
60
  };
59
61
  })), _toConsumableArray(parameters.map(function (parameter) {
60
62
  var matchingParameter = node.parameters.find(function (oldParameter) {
@@ -68,7 +70,8 @@ var fields = function fields(_ref2) {
68
70
  helpText: parameter.description,
69
71
  initialValue: matchingParameter ? matchingParameter.value : parameter.defaultValue,
70
72
  options: parameter.menu ? getOptions(parameter.menu) : bindings,
71
- "transient": true
73
+ "transient": true,
74
+ visible: checkOmittedParameters(node, parameter)
72
75
  };
73
76
  })), [{
74
77
  name: 'parameters',
@@ -245,11 +245,20 @@ export var SvgCanvas = /*#__PURE__*/function (_Component) {
245
245
  x = _this$viewport.x,
246
246
  y = _this$viewport.y;
247
247
 
248
- if (!isIE11) {
249
- var transition = duration ? "transition: transform ".concat(duration, "ms ").concat(ease) : '';
250
- this.transformer.current.setAttribute('style', "transform: translate(".concat(x, "px, ").concat(y, "px) scale(").concat(scale, ");").concat(transition));
248
+ if (isIE11) {
249
+ // this.transformer.current.setAttribute(
250
+ // 'transform',
251
+ // `translate(${x} ${y}) scale(${scale})`,
252
+ // );
253
+ this.transformer.current.transform = "translate(".concat(x, " ").concat(y, ") scale(").concat(scale, ")");
251
254
  } else {
252
- this.transformer.current.setAttribute('transform', "translate(".concat(x, " ").concat(y, ") scale(").concat(scale, ")"));
255
+ var transition = duration ? "transform ".concat(duration, "ms ").concat(ease) : ''; // this.transformer.current.setAttribute(
256
+ // 'style',
257
+ // `transform: translate(${x}px, ${y}px) scale(${scale});${transition}`,
258
+ // );
259
+
260
+ this.transformer.current.style.transform = "translate(".concat(x, "px, ").concat(y, "px) scale(").concat(scale, ")");
261
+ this.transformer.current.style.transition = transition;
253
262
  }
254
263
 
255
264
  if (this.viewport.scale < 0.26 && this.transformer.current.className.baseVal !== 'min-detail') {
@@ -0,0 +1,113 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
2
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
3
+ import { List, Map } from 'immutable';
4
+ import { generateForm } from '../../form/Form';
5
+ import { fetchForm, fetchKapps } from '../../../apis';
6
+ export var checkOmittedParameters = function checkOmittedParameters(node, parameter) {
7
+ if (node.definitionId === 'system_submission_create_v1') {
8
+ return !['kappSlug', 'formSlug'].includes(parameter.id);
9
+ } else {
10
+ return true;
11
+ }
12
+ };
13
+ export var generateTaskDefinition = function generateTaskDefinition(taskDefinition) {
14
+ if (taskDefinition.definitionName === 'system_submission_create') {
15
+ return function (_ref) {
16
+ var form = _ref.form;
17
+ return _objectSpread(_objectSpread({}, taskDefinition), {}, {
18
+ parameters: [].concat(_toConsumableArray(taskDefinition.parameters.map(function (parameter) {
19
+ return parameter.id === 'kappSlug' ? _objectSpread(_objectSpread({}, parameter), {}, {
20
+ defaultValue: form.kapp.slug
21
+ }) : parameter.id === 'formSlug' ? _objectSpread(_objectSpread({}, parameter), {}, {
22
+ defaultValue: form.slug
23
+ }) : parameter;
24
+ })), _toConsumableArray(form.fields.map(function (field) {
25
+ return {
26
+ name: field.name,
27
+ defaultValue: '',
28
+ dependsOnId: null,
29
+ dependsOnValue: null,
30
+ description: '',
31
+ id: "values.".concat(field.name),
32
+ required: false
33
+ };
34
+ })))
35
+ });
36
+ };
37
+ } else {
38
+ return null;
39
+ }
40
+ };
41
+
42
+ var dataSources = function dataSources() {
43
+ return {
44
+ kapps: {
45
+ fn: fetchKapps,
46
+ params: [],
47
+ transform: function transform(data) {
48
+ return data.kapps;
49
+ }
50
+ }
51
+ };
52
+ };
53
+
54
+ var fields = function fields() {
55
+ return function () {
56
+ return [{
57
+ name: 'kappSlug',
58
+ label: 'Kapp',
59
+ type: 'select',
60
+ required: true,
61
+ options: function options(_ref2) {
62
+ var kapps = _ref2.kapps;
63
+ return kapps ? kapps.map(function (kapp) {
64
+ return Map({
65
+ value: kapp.get('slug'),
66
+ label: kapp.get('name')
67
+ });
68
+ }) : List();
69
+ },
70
+ onChange: function onChange(_ref3, actions) {
71
+ var values = _ref3.values;
72
+
73
+ if (!!values.get('form')) {
74
+ actions.setValue('form', null);
75
+ }
76
+ }
77
+ }, {
78
+ name: 'form',
79
+ label: 'Form',
80
+ type: 'form',
81
+ required: true,
82
+ enabled: function enabled(_ref4) {
83
+ var values = _ref4.values;
84
+ return values.get('kappSlug') !== '';
85
+ },
86
+ search: function search(_ref5) {
87
+ var values = _ref5.values;
88
+ return values.get('kappSlug') !== '' ? {
89
+ kappSlug: values.get('kappSlug')
90
+ } : {};
91
+ }
92
+ }];
93
+ };
94
+ };
95
+
96
+ var handleSubmit = function handleSubmit(_ref6) {
97
+ var taskDefinition = _ref6.taskDefinition;
98
+ return function (values) {
99
+ return fetchForm({
100
+ kappSlug: values.get('kappSlug'),
101
+ formSlug: values.getIn(['form', 'slug'], ''),
102
+ include: 'fields,kapp'
103
+ }).then(generateTaskDefinition(taskDefinition));
104
+ };
105
+ };
106
+
107
+ export var TaskDefinitionConfigForm = generateForm({
108
+ formOptions: ['taskDefinition'],
109
+ dataSources: dataSources,
110
+ fields: fields,
111
+ handleSubmit: handleSubmit
112
+ });
113
+ TaskDefinitionConfigForm.displayName = 'TaskDefinitionConfigForm';
@@ -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
  }, {
@@ -218,8 +218,8 @@ export var TreeBuilderComponent = /*#__PURE__*/function (_Component) {
218
218
  } // otherwise check for changes to the highlight prop and focus if it changes
219
219
  // and its a truthy value
220
220
  else if (this.props.highlight && !this.props.highlight.equals(prevProps.highlight)) {
221
- this.panTo(this.props.highlight);
222
- }
221
+ this.panTo(this.props.highlight);
222
+ }
223
223
  }
224
224
  }
225
225
  }, {
@@ -239,11 +239,14 @@ export var TreeBuilderComponent = /*#__PURE__*/function (_Component) {
239
239
  highlightId = _ref4[1];
240
240
 
241
241
  if (treeBuilderState) {
242
- var redoStack = treeBuilderState.redoStack,
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
- name: tree.name,
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