@5minds/node-red-contrib-processcube 0.2.6-feature-56f704-lvnqzr5u → 0.2.6-feature-90cba5-lvpgbys9

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.
@@ -558,6 +558,17 @@
558
558
  "module": "@5minds/node-red-contrib-processcube",
559
559
  "file": "/data/node_modules/node-red-contrib-processcube/usertask-input.js"
560
560
  },
561
+ "UserTaskOutput": {
562
+ "name": "UserTaskOutput",
563
+ "types": [
564
+ "usertask-output"
565
+ ],
566
+ "enabled": true,
567
+ "local": true,
568
+ "user": false,
569
+ "module": "@5minds/node-red-contrib-processcube",
570
+ "file": "/data/node_modules/node-red-contrib-processcube/usertask-output.js"
571
+ },
561
572
  "processcubeEngineConfig": {
562
573
  "name": "processcubeEngineConfig",
563
574
  "types": [
@@ -570,5 +570,112 @@
570
570
  "file": "/data/node_modules/node-red-contrib-processcube/processcube-engine-config.js"
571
571
  }
572
572
  }
573
+ },
574
+ "node-red-contrib-uibuilder": {
575
+ "name": "node-red-contrib-uibuilder",
576
+ "version": "6.8.2",
577
+ "local": false,
578
+ "user": false,
579
+ "nodes": {
580
+ "uibuilder": {
581
+ "name": "uibuilder",
582
+ "types": [
583
+ "uibuilder"
584
+ ],
585
+ "enabled": true,
586
+ "local": false,
587
+ "user": false,
588
+ "module": "node-red-contrib-uibuilder",
589
+ "file": "/usr/src/node-red/node_modules/node-red-contrib-uibuilder/nodes/uibuilder.js"
590
+ },
591
+ "uib-cache": {
592
+ "name": "uib-cache",
593
+ "types": [
594
+ "uib-cache"
595
+ ],
596
+ "enabled": true,
597
+ "local": false,
598
+ "user": false,
599
+ "module": "node-red-contrib-uibuilder",
600
+ "file": "/usr/src/node-red/node_modules/node-red-contrib-uibuilder/nodes/uib-cache.js"
601
+ },
602
+ "uib-tag": {
603
+ "name": "uib-tag",
604
+ "types": [
605
+ "uib-tag"
606
+ ],
607
+ "enabled": true,
608
+ "local": false,
609
+ "user": false,
610
+ "module": "node-red-contrib-uibuilder",
611
+ "file": "/usr/src/node-red/node_modules/node-red-contrib-uibuilder/nodes/uib-tag/customNode.js"
612
+ },
613
+ "uib-element": {
614
+ "name": "uib-element",
615
+ "types": [
616
+ "uib-element"
617
+ ],
618
+ "enabled": true,
619
+ "local": false,
620
+ "user": false,
621
+ "module": "node-red-contrib-uibuilder",
622
+ "file": "/usr/src/node-red/node_modules/node-red-contrib-uibuilder/nodes/uib-element/customNode.js"
623
+ },
624
+ "uib-update": {
625
+ "name": "uib-update",
626
+ "types": [
627
+ "uib-update"
628
+ ],
629
+ "enabled": true,
630
+ "local": false,
631
+ "user": false,
632
+ "module": "node-red-contrib-uibuilder",
633
+ "file": "/usr/src/node-red/node_modules/node-red-contrib-uibuilder/nodes/uib-update/customNode.js"
634
+ },
635
+ "uib-html": {
636
+ "name": "uib-html",
637
+ "types": [
638
+ "uib-html"
639
+ ],
640
+ "enabled": true,
641
+ "local": false,
642
+ "user": false,
643
+ "module": "node-red-contrib-uibuilder",
644
+ "file": "/usr/src/node-red/node_modules/node-red-contrib-uibuilder/nodes/uib-html/customNode.js"
645
+ },
646
+ "uib-save": {
647
+ "name": "uib-save",
648
+ "types": [
649
+ "uib-save"
650
+ ],
651
+ "enabled": true,
652
+ "local": false,
653
+ "user": false,
654
+ "module": "node-red-contrib-uibuilder",
655
+ "file": "/usr/src/node-red/node_modules/node-red-contrib-uibuilder/nodes/uib-save/customNode.js"
656
+ },
657
+ "uib-sender": {
658
+ "name": "uib-sender",
659
+ "types": [
660
+ "uib-sender"
661
+ ],
662
+ "enabled": true,
663
+ "local": false,
664
+ "user": false,
665
+ "module": "node-red-contrib-uibuilder",
666
+ "file": "/usr/src/node-red/node_modules/node-red-contrib-uibuilder/nodes/uib-sender.js"
667
+ },
668
+ "uib-list": {
669
+ "name": "uib-list",
670
+ "types": [
671
+ "uib-list"
672
+ ],
673
+ "enabled": true,
674
+ "local": false,
675
+ "user": false,
676
+ "module": "node-red-contrib-uibuilder",
677
+ "file": "/usr/src/node-red/node_modules/node-red-contrib-uibuilder/nodes/uib-list/customNode.js"
678
+ }
679
+ }
573
680
  }
