@steedos/standard-process-approval 2.3.2-beta.6 → 2.3.2-beta.8
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/objectTranslations/workflow_rule.en/workflow_rule.en.objectTranslation.yml +4 -0
- package/main/default/objectTranslations/workflow_rule.zh-CN/workflow_rule.zh-CN.objectTranslation.yml +4 -0
- package/main/default/objects/workflow-actions/workflow_outbound_messages/fields/user_to_send_as.field.yml +2 -1
- package/main/default/objects/workflow-actions/workflow_rule.object.yml +16 -0
- package/main/default/triggers/workflow_outbound_messages.trigger.js +236 -0
- package/package.json +2 -2
|
@@ -71,6 +71,22 @@ fields:
|
|
|
71
71
|
return "object_name eq '" + dependValues.object_name + "'";
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
|
+
workflow_outbound_messages_actions:
|
|
75
|
+
type: lookup
|
|
76
|
+
group: Immediate Actions
|
|
77
|
+
multiple: true
|
|
78
|
+
label: 出站消息
|
|
79
|
+
is_wide: true
|
|
80
|
+
reference_to: workflow_outbound_messages
|
|
81
|
+
reference_to_field: name
|
|
82
|
+
depend_on:
|
|
83
|
+
- object_name
|
|
84
|
+
filtersFunction: !!js/function |
|
|
85
|
+
function (filters, dependValues) {
|
|
86
|
+
if(dependValues && dependValues.object_name){
|
|
87
|
+
return "object_name eq '" + dependValues.object_name + "'";
|
|
88
|
+
}
|
|
89
|
+
}
|
|
74
90
|
# boolean_filter: # TODO 暂不支持
|
|
75
91
|
# type: text
|
|
76
92
|
# criteria: # TODO 暂不支持
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
const _ = require("underscore");
|
|
2
|
+
const util = require('@steedos/standard-objects').util;
|
|
3
|
+
const objectql = require("@steedos/objectql");
|
|
4
|
+
const InternalData = require('@steedos/standard-objects').internalData;
|
|
5
|
+
|
|
6
|
+
const getInternalOutboundMessages = function(sourceOutboundMessages, filters){
|
|
7
|
+
let dbOutboundMessages = Creator.getCollection("workflow_outbound_messages").find(filters, {fields:{_id:1, name:1}}).fetch();
|
|
8
|
+
let messages = [];
|
|
9
|
+
|
|
10
|
+
if(!filters.is_system){
|
|
11
|
+
_.forEach(sourceOutboundMessages, function(doc){
|
|
12
|
+
if(!_.find(dbOutboundMessages, function(p){
|
|
13
|
+
return p.name === doc.name
|
|
14
|
+
})){
|
|
15
|
+
messages.push(doc);
|
|
16
|
+
}
|
|
17
|
+
})
|
|
18
|
+
}
|
|
19
|
+
return messages;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
module.exports = {
|
|
23
|
+
beforeInsert: async function () {
|
|
24
|
+
await util.checkAPIName(this.object_name, 'name', this.doc.name, undefined, [['is_system','!=', true]]);
|
|
25
|
+
},
|
|
26
|
+
beforeUpdate: async function () {
|
|
27
|
+
if (_.has(this.doc, 'name')) {
|
|
28
|
+
await util.checkAPIName(this.object_name, 'name', this.doc.name, this.id, [['is_system','!=', true]]);
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
afterFind: async function(){
|
|
32
|
+
let filters = InternalData.parserFilters(this.query.filters)
|
|
33
|
+
let messages = [];
|
|
34
|
+
if(filters.name && filters.name.$in){
|
|
35
|
+
for(let _name of filters.name.$in){
|
|
36
|
+
let message = objectql.getWorkflowOutboundMessage(_name);
|
|
37
|
+
if(message){
|
|
38
|
+
messages.push(message);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}else if(filters._id && !filters._id.$ne){
|
|
42
|
+
let message = objectql.getWorkflowOutboundMessage(filters._id);
|
|
43
|
+
if(message){
|
|
44
|
+
messages.push(message);
|
|
45
|
+
}
|
|
46
|
+
}else if(filters.object_name){
|
|
47
|
+
messages = objectql.getObjectOutboundMessages(filters.object_name);
|
|
48
|
+
delete filters.object_name;
|
|
49
|
+
}else{
|
|
50
|
+
messages = objectql.getAllWorkflowOutboundMessages();
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
if(filters._id && filters._id.$ne){
|
|
54
|
+
if(!_.isArray(filters._id.$ne)){
|
|
55
|
+
filters._id.$ne = [filters._id.$ne]
|
|
56
|
+
}
|
|
57
|
+
for(let neid of filters._id.$ne){
|
|
58
|
+
messages = _.filter(messages, function(item){
|
|
59
|
+
return item._id !== neid
|
|
60
|
+
})
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
messages = getInternalOutboundMessages(messages, filters);
|
|
65
|
+
|
|
66
|
+
if(messages && messages.length>0){
|
|
67
|
+
this.data.values = this.data.values.concat(messages)
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
afterAggregate: async function(){
|
|
71
|
+
let filters = InternalData.parserFilters(this.query.filters)
|
|
72
|
+
let messages = [];
|
|
73
|
+
if(filters._id && filters._id.$in){
|
|
74
|
+
for(let id of filters._id.$in){
|
|
75
|
+
let message = objectql.getWorkflowOutboundMessage(id);
|
|
76
|
+
if(message){
|
|
77
|
+
messages.push(message);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}else if(filters._id && !filters._id.$ne){
|
|
81
|
+
let message = objectql.getWorkflowOutboundMessage(filters._id);
|
|
82
|
+
if(message){
|
|
83
|
+
messages.push(message);
|
|
84
|
+
}
|
|
85
|
+
}else if(filters.object_name){
|
|
86
|
+
messages = objectql.getObjectOutboundMessages(filters.object_name);
|
|
87
|
+
delete filters.object_name;
|
|
88
|
+
}else{
|
|
89
|
+
messages = objectql.getAllWorkflowOutboundMessages();
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
if(filters._id && filters._id.$ne){
|
|
93
|
+
if(!_.isArray(filters._id.$ne)){
|
|
94
|
+
filters._id.$ne = [filters._id.$ne]
|
|
95
|
+
}
|
|
96
|
+
for(let neid of filters._id.$ne){
|
|
97
|
+
messages = _.filter(messages, function(item){
|
|
98
|
+
return item._id !== neid
|
|
99
|
+
})
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
afterFind: async function(){
|
|
104
|
+
let filters = InternalData.parserFilters(this.query.filters)
|
|
105
|
+
let messages = [];
|
|
106
|
+
if(filters.name && filters.name.$in){
|
|
107
|
+
for(let _name of filters.name.$in){
|
|
108
|
+
let message = objectql.getWorkflowOutboundMessage(_name);
|
|
109
|
+
if(message){
|
|
110
|
+
messages.push(message);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}else if(filters._id && !filters._id.$ne){
|
|
114
|
+
let message = objectql.getWorkflowOutboundMessage(filters._id);
|
|
115
|
+
if(message){
|
|
116
|
+
messages.push(message);
|
|
117
|
+
}
|
|
118
|
+
}else if(filters.object_name){
|
|
119
|
+
messages = objectql.getObjectWorkflowOutboundMessages(filters.object_name);
|
|
120
|
+
delete filters.object_name;
|
|
121
|
+
}else{
|
|
122
|
+
messages = objectql.getAllWorkflowOutboundMessages();
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
if(filters._id && filters._id.$ne){
|
|
126
|
+
if(!_.isArray(filters._id.$ne)){
|
|
127
|
+
filters._id.$ne = [filters._id.$ne]
|
|
128
|
+
}
|
|
129
|
+
for(let neid of filters._id.$ne){
|
|
130
|
+
messages = _.filter(messages, function(item){
|
|
131
|
+
return item._id !== neid
|
|
132
|
+
})
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
messages = getInternalOutboundMessages(messages, filters);
|
|
137
|
+
|
|
138
|
+
if(messages && messages.length>0){
|
|
139
|
+
this.data.values = this.data.values.concat(messages)
|
|
140
|
+
}
|
|
141
|
+
},
|
|
142
|
+
afterAggregate: async function(){
|
|
143
|
+
let filters = InternalData.parserFilters(this.query.filters)
|
|
144
|
+
let messages = [];
|
|
145
|
+
if(filters._id && filters._id.$in){
|
|
146
|
+
for(let id of filters._id.$in){
|
|
147
|
+
let message = objectql.getWorkflowOutboundMessage(id);
|
|
148
|
+
if(message){
|
|
149
|
+
messages.push(message);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}else if(filters._id && !filters._id.$ne){
|
|
153
|
+
let message = objectql.getWorkflowOutboundMessage(filters._id);
|
|
154
|
+
if(message){
|
|
155
|
+
messages.push(message);
|
|
156
|
+
}
|
|
157
|
+
}else if(filters.object_name){
|
|
158
|
+
messages = objectql.getObjectOutboundMessages(filters.object_name);
|
|
159
|
+
delete filters.object_name;
|
|
160
|
+
}else{
|
|
161
|
+
messages = objectql.getAllWorkflowOutboundMessages();
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
if(filters._id && filters._id.$ne){
|
|
165
|
+
if(!_.isArray(filters._id.$ne)){
|
|
166
|
+
filters._id.$ne = [filters._id.$ne]
|
|
167
|
+
}
|
|
168
|
+
for(let neid of filters._id.$ne){
|
|
169
|
+
messages = _.filter(messages, function(item){
|
|
170
|
+
return item._id !== neid
|
|
171
|
+
})
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
messages = getInternalOutboundMessages(messages, filters);
|
|
176
|
+
|
|
177
|
+
if(messages && messages.length>0){
|
|
178
|
+
this.data.values = this.data.values.concat(messages)
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
afterCount: async function(){
|
|
182
|
+
let filters = InternalData.parserFilters(this.query.filters)
|
|
183
|
+
let messages = [];
|
|
184
|
+
if(filters._id && filters._id.$in){
|
|
185
|
+
for(let id of filters._id.$in){
|
|
186
|
+
let message = objectql.getWorkflowOutboundMessage(id);
|
|
187
|
+
if(message){
|
|
188
|
+
messages.push(message);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}else if(filters._id && !filters._id.$ne){
|
|
192
|
+
let message = objectql.getWorkflowOutboundMessage(filters._id);
|
|
193
|
+
if(message){
|
|
194
|
+
messages.push(message);
|
|
195
|
+
}
|
|
196
|
+
}else if(filters.object_name){
|
|
197
|
+
messages = objectql.getObjectWorkflowOutboundMessages(filters.object_name);
|
|
198
|
+
delete filters.object_name;
|
|
199
|
+
}else{
|
|
200
|
+
messages = objectql.getAllWorkflowOutboundMessages();
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
if(filters._id && filters._id.$ne){
|
|
204
|
+
if(!_.isArray(filters._id.$ne)){
|
|
205
|
+
filters._id.$ne = [filters._id.$ne]
|
|
206
|
+
}
|
|
207
|
+
for(let neid of filters._id.$ne){
|
|
208
|
+
messages = _.filter(messages, function(item){
|
|
209
|
+
return item._id !== neid
|
|
210
|
+
})
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
messages = getInternalOutboundMessages(messages, filters);
|
|
215
|
+
|
|
216
|
+
if(messages && messages.length>0){
|
|
217
|
+
this.data.values = this.data.values + messages.length
|
|
218
|
+
}
|
|
219
|
+
},
|
|
220
|
+
afterFindOne: async function(){
|
|
221
|
+
if(_.isEmpty(this.data.values)){
|
|
222
|
+
let id = this.id
|
|
223
|
+
|
|
224
|
+
let dbNotification = Creator.getCollection("workflow_outbound_messages").find({name: id}).fetch();
|
|
225
|
+
if(dbNotification && dbNotification.length > 0){
|
|
226
|
+
this.data.values = dbNotification[0];
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
let message = objectql.getWorkflowOutboundMessage(id);
|
|
231
|
+
if(message){
|
|
232
|
+
this.data.values = message;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
},
|
|
236
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@steedos/standard-process-approval",
|
|
3
|
-
"version": "2.3.2-beta.
|
|
3
|
+
"version": "2.3.2-beta.8",
|
|
4
4
|
"main": "package.service.js",
|
|
5
5
|
"private": false,
|
|
6
6
|
"publishConfig": {
|
|
@@ -12,5 +12,5 @@
|
|
|
12
12
|
"description": "steedos package",
|
|
13
13
|
"repository": {},
|
|
14
14
|
"license": "MIT",
|
|
15
|
-
"gitHead": "
|
|
15
|
+
"gitHead": "3842d837373ece532af6b8399db8998be29018a0"
|
|
16
16
|
}
|