@steedos-labs/plugin-workflow 3.0.8 → 3.0.10
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 +4 -0
- package/main/default/client/socket.client.js +3 -2
- package/main/default/objects/flow_positions.object.yml +14 -0
- package/main/default/objects/flow_roles.object.yml +14 -0
- package/main/default/objects/flows/flows.object.yml +15 -1
- package/main/default/objects/forms/forms.object.yml +10 -1
- package/main/default/objects/instance_number_rules.object.yml +9 -5
- package/main/default/objects/instances/buttons/instance_new.button.yml +5 -1
- package/main/default/objects/instances/instances.object.yml +17 -0
- package/main/default/objects/process_delegation_rules.object.yml +18 -0
- package/main/default/objects/space_user_signs.object.yml +9 -5
- package/main/default/pages/instances_list.page.amis.json +1 -1
- package/main/default/routes/am.router.js +6 -2
- package/main/default/tabs/admin_categories.tab.yml +2 -2
- package/main/default/tabs/admin_flow_roles.tab.yml +2 -2
- package/main/default/tabs/admin_flows.tab.yml +2 -2
- package/main/default/tabs/admin_instance_number_rules.tab.yml +2 -2
- package/main/default/tabs/admin_process_delegation_rules.tab.yml +2 -2
- package/main/default/tabs/admin_space_user_signs.tab.yml +2 -2
- package/main/default/triggers/amis_form_design.trigger.js +15 -1
- package/package.json +1 -1
- package/public/applications/designer/5410/en-us/javascript-packed.js +1 -1
- package/public/applications/designer/5410/zh-cn/javascript-packed.js +1 -1
- package/public/workflow/index.css +1 -1
|
@@ -16,6 +16,7 @@ window.SteedosWorkflow.InstanceTask = {
|
|
|
16
16
|
fields.forEach(function (field) {
|
|
17
17
|
if (field.is_list_display) {
|
|
18
18
|
crudDataFilter = crudDataFilter + `
|
|
19
|
+
if (data.display !== 'split'){
|
|
19
20
|
crud.columns.push({
|
|
20
21
|
"name": "instance__expand.values.${field.code}",
|
|
21
22
|
"label": "${field.name || field.code}",
|
|
@@ -25,6 +26,7 @@ window.SteedosWorkflow.InstanceTask = {
|
|
|
25
26
|
"static": true,
|
|
26
27
|
"options": null
|
|
27
28
|
});\r\n
|
|
29
|
+
}\r\n
|
|
28
30
|
`;
|
|
29
31
|
}
|
|
30
32
|
})
|
|
@@ -85,6 +87,7 @@ window.SteedosWorkflow.Instance = {
|
|
|
85
87
|
fields.forEach(function (field) {
|
|
86
88
|
if (field.is_list_display) {
|
|
87
89
|
crudDataFilter = crudDataFilter + `
|
|
90
|
+
if (data.display !== 'split'){
|
|
88
91
|
crud.columns.push({
|
|
89
92
|
"name": "instance__expand.values.${field.code}",
|
|
90
93
|
"label": "${field.name || field.code}",
|
|
@@ -94,6 +97,7 @@ window.SteedosWorkflow.Instance = {
|
|
|
94
97
|
"static": true,
|
|
95
98
|
"options": null
|
|
96
99
|
});\r\n
|
|
100
|
+
}\r\n
|
|
97
101
|
`;
|
|
98
102
|
}
|
|
99
103
|
})
|
|
@@ -36,17 +36,18 @@ window.waitForThing(window, 'socket').then(()=>{
|
|
|
36
36
|
});
|
|
37
37
|
})
|
|
38
38
|
}
|
|
39
|
-
|
|
39
|
+
let isFirstRun = true;
|
|
40
40
|
socket.on(SocketEvents.badgeChange, (data)=>{
|
|
41
41
|
window.postMessage({ type: "page.dataProvider.setData", data: { badges: data }}, "*")
|
|
42
42
|
const shouldReloadView = () => {
|
|
43
43
|
const pathname = window.location.pathname;
|
|
44
44
|
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`);
|
|
45
45
|
};
|
|
46
|
-
if (shouldReloadView()) {
|
|
46
|
+
if (isFirstRun === false && shouldReloadView()) {
|
|
47
47
|
window.$(".list-view-btn-reload").click()
|
|
48
48
|
window.$(".instance-nav-reload").click()
|
|
49
49
|
}
|
|
50
|
+
isFirstRun = false;
|
|
50
51
|
});
|
|
51
52
|
|
|
52
53
|
socket.on(SocketEvents.instanceRecordChange, (data)=>{
|
|
@@ -77,3 +77,17 @@ permission_set:
|
|
|
77
77
|
unreadable_fields: []
|
|
78
78
|
uneditable_fields: []
|
|
79
79
|
unrelated_objects: []
|
|
80
|
+
organization_admin:
|
|
81
|
+
allowCreate: true
|
|
82
|
+
allowDelete: true
|
|
83
|
+
allowEdit: true
|
|
84
|
+
allowRead: true
|
|
85
|
+
modifyAllRecords: false
|
|
86
|
+
viewAllRecords: false
|
|
87
|
+
modifyCompanyRecords: true
|
|
88
|
+
viewCompanyRecords: true
|
|
89
|
+
disabled_list_views: []
|
|
90
|
+
disabled_actions: []
|
|
91
|
+
unreadable_fields: []
|
|
92
|
+
uneditable_fields: []
|
|
93
|
+
unrelated_objects: []
|
|
@@ -48,6 +48,20 @@ permission_set:
|
|
|
48
48
|
modifyAllRecords: true
|
|
49
49
|
viewAllRecords: true
|
|
50
50
|
workflow_admin:
|
|
51
|
+
allowCreate: true
|
|
52
|
+
allowDelete: true
|
|
53
|
+
allowEdit: true
|
|
54
|
+
allowRead: true
|
|
55
|
+
modifyAllRecords: false
|
|
56
|
+
viewAllRecords: false
|
|
57
|
+
modifyCompanyRecords: true
|
|
58
|
+
viewCompanyRecords: true
|
|
59
|
+
disabled_list_views: []
|
|
60
|
+
disabled_actions: []
|
|
61
|
+
unreadable_fields: []
|
|
62
|
+
uneditable_fields: []
|
|
63
|
+
unrelated_objects: []
|
|
64
|
+
organization_admin:
|
|
51
65
|
allowCreate: true
|
|
52
66
|
allowDelete: true
|
|
53
67
|
allowEdit: true
|
|
@@ -919,7 +919,21 @@ permission_set:
|
|
|
919
919
|
viewAllRecords: true
|
|
920
920
|
workflow_admin:
|
|
921
921
|
allowCreate: true
|
|
922
|
-
allowDelete:
|
|
922
|
+
allowDelete: true
|
|
923
|
+
allowEdit: true
|
|
924
|
+
allowRead: true
|
|
925
|
+
modifyAllRecords: false
|
|
926
|
+
viewAllRecords: false
|
|
927
|
+
modifyCompanyRecords: true
|
|
928
|
+
viewCompanyRecords: true
|
|
929
|
+
disabled_list_views: []
|
|
930
|
+
disabled_actions: []
|
|
931
|
+
unreadable_fields: []
|
|
932
|
+
uneditable_fields: []
|
|
933
|
+
unrelated_objects: []
|
|
934
|
+
organization_admin:
|
|
935
|
+
allowCreate: true
|
|
936
|
+
allowDelete: true
|
|
923
937
|
allowEdit: true
|
|
924
938
|
allowRead: true
|
|
925
939
|
modifyAllRecords: false
|
|
@@ -336,7 +336,7 @@ permission_set:
|
|
|
336
336
|
modifyAllRecords: true
|
|
337
337
|
viewAllRecords: true
|
|
338
338
|
workflow_admin:
|
|
339
|
-
allowCreate:
|
|
339
|
+
allowCreate: true
|
|
340
340
|
allowDelete: false
|
|
341
341
|
allowEdit: true
|
|
342
342
|
allowRead: true
|
|
@@ -349,3 +349,12 @@ permission_set:
|
|
|
349
349
|
unreadable_fields: []
|
|
350
350
|
uneditable_fields: []
|
|
351
351
|
unrelated_objects: []
|
|
352
|
+
organization_admin:
|
|
353
|
+
allowCreate: true
|
|
354
|
+
allowDelete: false
|
|
355
|
+
allowEdit: true
|
|
356
|
+
allowRead: true
|
|
357
|
+
modifyAllRecords: false
|
|
358
|
+
viewAllRecords: false
|
|
359
|
+
modifyCompanyRecords: true
|
|
360
|
+
viewCompanyRecords: true
|
|
@@ -78,8 +78,12 @@ permission_set:
|
|
|
78
78
|
viewAllRecords: false
|
|
79
79
|
modifyCompanyRecords: true
|
|
80
80
|
viewCompanyRecords: true
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
81
|
+
organization_admin:
|
|
82
|
+
allowCreate: true
|
|
83
|
+
allowDelete: true
|
|
84
|
+
allowEdit: true
|
|
85
|
+
allowRead: true
|
|
86
|
+
modifyAllRecords: false
|
|
87
|
+
viewAllRecords: false
|
|
88
|
+
modifyCompanyRecords: true
|
|
89
|
+
viewCompanyRecords: true
|
|
@@ -278,6 +278,23 @@ permission_set:
|
|
|
278
278
|
unreadable_fields: []
|
|
279
279
|
uneditable_fields: []
|
|
280
280
|
unrelated_objects: []
|
|
281
|
+
organization_admin:
|
|
282
|
+
allowCreate: false
|
|
283
|
+
allowDelete: false
|
|
284
|
+
allowEdit: false
|
|
285
|
+
allowRead: true
|
|
286
|
+
modifyAllRecords: false
|
|
287
|
+
viewAllRecords: false
|
|
288
|
+
modifyCompanyRecords: false
|
|
289
|
+
viewCompanyRecords: true
|
|
290
|
+
allowCreateListViews: false
|
|
291
|
+
disabled_list_views:
|
|
292
|
+
- inbox
|
|
293
|
+
- outbox
|
|
294
|
+
disabled_actions: []
|
|
295
|
+
unreadable_fields: []
|
|
296
|
+
uneditable_fields: []
|
|
297
|
+
unrelated_objects: []
|
|
281
298
|
actions:
|
|
282
299
|
view_instance:
|
|
283
300
|
label: View Instance
|
|
@@ -70,3 +70,21 @@ permission_set:
|
|
|
70
70
|
allowRead: true
|
|
71
71
|
modifyAllRecords: false
|
|
72
72
|
viewAllRecords: false
|
|
73
|
+
workflow_admin:
|
|
74
|
+
allowCreate: true
|
|
75
|
+
allowDelete: true
|
|
76
|
+
allowEdit: true
|
|
77
|
+
allowRead: true
|
|
78
|
+
modifyAllRecords: false
|
|
79
|
+
viewAllRecords: false
|
|
80
|
+
modifyCompanyRecords: true
|
|
81
|
+
viewCompanyRecords: true
|
|
82
|
+
organization_admin:
|
|
83
|
+
allowCreate: true
|
|
84
|
+
allowDelete: true
|
|
85
|
+
allowEdit: true
|
|
86
|
+
allowRead: true
|
|
87
|
+
modifyAllRecords: false
|
|
88
|
+
viewAllRecords: false
|
|
89
|
+
modifyCompanyRecords: true
|
|
90
|
+
viewCompanyRecords: true
|
|
@@ -54,8 +54,12 @@ permission_set:
|
|
|
54
54
|
viewAllRecords: false
|
|
55
55
|
modifyCompanyRecords: true
|
|
56
56
|
viewCompanyRecords: true
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
57
|
+
organization_admin:
|
|
58
|
+
allowCreate: true
|
|
59
|
+
allowDelete: true
|
|
60
|
+
allowEdit: true
|
|
61
|
+
allowRead: true
|
|
62
|
+
modifyAllRecords: false
|
|
63
|
+
viewAllRecords: false
|
|
64
|
+
modifyCompanyRecords: true
|
|
65
|
+
viewCompanyRecords: true
|
|
@@ -202,7 +202,7 @@
|
|
|
202
202
|
"listName": "completed",
|
|
203
203
|
"rebuildOn": "${flowId || categoryId}",
|
|
204
204
|
"adaptor": "//在列表上加流程表单字段时,group和user需要特殊处理\nif (api.body.self.listName == \"monitor\") {\n _.each(payload.data.rows, function (item, index) {\n if (item.values) {\n const form_fields = api.body.self.form_fields;\n _.each(item.values, function (field, field_code) {\n const form_field = _.find(form_fields, { code: field_code });\n if (form_field && form_field.type == \"group\") {\n if (form_field.is_multiselect) {\n item.values[field_code] = field && field.length > 0 ? _.map(field, 'fullname').toString() : \"\";\n } else {\n item.values[field_code] = field ? field.fullname : \"\";\n }\n } else if (form_field && form_field.type == \"user\") {\n if (form_field.is_multiselect) {\n item.values[field_code] = field && field.length > 0 ? _.map(field, 'name').toString() : \"\";\n } else {\n item.values[field_code] = field ? field.name : \"\";\n }\n }\n })\n }\n })\n}\n",
|
|
205
|
-
"crudDataFilter": "if (data && data.flowId && (data.listName == 'inbox' || 'monitor') && window.innerWidth > 768) {\r\n var api = {\r\n url: \"${context.rootUrl}/graphql\",\r\n method: \"post\",\r\n dataType: \"json\",\r\n data: {\r\n \"query\": '{flow: flows__findOne(id:\"' + data.flowId + '\"){form__expand{current}}}'\r\n },\r\n headers: {\r\n Authorization:\r\n \"Bearer ${context.tenantId},${context.authToken}\",\r\n },\r\n };\r\n return env.fetcher(api).then((result) => {\r\n if (result.data && result.data.flow && result.data.flow.form__expand.current.fields && result.data.flow.form__expand.current.fields.length > 0) {\r\n let fields = result.data.flow.form__expand.current.fields;\r\n fields.forEach(function (field) {\r\n if (field.is_list_display) {\r\n crud.columns.push({\r\n \"name\": \"values.\" + field.code,\r\n \"label\": field.name || field.code,\r\n \"width\": \"unset\",\r\n \"type\": \"text\",\r\n \"className\": \" whitespace-nowrap\",\r\n \"static\": true,\r\n \"options\": null\r\n });\r\n }\r\n })\r\n let schemaApiService = data._scoped.parent.getComponentById(\"instances_list_service\");\r\n schemaApiService && schemaApiService.setData({ form_fields: fields, isFlowDataDone: true });\r\n // crud.api.sendOn = \"this.isFlowDataDone\";\r\n }\r\n return crud;\r\n });\r\n} else {\r\n let schemaApiService = data._scoped.parent.getComponentById(\"instances_list_service\");\r\n schemaApiService && schemaApiService.setData({ isFlowDataDone: true });\r\n // crud.api.sendOn = \"this.isFlowDataDone\";\r\n return crud;\r\n}\r\n"
|
|
205
|
+
"crudDataFilter": "if (data && data.flowId && (data.listName == 'inbox' || 'monitor') && window.innerWidth > 768) {\r\n var api = {\r\n url: \"${context.rootUrl}/graphql\",\r\n method: \"post\",\r\n dataType: \"json\",\r\n data: {\r\n \"query\": '{flow: flows__findOne(id:\"' + data.flowId + '\"){form__expand{current}}}'\r\n },\r\n headers: {\r\n Authorization:\r\n \"Bearer ${context.tenantId},${context.authToken}\",\r\n },\r\n };\r\n return env.fetcher(api).then((result) => {\r\n if (result.data && result.data.flow && result.data.flow.form__expand.current.fields && result.data.flow.form__expand.current.fields.length > 0) {\r\n let fields = result.data.flow.form__expand.current.fields;\r\n fields.forEach(function (field) {\r\n if (field.is_list_display && data.display !== 'split') {\r\n crud.columns.push({\r\n \"name\": \"values.\" + field.code,\r\n \"label\": field.name || field.code,\r\n \"width\": \"unset\",\r\n \"type\": \"text\",\r\n \"className\": \" whitespace-nowrap\",\r\n \"static\": true,\r\n \"options\": null\r\n });\r\n }\r\n })\r\n let schemaApiService = data._scoped.parent.getComponentById(\"instances_list_service\");\r\n schemaApiService && schemaApiService.setData({ form_fields: fields, isFlowDataDone: true });\r\n // crud.api.sendOn = \"this.isFlowDataDone\";\r\n }\r\n return crud;\r\n });\r\n} else {\r\n let schemaApiService = data._scoped.parent.getComponentById(\"instances_list_service\");\r\n schemaApiService && schemaApiService.setData({ isFlowDataDone: true });\r\n // crud.api.sendOn = \"this.isFlowDataDone\";\r\n return crud;\r\n}\r\n"
|
|
206
206
|
},
|
|
207
207
|
{
|
|
208
208
|
"type": "service",
|
|
@@ -537,8 +537,12 @@ router.put('/am/flows', async function (req, res) {
|
|
|
537
537
|
}
|
|
538
538
|
});
|
|
539
539
|
updateObj.$set.category = form['category'];
|
|
540
|
-
|
|
541
|
-
|
|
540
|
+
const updateData = { ...updateObj.$set };
|
|
541
|
+
if (updateObj.$push) {
|
|
542
|
+
updateData.$push = updateObj.$push;
|
|
543
|
+
}
|
|
544
|
+
await objectql.getObject('flows').update(flowId, updateData);
|
|
545
|
+
console.log('update', flowId, 'end');
|
|
542
546
|
updatedFlows.push(await flowCollection.findOne({_id: flowId}));
|
|
543
547
|
}
|
|
544
548
|
|
|
@@ -13,9 +13,9 @@ permissions:
|
|
|
13
13
|
permission_set: customer
|
|
14
14
|
- permission: 'off'
|
|
15
15
|
permission_set: supplier
|
|
16
|
-
- permission: '
|
|
16
|
+
- permission: 'on'
|
|
17
17
|
permission_set: organization_admin
|
|
18
|
-
- permission: '
|
|
18
|
+
- permission: 'on'
|
|
19
19
|
permission_set: workflow_admin
|
|
20
20
|
type: object
|
|
21
21
|
object: categories
|
|
@@ -13,9 +13,9 @@ permissions:
|
|
|
13
13
|
permission_set: customer
|
|
14
14
|
- permission: 'off'
|
|
15
15
|
permission_set: supplier
|
|
16
|
-
- permission: '
|
|
16
|
+
- permission: 'on'
|
|
17
17
|
permission_set: organization_admin
|
|
18
|
-
- permission: '
|
|
18
|
+
- permission: 'on'
|
|
19
19
|
permission_set: workflow_admin
|
|
20
20
|
type: object
|
|
21
21
|
object: flow_roles
|
|
@@ -13,9 +13,9 @@ permissions:
|
|
|
13
13
|
permission_set: customer
|
|
14
14
|
- permission: 'off'
|
|
15
15
|
permission_set: supplier
|
|
16
|
-
- permission: '
|
|
16
|
+
- permission: 'on'
|
|
17
17
|
permission_set: organization_admin
|
|
18
|
-
- permission: '
|
|
18
|
+
- permission: 'on'
|
|
19
19
|
permission_set: workflow_admin
|
|
20
20
|
type: object
|
|
21
21
|
object: flows
|
|
@@ -13,9 +13,9 @@ permissions:
|
|
|
13
13
|
permission_set: customer
|
|
14
14
|
- permission: 'off'
|
|
15
15
|
permission_set: supplier
|
|
16
|
-
- permission: '
|
|
16
|
+
- permission: 'on'
|
|
17
17
|
permission_set: organization_admin
|
|
18
|
-
- permission: '
|
|
18
|
+
- permission: 'on'
|
|
19
19
|
permission_set: workflow_admin
|
|
20
20
|
type: object
|
|
21
21
|
object: instance_number_rules
|
|
@@ -13,9 +13,9 @@ permissions:
|
|
|
13
13
|
permission_set: customer
|
|
14
14
|
- permission: 'off'
|
|
15
15
|
permission_set: supplier
|
|
16
|
-
- permission: '
|
|
16
|
+
- permission: 'on'
|
|
17
17
|
permission_set: organization_admin
|
|
18
|
-
- permission: '
|
|
18
|
+
- permission: 'on'
|
|
19
19
|
permission_set: workflow_admin
|
|
20
20
|
type: object
|
|
21
21
|
object: process_delegation_rules
|
|
@@ -13,9 +13,9 @@ permissions:
|
|
|
13
13
|
permission_set: customer
|
|
14
14
|
- permission: 'off'
|
|
15
15
|
permission_set: supplier
|
|
16
|
-
- permission: '
|
|
16
|
+
- permission: 'on'
|
|
17
17
|
permission_set: organization_admin
|
|
18
|
-
- permission: '
|
|
18
|
+
- permission: 'on'
|
|
19
19
|
permission_set: workflow_admin
|
|
20
20
|
type: object
|
|
21
21
|
object: space_user_signs
|
|
@@ -199,7 +199,8 @@ function transformFormFields(amisField) {
|
|
|
199
199
|
is_searchable: _.includes(amisField.className, "is_searchable"),
|
|
200
200
|
visibleOn: amisField.visibleOn,
|
|
201
201
|
requiredOn: amisField.requiredOn,
|
|
202
|
-
description: amisField.description
|
|
202
|
+
description: amisField.description,
|
|
203
|
+
_amisField: amisField
|
|
203
204
|
}
|
|
204
205
|
|
|
205
206
|
// console.log('formFieldsItem', formFieldsItem)
|
|
@@ -563,6 +564,19 @@ module.exports = {
|
|
|
563
564
|
await desingerManager.checkSpaceUserBeforeUpdate(spaceId, userId, roles);
|
|
564
565
|
// 更新表单
|
|
565
566
|
await desingerManager.updateForm(this.id, form, updatedForms, updatedFlows, userId);
|
|
567
|
+
|
|
568
|
+
const flows = await objectql.getObject('flows').directFind({
|
|
569
|
+
filters: ['form', '=', this.id],
|
|
570
|
+
fields: ['_id']
|
|
571
|
+
});
|
|
572
|
+
|
|
573
|
+
for (const flow of flows) {
|
|
574
|
+
await objectql.getObject('flows').directUpdate(flow._id, {
|
|
575
|
+
modified: new Date(),
|
|
576
|
+
modified_by: userId
|
|
577
|
+
})
|
|
578
|
+
}
|
|
579
|
+
|
|
566
580
|
}
|
|
567
581
|
|
|
568
582
|
},
|