574
681
  }
@@ -17,6 +17,6 @@
17
17
  }
18
18
  },
19
19
  "menu-menu-item-sidebar": true,
20
- "menu-menu-item-palette": false
20
+ "menu-menu-item-palette": true
21
21
  }
22
22
  }
@@ -17,6 +17,6 @@
17
17
  }
18
18
  },
19
19
  "menu-menu-item-sidebar": true,
20
- "menu-menu-item-palette": true
20
+ "menu-menu-item-palette": false
21
21
  }
22
22
  }
@@ -903,7 +903,7 @@
903
903
  "type": "debug",
904
904
  "z": "fd3c725340de4f74",
905
905
  "name": "debug 10",
906
- "active": true,
906
+ "active": false,
907
907
  "tosidebar": true,
908
908
  "console": false,
909
909
  "tostatus": false,
@@ -939,9 +939,12 @@
939
939
  "y": 300,
940
940
  "wires": [
941
941
  [
942
- "823445c277179d4e"
942
+ "823445c277179d4e",
943
+ "4267576c32c782ec"
943
944
  ],
944
- []
945
+ [
946
+ "ce674239858cdfa1"
947
+ ]
945
948
  ]
946
949
  },
947
950
  {
@@ -956,8 +959,8 @@
956
959
  "complete": "false",
957
960
  "statusVal": "",
958
961
  "statusType": "auto",
959
- "x": 590,
960
- "y": 280,
962
+ "x": 600,
963
+ "y": 220,
961
964
  "wires": []
962
965
  },
963
966
  {
@@ -1063,5 +1066,31 @@
1063
1066
  "4078e4fb0a080b04"
1064
1067
  ]
1065
1068
  ]
1069
+ },
1070
+ {
1071
+ "id": "ce674239858cdfa1",
1072
+ "type": "debug",
1073
+ "z": "fd3c725340de4f74",
1074
+ "name": "debug 12",
1075
+ "active": false,
1076
+ "tosidebar": true,
1077
+ "console": false,
1078
+ "tostatus": false,
1079
+ "complete": "false",
1080
+ "statusVal": "",
1081
+ "statusType": "auto",
1082
+ "x": 580,
1083
+ "y": 320,
1084
+ "wires": []
1085
+ },
1086
+ {
1087
+ "id": "4267576c32c782ec",
1088
+ "type": "usertask-output",
1089
+ "z": "fd3c725340de4f74",
1090
+ "name": "",
1091
+ "engine": "d042a4c68f51d6ab",
1092
+ "x": 740,
1093
+ "y": 260,
1094
+ "wires": []
1066
1095
  }
1067
1096
  ]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@5minds/node-red-contrib-processcube",
3
- "version": "0.2.6-feature-56f704-lvnqzr5u",
3
+ "version": "0.2.6-feature-90cba5-lvpgbys9",
4
4
  "license": "MIT",
5
5
  "description": "Node-RED nodes for ProcessCube",
