@steedos-labs/plugin-workflow 3.0.0-beta.9 → 3.0.1-beta.1
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/main/default/client/instance.client.js +6 -6
- package/main/default/client/object_workflows.client.js +8 -7
- package/main/default/client/socket.client.js +46 -3
- package/main/default/manager/import.js +17 -1
- package/main/default/manager/instance_manager.js +20 -6
- package/main/default/manager/push_manager.js +20 -12
- package/main/default/manager/uuflowManagerForInitApproval.js +794 -0
- package/main/default/manager/uuflow_manager.js +53 -4
- package/main/default/manager/workflow_manager.js +1 -1
- package/main/default/methods/instance_approve.js +258 -0
- package/main/default/methods/trace_approve_cc.js +571 -0
- package/main/default/objectTranslations/flows.en/flows.en.objectTranslation.yml +19 -0
- package/main/default/objectTranslations/flows.zh-CN/flows.zh-CN.objectTranslation.yml +19 -0
- package/main/default/objectTranslations/forms.en/forms.en.objectTranslation.yml +191 -0
- package/main/default/objectTranslations/forms.zh-CN/forms.zh-CN.objectTranslation.yml +246 -0
- package/main/default/objectTranslations/instance_tasks.en/instance_tasks.en.objectTranslation.yml +213 -0
- package/main/default/objectTranslations/instance_tasks.zh-CN/instance_tasks.zh-CN.objectTranslation.yml +213 -0
- package/main/default/objectTranslations/instances.en/instances.en.objectTranslation.yml +212 -0
- package/main/default/objectTranslations/instances.zh-CN/instances.zh-CN.objectTranslation.yml +209 -0
- package/main/default/objects/categories.object.yml +1 -0
- package/main/default/objects/flows/buttons/del.button.yml +7 -10
- package/main/default/objects/flows/buttons/design_form_layout.button.js +5 -2
- package/main/default/objects/flows/buttons/distributeAdmin.button.yml +5 -5
- package/main/default/objects/flows/buttons/newexport.button.yml +1 -1
- package/main/default/objects/flows/buttons/newimport.button.yml +2 -1
- package/main/default/objects/flows/flows.object.yml +12 -4
- package/main/default/objects/forms/forms.object.yml +85 -0
- package/main/default/objects/instance_tasks/buttons/instance_new.button.yml +3 -5
- package/main/default/objects/instances/buttons/instance_cc.button.yml +7 -7
- package/main/default/objects/instances/buttons/instance_delete.button.yml +2 -2
- package/main/default/objects/instances/buttons/instance_delete_many.button.yml +6 -6
- package/main/default/objects/instances/buttons/instance_distribute.button.yml +14 -13
- package/main/default/objects/instances/buttons/instance_flow_chart.button.yml +1 -1
- package/main/default/objects/instances/buttons/instance_forward.button.yml +8 -8
- package/main/default/objects/instances/buttons/instance_new.button.yml +3 -5
- package/main/default/objects/instances/buttons/instance_reassign.button.yml +1 -16
- package/main/default/objects/instances/buttons/instance_related.button.yml +4 -4
- package/main/default/objects/instances/buttons/instance_relocate.button.yml +9 -12
- package/main/default/objects/instances/buttons/instance_retrieve.button.yml +106 -2
- package/main/default/objects/instances/buttons/instance_save.button.yml +3 -9
- package/main/default/objects/instances/buttons/instance_submit.button.yml +1 -1
- package/main/default/objects/instances/buttons/instance_terminate.button.yml +7 -10
- package/main/default/objects/instances/listviews/monitor.listview.yml +0 -1
- package/main/default/pages/flowdetail.page.amis.json +11 -11
- package/main/default/pages/instance_detail.page.amis.json +25 -37
- package/main/default/pages/instance_tasks_detail.page.amis.json +21 -5
- package/main/default/pages/instance_tasks_list.page.amis.json +147 -110
- package/main/default/pages/instances_list.page.amis.json +146 -110
- package/main/default/routes/afterHook.js +34 -0
- package/main/default/routes/am.router.js +49 -2
- package/main/default/routes/api_cc.router.js +5 -12
- package/main/default/routes/api_flow_permission.router.js +7 -2
- package/main/default/routes/api_get_object_workflows.router.js +79 -22
- package/main/default/routes/api_have_read.router.js +73 -0
- package/main/default/routes/api_object_workflow_drafts.router.js +18 -19
- package/main/default/routes/api_workflow_approve_save.router.js +2 -1
- package/main/default/routes/api_workflow_chart.router.js +682 -0
- package/main/default/routes/api_workflow_engine.router.js +4 -4
- package/main/default/routes/api_workflow_flow_version.router.js +61 -0
- package/main/default/routes/api_workflow_form_version.router.js +61 -0
- package/main/default/routes/api_workflow_instance_return.router.js +164 -167
- package/main/default/routes/api_workflow_next_step_users.router.js +13 -8
- package/main/default/routes/api_workflow_reassign.router.js +200 -196
- package/main/default/routes/api_workflow_relocate.router.js +4 -3
- package/main/default/routes/api_workflow_retrieve.router.js +246 -237
- package/main/default/routes/export.router.js +5 -4
- package/main/default/routes/flow_form_design.ejs +33 -8
- package/main/default/routes/flow_form_design.router.js +4 -3
- package/main/default/routes/import.router.js +6 -7
- package/main/default/services/flows.service.js +1 -1
- package/main/default/translations/en.translation.yml +5 -0
- package/main/default/translations/zh-CN.translation.yml +2 -1
- package/main/default/triggers/amis_form_design.trigger.js +27 -5
- package/main/default/triggers/instances.trigger.js +9 -7
- package/main/default/utils/designerManager.js +12 -5
- package/package.json +4 -4
- package/package.service.js +21 -7
- package/public/workflow/index.css +4 -0
- package/src/instance_record_queue.js +1 -3
- package/src/rests/api_workflow_instance_batch_remove.js +4 -3
- package/src/webhook_queue.js +283 -0
- package/main/default/manager/index.js +0 -23
|
@@ -45,7 +45,7 @@ window.SteedosWorkflow.InstanceTask = {
|
|
|
45
45
|
"showHeader": true,
|
|
46
46
|
"id": "u:d29cef0d1007",
|
|
47
47
|
"showDisplayAs": true,
|
|
48
|
-
"className": "h-full w-full
|
|
48
|
+
"className": "h-full w-full instance-tasks-list",
|
|
49
49
|
"hiddenColumnOperation": true,
|
|
50
50
|
"formFactor": "LARGE",
|
|
51
51
|
"headerToolbarItems": [
|
|
@@ -54,13 +54,13 @@ window.SteedosWorkflow.InstanceTask = {
|
|
|
54
54
|
"label": "",
|
|
55
55
|
"icon": "fa fa-bars",
|
|
56
56
|
"className": "bg-white p-2 rounded border-gray-300 text-gray-500",
|
|
57
|
-
"align": "
|
|
57
|
+
"align": "left",
|
|
58
58
|
"onEvent": {
|
|
59
59
|
"click": {
|
|
60
60
|
"actions": [
|
|
61
61
|
{
|
|
62
62
|
"actionType": "custom",
|
|
63
|
-
"script": "document.querySelector('.instances-customPage').classList.toggle('instances-sidebar-open');
|
|
63
|
+
"script": "document.querySelector('.instances-customPage').classList.toggle('instances-sidebar-open');"
|
|
64
64
|
}
|
|
65
65
|
]
|
|
66
66
|
}
|
|
@@ -113,7 +113,7 @@ window.SteedosWorkflow.Instance = {
|
|
|
113
113
|
"showHeader": true,
|
|
114
114
|
"id": "u:d29cef0d1007",
|
|
115
115
|
"showDisplayAs": true,
|
|
116
|
-
"className": "h-full w-full
|
|
116
|
+
"className": "h-full w-full",
|
|
117
117
|
"hiddenColumnOperation": true,
|
|
118
118
|
"formFactor": "LARGE",
|
|
119
119
|
"headerToolbarItems": [
|
|
@@ -122,13 +122,13 @@ window.SteedosWorkflow.Instance = {
|
|
|
122
122
|
"label": "",
|
|
123
123
|
"icon": "fa fa-bars",
|
|
124
124
|
"className": "bg-white p-2 rounded border-gray-300 text-gray-500",
|
|
125
|
-
"align": "
|
|
125
|
+
"align": "left",
|
|
126
126
|
"onEvent": {
|
|
127
127
|
"click": {
|
|
128
128
|
"actions": [
|
|
129
129
|
{
|
|
130
130
|
"actionType": "custom",
|
|
131
|
-
"script": "document.querySelector('.instances-customPage').classList.toggle('instances-sidebar-open');
|
|
131
|
+
"script": "document.querySelector('.instances-customPage').classList.toggle('instances-sidebar-open');"
|
|
132
132
|
}
|
|
133
133
|
]
|
|
134
134
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
});
|
|
1
|
+
waitForThing(Builder, 'settings.context.user.authToken').then(function(){
|
|
2
|
+
Steedos.authRequest("/api/workflow/v2/get_object_workflows", {
|
|
3
|
+
type: 'get',
|
|
4
|
+
success: (data)=>{
|
|
5
|
+
window.Steedos.object_workflows = data;
|
|
6
|
+
}
|
|
7
|
+
});
|
|
8
|
+
})
|
|
@@ -6,11 +6,13 @@ window.waitForThing(window, 'socket').then(()=>{
|
|
|
6
6
|
}
|
|
7
7
|
|
|
8
8
|
const SocketEvents = {
|
|
9
|
-
badgeChange: 's:workflow:badge:change'
|
|
9
|
+
badgeChange: 's:workflow:badge:change',
|
|
10
|
+
instanceRecordChange: 's:record:instances:change'
|
|
10
11
|
}
|
|
11
12
|
|
|
12
13
|
const SocketRoomParts = {
|
|
13
|
-
badgeChange: 'workflow:badge:change'
|
|
14
|
+
badgeChange: 'workflow:badge:change',
|
|
15
|
+
instanceRecordChange: 'record:instances:change'
|
|
14
16
|
}
|
|
15
17
|
|
|
16
18
|
if(socket.connected){
|
|
@@ -18,12 +20,20 @@ window.waitForThing(window, 'socket').then(()=>{
|
|
|
18
20
|
roomParts: SocketRoomParts.badgeChange,
|
|
19
21
|
individual: true
|
|
20
22
|
});
|
|
23
|
+
|
|
24
|
+
socket.emit(SocketCommands.subscribe, {
|
|
25
|
+
roomParts: SocketRoomParts.instanceRecordChange,
|
|
26
|
+
individual: true
|
|
27
|
+
});
|
|
21
28
|
}else{
|
|
22
29
|
socket.on("connection-init", ()=>{
|
|
23
30
|
socket.emit(SocketCommands.subscribe, {
|
|
24
31
|
roomParts: SocketRoomParts.badgeChange,
|
|
25
32
|
individual: true
|
|
26
33
|
});
|
|
34
|
+
socket.emit(SocketCommands.subscribe, {
|
|
35
|
+
roomParts: SocketRoomParts.instanceRecordChange
|
|
36
|
+
});
|
|
27
37
|
})
|
|
28
38
|
}
|
|
29
39
|
|
|
@@ -36,5 +46,38 @@ window.waitForThing(window, 'socket').then(()=>{
|
|
|
36
46
|
if (shouldReloadView()) {
|
|
37
47
|
window.$(".list-view-btn-reload").click()
|
|
38
48
|
}
|
|
39
|
-
})
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
socket.on(SocketEvents.instanceRecordChange, (data)=>{
|
|
52
|
+
console.log(`socket 「${SocketEvents.instanceRecordChange}」`, data)
|
|
53
|
+
const shouldReloadView = () => {
|
|
54
|
+
const pathname = window.location.pathname;
|
|
55
|
+
return pathname.endsWith(`/instances`) || pathname.includes(`/instances/view`) || pathname.includes(`/instances/grid`) || pathname.endsWith(`/instance_tasks`) || pathname.includes(`/instance_tasks/view`) || pathname.includes(`/instance_tasks/grid`);
|
|
56
|
+
};
|
|
57
|
+
if (shouldReloadView()) {
|
|
58
|
+
window.$(".list-view-btn-reload").click()
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
window.addEventListener('message', (event)=>{
|
|
64
|
+
const data = event.data;
|
|
65
|
+
// 判断是不是我们发的路由变化消息
|
|
66
|
+
if (data && data.type === 'ROUTE_CHANGE') {
|
|
67
|
+
console.log('📬 收到路由变化消息:', data);
|
|
68
|
+
if(data.path.startsWith('/app/approve_workflow/instances/view/')){
|
|
69
|
+
const recordId = _.last(_.split(data.path, '/'));
|
|
70
|
+
socket.emit(SocketCommands.subscribe, {
|
|
71
|
+
roomParts: `${SocketRoomParts.instanceRecordChange}-${recordId}`
|
|
72
|
+
});
|
|
73
|
+
socket.on(`${SocketEvents.instanceRecordChange}-${recordId}`, (eventData)=>{
|
|
74
|
+
if(window.location.pathname.startsWith('/app/approve_workflow/instances/view/'+eventData._id)){
|
|
75
|
+
if(window.location.search.indexOf("side_listview_id=monitor") > 0){
|
|
76
|
+
$(".steedos-workflow-reload-btn").trigger('click')
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
})
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
});
|
|
40
83
|
})
|
|
@@ -290,10 +290,24 @@ async function objectWorkflow(spaceId, flowId, objectName, doc) {
|
|
|
290
290
|
if (oldDoc) {
|
|
291
291
|
return objectWorkflowsCollection.updateOne({ _id: oldDoc._id }, { $set: docData });
|
|
292
292
|
} else {
|
|
293
|
+
docData._id = _makeNewID();
|
|
293
294
|
return objectWorkflowsCollection.insertOne(docData);
|
|
294
295
|
}
|
|
295
296
|
}
|
|
296
297
|
|
|
298
|
+
// 如果没有name字段,则给name赋值code
|
|
299
|
+
function addFieldName(fields) {
|
|
300
|
+
return _.map(fields, function (f) {
|
|
301
|
+
if (!f.name && f.code) {
|
|
302
|
+
f.name = f.code;
|
|
303
|
+
}
|
|
304
|
+
if (f.type === 'section' || f.type === 'table') {
|
|
305
|
+
f.fields = addFieldName(f.fields);
|
|
306
|
+
}
|
|
307
|
+
return f;
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
|
|
297
311
|
async function workflow(uid, spaceId, form, enabled, company_id, options = {}) {
|
|
298
312
|
const { upgrade = false, formId: upgradeFormId, flowId: upgradeFlowId } = options;
|
|
299
313
|
const new_form_ids = [];
|
|
@@ -394,6 +408,8 @@ async function workflow(uid, spaceId, form, enabled, company_id, options = {}) {
|
|
|
394
408
|
form.modified = form.created;
|
|
395
409
|
form.modified_by = uid;
|
|
396
410
|
form.historys = [];
|
|
411
|
+
|
|
412
|
+
const fields = addFieldName(form.current?.fields || []);
|
|
397
413
|
|
|
398
414
|
form.current = {
|
|
399
415
|
_id: _makeNewID(),
|
|
@@ -403,7 +419,7 @@ async function workflow(uid, spaceId, form, enabled, company_id, options = {}) {
|
|
|
403
419
|
created_by: uid,
|
|
404
420
|
modified: new Date(),
|
|
405
421
|
modified_by: uid,
|
|
406
|
-
fields:
|
|
422
|
+
fields: fields,
|
|
407
423
|
form_script: form.current?.form_script || '',
|
|
408
424
|
name_forumla: form.current?.name_forumla || ''
|
|
409
425
|
};
|
|
@@ -2,9 +2,11 @@ var _eval, logger;
|
|
|
2
2
|
|
|
3
3
|
_eval = require('eval');
|
|
4
4
|
|
|
5
|
+
const _ = require('lodash');
|
|
6
|
+
|
|
5
7
|
global.InstanceManager = {};
|
|
6
8
|
|
|
7
|
-
logger = new Logger('Workflow -> InstanceManager');
|
|
9
|
+
// logger = new Logger('Workflow -> InstanceManager');
|
|
8
10
|
|
|
9
11
|
InstanceManager.handlerInstanceByFieldMap = function (ins, field_map) {
|
|
10
12
|
var context, e, flow, res, script;
|
|
@@ -33,24 +35,33 @@ InstanceManager.handlerInstanceByFieldMap = function (ins, field_map) {
|
|
|
33
35
|
res = {
|
|
34
36
|
_error: e
|
|
35
37
|
};
|
|
36
|
-
logger.error(e);
|
|
38
|
+
// logger.error(e);
|
|
39
|
+
console.error(e);
|
|
37
40
|
}
|
|
38
41
|
}
|
|
39
42
|
}
|
|
40
43
|
return res;
|
|
41
44
|
};
|
|
42
45
|
|
|
43
|
-
InstanceManager.getCurrentApprove = function (instance, handler) {
|
|
46
|
+
InstanceManager.getCurrentApprove = function (instance, handler, type) {
|
|
44
47
|
var currentApprove, currentApproves, currentTraces;
|
|
45
48
|
if (!instance || !instance.traces || instance.traces.length < 1) {
|
|
46
49
|
return;
|
|
47
50
|
}
|
|
48
|
-
|
|
51
|
+
|
|
52
|
+
currentTraces = _.filter(instance.traces, { is_finished: false });
|
|
53
|
+
|
|
49
54
|
if (currentTraces.length) {
|
|
50
|
-
|
|
55
|
+
if (type){
|
|
56
|
+
currentApproves = _.filter(currentTraces[0].approves, { is_finished: false, handler: handler, type: type});
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
currentApproves = _.filter(currentTraces[0].approves, { is_finished: false, handler: handler });
|
|
60
|
+
}
|
|
51
61
|
currentApprove = currentApproves.length > 0 ? currentApproves[0] : null;
|
|
52
62
|
}
|
|
53
|
-
|
|
63
|
+
|
|
64
|
+
if (!currentApprove) {
|
|
54
65
|
// 当前是传阅
|
|
55
66
|
_.each(instance.traces, function (t) {
|
|
56
67
|
_.each(t.approves, function (a) {
|
|
@@ -180,3 +191,6 @@ InstanceManager.getBatchInstances = function (space, categoryId, flowIds, inbox_
|
|
|
180
191
|
// console.log("批量审批-异常数据", ins._id)
|
|
181
192
|
return _batch_instances;
|
|
182
193
|
};
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
module.exports = InstanceManager;
|
|
@@ -5,6 +5,8 @@ const { getObject } = objectql;
|
|
|
5
5
|
const { t } = require('@steedos/i18n');
|
|
6
6
|
const { map } = require('lodash');
|
|
7
7
|
|
|
8
|
+
const WebhookQueue = require('../../../src/webhook_queue')
|
|
9
|
+
|
|
8
10
|
const uuflowManager = {
|
|
9
11
|
getFlow: async function (flow_id, options = {}) {
|
|
10
12
|
if (process.env.STEEDOS_DEBUG) {
|
|
@@ -437,7 +439,7 @@ pushManager.get_badge = async function (send_from, user_id) {
|
|
|
437
439
|
if (((ref4 = appKeyValue.value) != null ? ref4[appName] : void 0) !== categoryBadge) {
|
|
438
440
|
_set = {};
|
|
439
441
|
_set['value.' + appName] = categoryBadge;
|
|
440
|
-
await getObject('steedos_keyvalues').update(appKeyValue._id,
|
|
442
|
+
await getObject('steedos_keyvalues').update(appKeyValue._id, _set)
|
|
441
443
|
continue;
|
|
442
444
|
}
|
|
443
445
|
} else {
|
|
@@ -553,7 +555,7 @@ pushManager.checkMailFromNameLength = function (name) {
|
|
|
553
555
|
};
|
|
554
556
|
|
|
555
557
|
// TODO 手机推送
|
|
556
|
-
pushManager.send_message_by_raix_push = async function (data) {
|
|
558
|
+
pushManager.send_message_by_raix_push = async function (data, lang) {
|
|
557
559
|
if (process.env.STEEDOS_DEBUG_DISABLE_PUSHMANAGER || !data["data"]) {
|
|
558
560
|
return;
|
|
559
561
|
}
|
|
@@ -590,7 +592,7 @@ pushManager.send_message_by_raix_push = async function (data) {
|
|
|
590
592
|
}
|
|
591
593
|
let notificationDoc = {
|
|
592
594
|
name: notification.text,
|
|
593
|
-
body: '
|
|
595
|
+
body: t('CustomLabels.approval_workflow', {}, lang),
|
|
594
596
|
related_to: {
|
|
595
597
|
o: "instances",
|
|
596
598
|
ids: [notification.payload?.instance]
|
|
@@ -613,6 +615,12 @@ pushManager.send_message_by_raix_push = async function (data) {
|
|
|
613
615
|
from: from,
|
|
614
616
|
to: toUsers
|
|
615
617
|
})
|
|
618
|
+
|
|
619
|
+
await objectql.getSteedosSchema().broker.emit('push.send', {
|
|
620
|
+
message: notificationDoc,
|
|
621
|
+
from: from,
|
|
622
|
+
to: toUsers
|
|
623
|
+
})
|
|
616
624
|
|
|
617
625
|
|
|
618
626
|
// data["toUsers"].forEach(userId => {
|
|
@@ -631,7 +639,7 @@ pushManager.send_message_by_raix_push = async function (data) {
|
|
|
631
639
|
};
|
|
632
640
|
|
|
633
641
|
//steedos_ids 必须为数组 ; body 如果有,则必须为Hash
|
|
634
|
-
pushManager.send_message = function (steedos_ids, body) {
|
|
642
|
+
pushManager.send_message = function (steedos_ids, body, current_user_info, lang) {
|
|
635
643
|
if (process.env.STEEDOS_DEBUG_DISABLE_PUSHMANAGER) {
|
|
636
644
|
return;
|
|
637
645
|
}
|
|
@@ -651,7 +659,7 @@ pushManager.send_message = function (steedos_ids, body) {
|
|
|
651
659
|
data.data = body;
|
|
652
660
|
}
|
|
653
661
|
|
|
654
|
-
pushManager.send_message_by_raix_push(data);
|
|
662
|
+
pushManager.send_message_by_raix_push(data, lang);
|
|
655
663
|
};
|
|
656
664
|
|
|
657
665
|
// TODO处理发送手机短信
|
|
@@ -780,7 +788,7 @@ pushManager.send_instance_notification = async function (send_from, instance, de
|
|
|
780
788
|
await pushManager.send_email_to_SMTP(title.email, content, to_user, from_user);
|
|
781
789
|
|
|
782
790
|
// Send Push Notification
|
|
783
|
-
await pushManager.send_message([to_user.steedos_id], push_body, current_user_info);
|
|
791
|
+
await pushManager.send_message([to_user.steedos_id], push_body, current_user_info, lang);
|
|
784
792
|
|
|
785
793
|
// Send SMS
|
|
786
794
|
if (['reassign_new_inbox_users', 'submit_pending_rejected_applicant_inbox', 'submit_pending_rejected_inbox', 'submit_pending_inbox', 'first_submit_inbox', 'return_pending_inbox'].includes(send_from)) {
|
|
@@ -854,7 +862,7 @@ pushManager.triggerWebhook = async function (flowId, instance, currentApprove, a
|
|
|
854
862
|
cfsInstances: await getCollection('cfs.instances.filerecord')
|
|
855
863
|
};
|
|
856
864
|
|
|
857
|
-
instance.attachments = (await cfsInstances.find({ 'metadata.instance': instance._id }).toArray()) || [];
|
|
865
|
+
instance.attachments = (await db.cfsInstances.find({ 'metadata.instance': instance._id }).toArray()) || [];
|
|
858
866
|
|
|
859
867
|
const fromUser = await db.users.findOne({ "_id": fromUserId }, { fields: { _id: 1, username: 1 } }) || {};
|
|
860
868
|
const fromSpaceUser = await db.space_users.findOne({ "user": fromUserId }, { fields: { mobile: 1, email: 1 } }) || {};
|
|
@@ -880,12 +888,12 @@ pushManager.triggerWebhook = async function (flowId, instance, currentApprove, a
|
|
|
880
888
|
for (const w of webhooks) {
|
|
881
889
|
WebhookQueue.send({
|
|
882
890
|
instance,
|
|
883
|
-
currentApprove,
|
|
884
|
-
|
|
885
|
-
|
|
891
|
+
current_approve: currentApprove,
|
|
892
|
+
payload_url: w.payload_url,
|
|
893
|
+
content_type: w.content_type,
|
|
886
894
|
action,
|
|
887
|
-
fromUser,
|
|
888
|
-
|
|
895
|
+
from_user: fromUser,
|
|
896
|
+
to_users: toUsers || []
|
|
889
897
|
});
|
|
890
898
|
}
|
|
891
899
|
};
|