@5minds/node-red-contrib-processcube 1.1.4-develop-772742-m17mr2mk → 1.1.4-develop-0f23a0-m17mrfjc

Sign up to get free protection for your applications and to get access to all the features.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@5minds/node-red-contrib-processcube",
3
- "version": "1.1.4-develop-772742-m17mr2mk",
3
+ "version": "1.1.4-develop-0f23a0-m17mrfjc",
4
4
  "license": "MIT",
5
5
  "description": "Node-RED nodes for ProcessCube",
6
6
  "scripts": {
@@ -7,8 +7,7 @@
7
7
  engine: { value: '', type: 'processcube-engine-config' },
8
8
  query: { value: 'payload' },
9
9
  query_type: { value: 'msg' },
10
- force_send_array: { value: false },
11
- multisend: { value: false },
10
+ sendtype: { value: 'array', required: true },
12
11
  },
13
12
  inputs: 1,
14
13
  outputs: 1,
@@ -45,33 +44,13 @@
45
44
  <label for="node-input-query"><i class="fa fa-tag"></i> Query</label>
46
45
  <input type="text" id="node-input-query" />
47
46
  </div>
48
- <div class="form-row" style="display:flex; margin-bottom: 3px;">
49
- <label for="node-input-force_send_array" style="vertical-align:top"
50
- ><i class="fa fa-list-alt"></i> Force send payload as array</label
51
- >
52
- <div>
53
- <input
54
- type="checkbox"
55
- checked
56
- id="node-input-force_send_array"
57
- style="display: inline-block; width: auto; margin: 0px 0px 0px 4px;"
58
- />
59
- <label style="width:auto" for="node-input-force_send_array"
60
- >Alway send an array? Only works if <i>Send multi</i> is false.</label
61
- >
62
- </div>
63
- </div>
64
- <div class="form-row" style="display:flex; margin-bottom: 3px;">
65
- <label for="node-input-multisend" style="vertical-align:top"><i class="fa fa-list-alt"></i> Send multi</label>
66
- <div>
67
- <input
68
- type="checkbox"
69
- checked
70
- id="node-input-multisend"
71
- style="display: inline-block; width: auto; margin: 0px 0px 0px 4px;"
72
- />
73
- <label style="width:auto" for="node-input-multisend">Send one output of each usertask input?</label>
74
- </div>
47
+ <div class="form-row">
48
+ <label for="node-input-sendtype"><i class="fa fa-sliders"></i> Result</label>
49
+ <select id="node-input-sendtype" style="width: 70%;">
50
+ <option value="array">Send as Array</option>
51
+ <option value="multi">Send Separately</option>
52
+ <option value="first">Send First Task</option>
53
+ </select>
75
54
  </div>
76
55
  </script>
77
56
 
@@ -88,6 +67,6 @@ A node which sends a payload to a usertask in the ProcessCube.
88
67
 
89
68
  ### References
90
69
 
91
- - [The ProcessCube Developer Network](https://processcube.io) - All documentation for the ProcessCube&copy; platform
92
- - [Node-RED Integration in ProcessCube&copy;](https://processcube.io/docs/node-red) - Node-RED integration in ProcessCube&copy;
70
+ - [The ProcessCube Developer Network](https://processcube.io) - All documentation for the ProcessCube&copy; platform
71
+ - [Node-RED Integration in ProcessCube&copy;](https://processcube.io/docs/node-red) - Node-RED integration in ProcessCube&copy;
93
72
  </script>
package/usertask-input.js CHANGED
@@ -4,7 +4,6 @@ module.exports = function (RED) {
4
4
  var node = this;
5
5
 
6
6
  node.on('input', function (msg) {
7
-
8
7
  const engine = RED.nodes.getNode(config.engine);
9
8
 
10
9
  const client = engine.engineClient;
@@ -17,46 +16,26 @@ module.exports = function (RED) {
17
16
  let query = RED.util.evaluateNodeProperty(config.query, config.query_type, node, msg);
18
17
 
19
18
  query = {
20
- ...query
19
+ ...query,
21
20
  };
22
21
 
23
- client.userTasks.query(query, { identity: engine.identity} )
22
+ client.userTasks
23
+ .query(query, { identity: engine.identity })
24
24
  .then((matchingFlowNodes) => {
25
- if (
26
- !config.force_send_array &&
27
- matchingFlowNodes &&
28
- matchingFlowNodes.userTasks &&
29
- matchingFlowNodes.userTasks.length == 1
30
- ) {
31
- userTask = matchingFlowNodes.userTasks[0];
32
-
33
- msg.payload = { userTask: userTask };
25
+ if (config.sendtype === 'array') {
26
+ msg.payload = { userTasks: matchingFlowNodes.userTasks || [] };
34
27
  node.send(msg);
35
- } else {
36
- if (!config.force_send_array) {
37
- if (config.multisend && matchingFlowNodes.userTasks && matchingFlowNodes.userTasks.length > 1) {
38
- matchingFlowNodes.userTasks.forEach((userTask) => {
39
- msg.payload = { userTask: userTask };
40
- node.send(msg);
41
- });
42
- } else {
43
- if (matchingFlowNodes.userTasks == 1) {
44
- msg.payload = {
45
- userTasks: matchingFlowNodes.userTasks,
46
- };
47
- node.send(msg);
48
- } else {
49
- node.log(`No user tasks found for query: ${JSON.stringify(query)}`);
50
- }
51
- }
52
- } else {
53
- msg.payload = {
54
- userTasks: matchingFlowNodes.userTasks || [],
55
- };
28
+ } else if (config.sendtype === 'multi' && matchingFlowNodes?.userTasks?.length > 1) {
29
+ matchingFlowNodes.userTasks.forEach((userTask) => {
30
+ msg.payload = { userTask };
56
31
  node.send(msg);
57
- }
58
- }
59
- }).catch((error) => {
32
+ });
33
+ } else if (matchingFlowNodes?.userTasks?.length >= 1) {
34
+ msg.payload = { userTask: matchingFlowNodes.userTasks[0] };
35
+ node.send(msg);
36
+ } else node.log(`No user tasks found for query: ${JSON.stringify(query)}`);
37
+ })
38
+ .catch((error) => {
60
39
  node.error(error);
61
40
  });
62
41
  });