6
6
  "authors": [
@@ -33,6 +33,7 @@
33
33
  "externaltaskError": "externaltask-error.js",
34
34
  "processStart": "process-start.js",
35
35
  "UserTaskInput": "usertask-input.js",
36
+ "UserTaskOutput": "usertask-output.js",
36
37
  "processcubeEngineConfig": "processcube-engine-config.js"
37
38
  }
38
39
  },
package/usertask-input.js CHANGED
@@ -74,7 +74,10 @@ module.exports = function(RED) {
74
74
 
75
75
  let formFields = mapUserTaskToMsg(userTask);
76
76
 
77
- node.send({ payload: {formFields: formFields, userTask: userTask }, _flowNodeInstanceId: userTaskWaitingNotification.flowNodeInstanceId });
77
+ let flowNodeInstanceId = { id: "_flowNodeInstanceId", type: "hidden", value: userTaskWaitingNotification.flowNodeInstanceId};
78
+ formFields.push(flowNodeInstanceId);
79
+
80
+ node.send({ payload: {formFields: formFields, userTask: userTask }});
78
81
 
79
82
  } else {
80
83
  node.send({ payload: matchingFlowNodes });
@@ -0,0 +1,31 @@
1
+ <script type="text/javascript">
2
+ RED.nodes.registerType('usertask-output',{
3
+ category: 'ProcessCube',
4
+ color: '#00aed7',
5
+ defaults: {
6
+ name: {value: ""},
7
+ engine: {value: "", type: "processcube-engine-config"}
8
+ },
9
+ inputs: 1,
10
+ outputs: 0,
11
+ icon: "font-awesome/fa-envelope",
12
+ label: function() {
13
+ return this.name || "usertask-output";
14
+ }
15
+ });
16
+ </script>
17
+
18
+ <script type="text/html" data-template-name="usertask-output">
19
+ <div class="form-row">
20
+ <label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
21
+ <input type="text" id="node-input-name" placeholder="Name">
22
+ </div>
23
+ <div class="form-row">
24
+ <label for="node-input-engine"><i class="fa fa-tag"></i> Engine-URL</label>
25
+ <input type="text" id="node-input-engine" placeholder="http://engine:8000">
26
+ </div>
27
+ </script>
28
+
29
+ <script type="text/html" data-help-name="usertask-output">
30
+ <p>A node which send the result to an User Task of https://processcube.io</p>
31
+ </script>
@@ -0,0 +1,45 @@
1
+ const process = require('process');
2
+ const EventEmitter = require('node:events');
3
+
4
+ const engine_client = require('@5minds/processcube_engine_client');
5
+
6
+ module.exports = function(RED) {
7
+ function UserTaskOutput(config) {
8
+
9
+ RED.nodes.createNode(this, config);
10
+
11
+ var node = this;
12
+ var flowContext = node.context().flow;
13
+ var nodeContext = node.context();
14
+
15
+ this.engine = this.server = RED.nodes.getNode(config.engine);
16
+
17
+ const engineUrl = this.engine?.url || process.env.ENGINE_URL || 'http://engine:8000';
18
+
19
+ var client = nodeContext.get('client');
20
+
21
+ if (!client) {
22
+ nodeContext.set('client', new engine_client.EngineClient(engineUrl));
23
+ client = nodeContext.get('client');
24
+ }
25
+
26
+ var eventEmitter = flowContext.get('emitter');
27
+
28
+ if (!eventEmitter) {
29
+ flowContext.set('emitter', new EventEmitter());
30
+ eventEmitter = flowContext.get('emitter');
31
+ }
32
+
33
+ node.on('input', function(msg) {
34
+ console.log(`Try to finsih UserTask with id ${msg.payload._flowNodeInstanceId}.`);
35
+
36
+ const flowNodeInstanceId = msg.payload._flowNodeInstanceId;
37
+
38
+ client.userTasks.finishUserTask(flowNodeInstanceId, msg.payload).then(() => {
39
+ console.log(`UserTask with id ${flowNodeInstanceId} finished.`);
40
+ });
41
+ });
42
+ }
43
+
44
+ RED.nodes.registerType("usertask-output", UserTaskOutput);
45
+ }