@steedos/standard-object-database 2.6.8-beta.7 → 2.7.0-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/objectTranslations/object_fields.zh-CN/object_fields.zh-CN.objectTranslation.yml +1 -1
- package/main/default/objects/object_fields/buttons/standard_new.button.js +3 -0
- package/main/default/objects/object_fields.object.yml +39 -8
- package/main/default/objects/objects.object.js +2 -0
- package/main/default/pages/design_field_layout.page.amis.json +2 -2
- package/main/default/pages/object_fields_form.page.amis.json +19 -0
- package/main/default/pages/permission_objects_form.page.amis.json +308 -0
- package/main/default/pages/permission_objects_form.page.yml +12 -0
- package/main/default/routes/amis_button_design.ejs +2 -1
- package/main/default/routes/amis_button_design.router.js +1 -0
- package/package.json +4 -4
- package/package.service.js +8 -4
|
@@ -203,7 +203,7 @@ fields:
|
|
|
203
203
|
blackbox: true
|
|
204
204
|
label: Default Value
|
|
205
205
|
sort_no: 160
|
|
206
|
-
visible_on: "{{['autonumber','formula','summary','image','file'].indexOf(formData.type)
|
|
206
|
+
visible_on: "{{formData.type && ['autonumber','formula','summary','image','file'].indexOf(formData.type) < 0}}"
|
|
207
207
|
amis:
|
|
208
208
|
type: service
|
|
209
209
|
className:
|
|
@@ -219,7 +219,7 @@ fields:
|
|
|
219
219
|
data:
|
|
220
220
|
object: ${object}
|
|
221
221
|
name: ${name}
|
|
222
|
-
options: ${options}
|
|
222
|
+
options: ${options|filter:label:isTrue|filter:value:isTrue}
|
|
223
223
|
type: ${type}
|
|
224
224
|
reference_to: ${reference_to}
|
|
225
225
|
multiple: ${multiple}
|
|
@@ -228,7 +228,7 @@ fields:
|
|
|
228
228
|
mode: ${global.mode}
|
|
229
229
|
scale: ${scale}
|
|
230
230
|
_id: ${_id}
|
|
231
|
-
trackExpression: "${object},${options},${type},${reference_to},${reference_to_field},${multiple},${filtersFunction},${_id},${scale}"
|
|
231
|
+
trackExpression: "${object},${options|filter:label:isTrue|filter:value:isTrue|pick:label,value|json},${type},${reference_to},${reference_to_field},${multiple},${filtersFunction},${_id},${scale}"
|
|
232
232
|
headers:
|
|
233
233
|
Authorization: "Bearer ${context.tenantId},${context.authToken}"
|
|
234
234
|
# sendOn: "!!this.type"
|
|
@@ -289,7 +289,7 @@ fields:
|
|
|
289
289
|
disabledOn: "${is_system == true}"
|
|
290
290
|
create:
|
|
291
291
|
type: boolean
|
|
292
|
-
label:
|
|
292
|
+
label: 弹出选择时允许新建
|
|
293
293
|
defaultValue: true
|
|
294
294
|
visible_on: "{{['lookup'].indexOf(formData.type) > -1 ? true: false}}"
|
|
295
295
|
sort_no: 185
|
|
@@ -556,11 +556,42 @@ fields:
|
|
|
556
556
|
- object
|
|
557
557
|
filtersFunction: !<tag:yaml.org,2002:js/function> |-
|
|
558
558
|
function (filters, values) {
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
559
|
+
//按照from字段类型给予不同的过滤限制,具体规则参考https://github.com/steedos/steedos-platform/issues/6496
|
|
560
|
+
var fieldFilters = {
|
|
561
|
+
"text": ["text", "textarea"],
|
|
562
|
+
"textarea": ["text", "textarea"],
|
|
563
|
+
"boolean": ["boolean", "toggle"],
|
|
564
|
+
"toggle": ["boolean", "toggle"],
|
|
565
|
+
"number": ["number", "currency"],
|
|
566
|
+
"currency": ["number", "currency"],
|
|
567
|
+
"lookup": ["lookup", "master_detail"],
|
|
568
|
+
"master_detail": ["lookup", "master_detail"],
|
|
569
|
+
"autonumber": ["autonumber", "text", "textarea"],
|
|
570
|
+
"email": ["email", "text", "textarea"]
|
|
571
|
+
};
|
|
572
|
+
var currentFilter = [];
|
|
573
|
+
var referenceObject = BuilderAmisObject && BuilderAmisObject.AmisLib && BuilderAmisObject.AmisLib.getUISchemaSync(values.reference_to);
|
|
574
|
+
var fromField = referenceObject && referenceObject.fields[values.auto_fill_mapping__from];
|
|
575
|
+
|
|
576
|
+
if (fromField && fromField.data_type) {
|
|
577
|
+
currentFilter.push(['type', 'in', fieldFilters[fromField.data_type] || fromField.data_type.split()]);
|
|
578
|
+
}else if (fromField) {
|
|
579
|
+
currentFilter.push(['type', 'in', fieldFilters[fromField.type] || fromField.type.split()]);
|
|
580
|
+
if (fromField.type == "lookup" || fromField.type == "master_detail") {
|
|
581
|
+
if (fromField.reference_to) {
|
|
582
|
+
currentFilter.push(['reference_to', '=', fromField.reference_to]);
|
|
583
|
+
}
|
|
584
|
+
if (fromField.reference_to_field) {
|
|
585
|
+
currentFilter.push(['reference_to_field', '=', fromField.reference_to_field]);
|
|
586
|
+
}
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
if (values && values.object) {
|
|
590
|
+
currentFilter.push(['object', '=', values.object]);
|
|
591
|
+
} else {
|
|
592
|
+
currentFilter.push(['_id', '=', 'no']);
|
|
563
593
|
}
|
|
594
|
+
return currentFilter;
|
|
564
595
|
}
|
|
565
596
|
formula_blank_value:
|
|
566
597
|
type: select
|
|
@@ -339,6 +339,7 @@ let objectTriggers = {
|
|
|
339
339
|
object_name: doc.name,
|
|
340
340
|
shared_to: "space",
|
|
341
341
|
filter_scope: "space",
|
|
342
|
+
crud_mode: 'table',
|
|
342
343
|
columns: [{field: 'name'}],
|
|
343
344
|
"sort" : [
|
|
344
345
|
{
|
|
@@ -355,6 +356,7 @@ let objectTriggers = {
|
|
|
355
356
|
object_name: doc.name,
|
|
356
357
|
shared_to: "space",
|
|
357
358
|
filter_scope: "space",
|
|
359
|
+
crud_mode: 'table',
|
|
358
360
|
columns: [{field: 'name'}]
|
|
359
361
|
});
|
|
360
362
|
|
|
@@ -312,7 +312,7 @@
|
|
|
312
312
|
"headers": {
|
|
313
313
|
"Authorization": "Bearer ${context.tenantId},${context.authToken}"
|
|
314
314
|
},
|
|
315
|
-
"requestAdaptor": "var graphqlOrder = \"\";\n//先修改字段,使系统对象自行自定义\n//根据design_field,修改对象字段的sort_no与groups\nvar index = 1;\n_.forEach(api.data.design_field, function (items, key) {\n let group = key;\n if (key == \"未分组\" || key == \"隐藏\") {\n group = null;\n }\n _.forEach(items, function (item) {\n const field = _.find(api.data.fields, { 'id': item });\n
|
|
315
|
+
"requestAdaptor": "var graphqlOrder = \"\";\n//先修改字段,使系统对象自行自定义\n//根据design_field,修改对象字段的sort_no与groups\nvar index = 1;\n_.forEach(api.data.design_field, function (items, key) {\n let group = key;\n if (key == \"未分组\" || key == \"隐藏\") {\n group = null;\n }\n _.forEach(items, function (item) {\n const field = _.find(api.data.fields, { 'id': item });\n //如果是在隐藏分组里的字段,就给visible_on属性赋予{{false}};如果不在隐藏分组里,就判断来自数据库内的visible_on属性是不是{{false}},是就清除,不是就保持不变\n const visible_on = key == \"隐藏\" ? \"{{false}}\" : (field.attr_visible_on == \"{{false}}\" ? \"{{true}}\" : field.attr_visible_on);\n let docJson = {\n sort_no: index * 10,\n group, visible_on\n }\n if (field.id == field._id && field.is_system) {\n docJson = {\n object: api.data.$self.designObjectName,\n type: field.type,\n _name: field._name,\n label: field.label,\n sort_no: index * 10,\n group,\n visible_on,\n is_system: field.is_system\n }\n }\n if (key != \"隐藏\") {\n docJson.hidden = false;\n }\n let itemOrder = 'upsert' + index + ':object_fields__upsert(id:\"' + item + '\" , doc:' + JSON.stringify(JSON.stringify(docJson)) + '){_id}\\n';\n graphqlOrder += itemOrder;\n index++;\n })\n})\n\n//根据groups,修改对象的字段分组field_groups\nvar field_groups = _.cloneDeep(api.data.groups);\n_.remove(field_groups, { is_default: true });\n_.remove(field_groups, { is_hidden: true });\nfield_groups = field_groups.map(function (group) {\n return _.omit(group, 'id');\n})\nconst keys = _.keys(api.data.design_field);\nfield_groups = _.sortBy(field_groups, function (group) { return _.findIndex(keys, function (key) { return key == group.group_name }) });\nconst groupOrder = 'upsert0:objects__upsert(id:\"' + api.data.$self.designObjectId + '\" , doc:' + JSON.stringify(JSON.stringify({ field_groups, name: api.data.$self.designObjectName })) + ') {_id}';\ngraphqlOrder += groupOrder;\n\n\ngraphqlOrder = 'mutation {' + graphqlOrder + '}';\nreturn {\n ...api,\n data: {\n query: graphqlOrder\n }\n}",
|
|
316
316
|
"adaptor": "if (payload.errors) {\n payload.status = 2;\n payload.msg = window.t ? window.t(payload.errors[\n 0\n ].message) : payload.errors[\n 0\n ].message;\n}\nreturn payload;",
|
|
317
317
|
"messages": {},
|
|
318
318
|
"data": {
|
|
@@ -391,7 +391,7 @@
|
|
|
391
391
|
},
|
|
392
392
|
"messages": {},
|
|
393
393
|
"requestAdaptor": "",
|
|
394
|
-
"adaptor": "const field_groups = payload.data.objects[0] && _.map(payload.data.objects[0].field_groups, function (obj) {\n return {\n \"id\": obj.group_name,\n \"group_name\": obj.group_name,\n \"visible_on\": obj.visible_on,\n \"
|
|
394
|
+
"adaptor": "const field_groups = payload.data.objects[0] && _.map(payload.data.objects[0].field_groups, function (obj) {\n return {\n \"id\": obj.group_name,\n \"group_name\": obj.group_name,\n \"visible_on\": obj.visible_on,\n \"collapsed\": obj.collapsed\n }\n});\nfield_groups.unshift({\n id: \"隐藏\",\n group_name: \"隐藏\",\n visible_on: \"\",\n is_hidden: true\n});\nfield_groups.unshift({\n id: \"未分组\",\n group_name: \"未分组\",\n visible_on: \"\",\n is_default: true\n});\n\n\n\nconst designObjectId = payload.data.objects[0] && payload.data.objects[0]._id;\nreturn payload = {\n data: {\n field_groups,\n designObjectId,\n designObjectLabel: payload.data.objects[0] && payload.data.objects[0].label,\n _master: {\n recordId: designObjectId\n }\n }\n}"
|
|
395
395
|
},
|
|
396
396
|
"messages": {},
|
|
397
397
|
"onEvent": {
|
|
@@ -125,6 +125,25 @@
|
|
|
125
125
|
},
|
|
126
126
|
"id": "u:adf4200a2170"
|
|
127
127
|
}
|
|
128
|
+
},
|
|
129
|
+
"type": {
|
|
130
|
+
"amis": {
|
|
131
|
+
"onEvent": {
|
|
132
|
+
"change": {
|
|
133
|
+
"actions": [
|
|
134
|
+
{
|
|
135
|
+
"actionType": "setValue",
|
|
136
|
+
"args": {
|
|
137
|
+
"value": {
|
|
138
|
+
"defaultValue": null
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
"componentId": "steedos_object_fields_form"
|
|
142
|
+
}
|
|
143
|
+
]
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
128
147
|
}
|
|
129
148
|
},
|
|
130
149
|
"form": {
|
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "service",
|
|
3
|
+
"body": [
|
|
4
|
+
{
|
|
5
|
+
"type": "steedos-object-form",
|
|
6
|
+
"label": "对象权限表单",
|
|
7
|
+
"objectApiName": "permission_objects",
|
|
8
|
+
"recordId": "${recordId}",
|
|
9
|
+
"className": "",
|
|
10
|
+
"mode": "edit",
|
|
11
|
+
"layout": "horizontal",
|
|
12
|
+
"form": {
|
|
13
|
+
"id": "steedos_permission_objects_form"
|
|
14
|
+
},
|
|
15
|
+
"id": "u:4744b581e12d",
|
|
16
|
+
"fieldsExtend": {
|
|
17
|
+
"allowRead": {
|
|
18
|
+
"amis": {
|
|
19
|
+
"onEvent": {
|
|
20
|
+
"change": {
|
|
21
|
+
"actions": [
|
|
22
|
+
{
|
|
23
|
+
"actionType": "broadcast",
|
|
24
|
+
"args": {
|
|
25
|
+
"eventName": "@permission.changed"
|
|
26
|
+
},
|
|
27
|
+
"data": {
|
|
28
|
+
"changedFieldName": "allowRead",
|
|
29
|
+
"changedFieldValue": "${event.data.value}"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
]
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"id": "u:10a427822d39"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"allowCreate": {
|
|
39
|
+
"amis": {
|
|
40
|
+
"onEvent": {
|
|
41
|
+
"change": {
|
|
42
|
+
"actions": [
|
|
43
|
+
{
|
|
44
|
+
"actionType": "broadcast",
|
|
45
|
+
"args": {
|
|
46
|
+
"eventName": "@permission.changed"
|
|
47
|
+
},
|
|
48
|
+
"data": {
|
|
49
|
+
"changedFieldName": "allowCreate",
|
|
50
|
+
"changedFieldValue": "${event.data.value}"
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"id": "u:10a427822d39"
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"allowEdit": {
|
|
60
|
+
"amis": {
|
|
61
|
+
"onEvent": {
|
|
62
|
+
"change": {
|
|
63
|
+
"actions": [
|
|
64
|
+
{
|
|
65
|
+
"actionType": "broadcast",
|
|
66
|
+
"args": {
|
|
67
|
+
"eventName": "@permission.changed"
|
|
68
|
+
},
|
|
69
|
+
"data": {
|
|
70
|
+
"changedFieldName": "allowEdit",
|
|
71
|
+
"changedFieldValue": "${event.data.value}"
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
]
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
"id": "u:10a427822d39"
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
"allowDelete": {
|
|
81
|
+
"amis": {
|
|
82
|
+
"onEvent": {
|
|
83
|
+
"change": {
|
|
84
|
+
"actions": [
|
|
85
|
+
{
|
|
86
|
+
"actionType": "broadcast",
|
|
87
|
+
"args": {
|
|
88
|
+
"eventName": "@permission.changed"
|
|
89
|
+
},
|
|
90
|
+
"data": {
|
|
91
|
+
"changedFieldName": "allowDelete",
|
|
92
|
+
"changedFieldValue": "${event.data.value}"
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
]
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
"id": "u:10a427822d39"
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
"viewAllRecords": {
|
|
102
|
+
"amis": {
|
|
103
|
+
"onEvent": {
|
|
104
|
+
"change": {
|
|
105
|
+
"actions": [
|
|
106
|
+
{
|
|
107
|
+
"actionType": "broadcast",
|
|
108
|
+
"args": {
|
|
109
|
+
"eventName": "@permission.changed"
|
|
110
|
+
},
|
|
111
|
+
"data": {
|
|
112
|
+
"changedFieldName": "viewAllRecords",
|
|
113
|
+
"changedFieldValue": "${event.data.value}"
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
]
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
"id": "u:10a427822d39"
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
"modifyAllRecords": {
|
|
123
|
+
"amis": {
|
|
124
|
+
"onEvent": {
|
|
125
|
+
"change": {
|
|
126
|
+
"actions": [
|
|
127
|
+
{
|
|
128
|
+
"actionType": "broadcast",
|
|
129
|
+
"args": {
|
|
130
|
+
"eventName": "@permission.changed"
|
|
131
|
+
},
|
|
132
|
+
"data": {
|
|
133
|
+
"changedFieldName": "modifyAllRecords",
|
|
134
|
+
"changedFieldValue": "${event.data.value}"
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
]
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
"id": "u:10a427822d39"
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
"viewCompanyRecords": {
|
|
144
|
+
"amis": {
|
|
145
|
+
"onEvent": {
|
|
146
|
+
"change": {
|
|
147
|
+
"actions": [
|
|
148
|
+
{
|
|
149
|
+
"actionType": "broadcast",
|
|
150
|
+
"args": {
|
|
151
|
+
"eventName": "@permission.changed"
|
|
152
|
+
},
|
|
153
|
+
"data": {
|
|
154
|
+
"changedFieldName": "viewCompanyRecords",
|
|
155
|
+
"changedFieldValue": "${event.data.value}"
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
]
|
|
159
|
+
}
|
|
160
|
+
},
|
|
161
|
+
"id": "u:10a427822d39"
|
|
162
|
+
}
|
|
163
|
+
},
|
|
164
|
+
"modifyCompanyRecords": {
|
|
165
|
+
"amis": {
|
|
166
|
+
"onEvent": {
|
|
167
|
+
"change": {
|
|
168
|
+
"actions": [
|
|
169
|
+
{
|
|
170
|
+
"actionType": "broadcast",
|
|
171
|
+
"args": {
|
|
172
|
+
"eventName": "@permission.changed"
|
|
173
|
+
},
|
|
174
|
+
"data": {
|
|
175
|
+
"changedFieldName": "modifyCompanyRecords",
|
|
176
|
+
"changedFieldValue": "${event.data.value}"
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
]
|
|
180
|
+
}
|
|
181
|
+
},
|
|
182
|
+
"id": "u:10a427822d39"
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
"allowReadFiles": {
|
|
186
|
+
"amis": {
|
|
187
|
+
"onEvent": {
|
|
188
|
+
"change": {
|
|
189
|
+
"actions": [
|
|
190
|
+
{
|
|
191
|
+
"actionType": "broadcast",
|
|
192
|
+
"args": {
|
|
193
|
+
"eventName": "@permission.changed"
|
|
194
|
+
},
|
|
195
|
+
"data": {
|
|
196
|
+
"changedFieldName": "allowReadFiles",
|
|
197
|
+
"changedFieldValue": "${event.data.value}"
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
]
|
|
201
|
+
}
|
|
202
|
+
},
|
|
203
|
+
"id": "u:10a427822d39"
|
|
204
|
+
}
|
|
205
|
+
},
|
|
206
|
+
"allowEditFiles": {
|
|
207
|
+
"amis": {
|
|
208
|
+
"onEvent": {
|
|
209
|
+
"change": {
|
|
210
|
+
"actions": [
|
|
211
|
+
{
|
|
212
|
+
"actionType": "broadcast",
|
|
213
|
+
"args": {
|
|
214
|
+
"eventName": "@permission.changed"
|
|
215
|
+
},
|
|
216
|
+
"data": {
|
|
217
|
+
"changedFieldName": "allowEditFiles",
|
|
218
|
+
"changedFieldValue": "${event.data.value}"
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
]
|
|
222
|
+
}
|
|
223
|
+
},
|
|
224
|
+
"id": "u:10a427822d39"
|
|
225
|
+
}
|
|
226
|
+
},
|
|
227
|
+
"allowDeleteFiles": {
|
|
228
|
+
"amis": {
|
|
229
|
+
"onEvent": {
|
|
230
|
+
"change": {
|
|
231
|
+
"actions": [
|
|
232
|
+
{
|
|
233
|
+
"actionType": "broadcast",
|
|
234
|
+
"args": {
|
|
235
|
+
"eventName": "@permission.changed"
|
|
236
|
+
},
|
|
237
|
+
"data": {
|
|
238
|
+
"changedFieldName": "allowDeleteFiles",
|
|
239
|
+
"changedFieldValue": "${event.data.value}"
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
]
|
|
243
|
+
}
|
|
244
|
+
},
|
|
245
|
+
"id": "u:10a427822d39"
|
|
246
|
+
}
|
|
247
|
+
},
|
|
248
|
+
"viewAllFiles": {
|
|
249
|
+
"amis": {
|
|
250
|
+
"onEvent": {
|
|
251
|
+
"change": {
|
|
252
|
+
"actions": [
|
|
253
|
+
{
|
|
254
|
+
"actionType": "broadcast",
|
|
255
|
+
"args": {
|
|
256
|
+
"eventName": "@permission.changed"
|
|
257
|
+
},
|
|
258
|
+
"data": {
|
|
259
|
+
"changedFieldName": "viewAllFiles",
|
|
260
|
+
"changedFieldValue": "${event.data.value}"
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
]
|
|
264
|
+
}
|
|
265
|
+
},
|
|
266
|
+
"id": "u:10a427822d39"
|
|
267
|
+
}
|
|
268
|
+
},
|
|
269
|
+
"modifyAllFiles": {
|
|
270
|
+
"amis": {
|
|
271
|
+
"onEvent": {
|
|
272
|
+
"change": {
|
|
273
|
+
"actions": [
|
|
274
|
+
{
|
|
275
|
+
"actionType": "broadcast",
|
|
276
|
+
"args": {
|
|
277
|
+
"eventName": "@permission.changed"
|
|
278
|
+
},
|
|
279
|
+
"data": {
|
|
280
|
+
"changedFieldName": "modifyAllFiles",
|
|
281
|
+
"changedFieldValue": "${event.data.value}"
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
]
|
|
285
|
+
}
|
|
286
|
+
},
|
|
287
|
+
"id": "u:10a427822d39"
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
],
|
|
293
|
+
"data": {
|
|
294
|
+
"context": {}
|
|
295
|
+
},
|
|
296
|
+
"name": "permission_objects_form",
|
|
297
|
+
"id": "u:bb11df394baf",
|
|
298
|
+
"onEvent": {
|
|
299
|
+
"@permission.changed": {
|
|
300
|
+
"actions": [
|
|
301
|
+
{
|
|
302
|
+
"actionType": "custom",
|
|
303
|
+
"script": "var changedFieldName = event.data.changedFieldName;\nvar changedFieldValue = event.data.changedFieldValue;\nvar resultData = {};\nswitch (changedFieldName) {\n case \"allowRead\":\n if (!changedFieldValue) {\n resultData = {\n allowCreate: false,\n allowEdit: false,\n allowDelete: false,\n viewCompanyRecords: false,\n modifyCompanyRecords: false,\n modifyAllRecords: false,\n viewAllRecords: false\n };\n }\n break;\n case \"allowCreate\":\n if (changedFieldValue) {\n resultData['allowRead'] = true;\n }\n break;\n case \"allowEdit\":\n if (changedFieldValue) {\n resultData['allowRead'] = true;\n } else {\n resultData['modifyAllRecords'] = false;\n resultData['modifyCompanyRecords'] = false;\n resultData['allowDelete'] = false;\n }\n break;\n case \"allowDelete\":\n if (changedFieldValue) {\n resultData['allowEdit'] = true;\n resultData['allowRead'] = true;\n } \n break;\n case \"viewAllRecords\":\n if (changedFieldValue) {\n resultData['allowRead'] = true;\n } else {\n resultData['modifyAllRecords'] = false;\n }\n break;\n case \"modifyAllRecords\":\n if (changedFieldValue) {\n resultData = {\n allowRead: true,\n allowEdit: true,\n allowDelete: true,\n viewAllRecords: true\n };\n } \n break;\n case \"viewCompanyRecords\":\n if (changedFieldValue) {\n resultData['allowRead'] = true;\n } else {\n resultData['modifyCompanyRecords'] = false;\n resultData['viewAllRecords'] = false;\n resultData['modifyAllRecords'] = false;\n }\n break;\n case \"modifyCompanyRecords\":\n if (changedFieldValue) {\n resultData = {\n allowRead: true,\n allowEdit: true,\n allowDelete: true,\n viewCompanyRecords: true\n };\n } else {\n resultData['modifyAllRecords'] = false;\n }\n break;\n case \"allowReadFiles\":\n if (!changedFieldValue) {\n resultData = {\n modifyAllFiles: false,\n viewAllFiles: false,\n allowCreateFiles: false,\n allowEditFiles: false,\n allowDeleteFiles: false\n };\n }\n break;\n case \"allowCreateFiles\":\n if (changedFieldValue) {\n resultData['allowReadFiles'] = true;\n }\n break;\n case \"allowEditFiles\":\n if (changedFieldValue) {\n resultData['allowReadFiles'] = true;\n } else {\n resultData['modifyAllFiles'] = false;\n resultData['allowDeleteFiles'] = false;\n }\n break;\n case \"allowDeleteFiles\":\n if (changedFieldValue) {\n resultData['allowEditFiles'] = true;\n resultData['allowReadFiles'] = true;\n } \n break;\n case \"viewAllFiles\":\n if (changedFieldValue) {\n resultData['allowReadFiles'] = true;\n } else {\n resultData['modifyAllFiles'] = false;\n }\n break;\n case \"modifyAllFiles\":\n if (changedFieldValue) {\n resultData = {\n allowReadFiles: true,\n allowEditFiles: true,\n allowDeleteFiles: true,\n viewAllFiles: true,\n };\n } \n break;\n} \n\ndoAction({\n \"componentId\": \"steedos_permission_objects_form\",\n \"actionType\": \"setValue\",\n \"args\": {\n \"value\": resultData\n }\n});"
|
|
304
|
+
}
|
|
305
|
+
]
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @Author: baozhoutao@steedos.com
|
|
3
3
|
* @Date: 2022-06-02 17:45:15
|
|
4
4
|
* @LastEditors: baozhoutao@steedos.com
|
|
5
|
-
* @LastEditTime:
|
|
5
|
+
* @LastEditTime: 2024-02-29 13:28:53
|
|
6
6
|
* @Description:
|
|
7
7
|
-->
|
|
8
8
|
<html>
|
|
@@ -101,6 +101,7 @@
|
|
|
101
101
|
schema.data.context.tenantId = tenantId;
|
|
102
102
|
schema.data.context.userId = userId;
|
|
103
103
|
schema.data.context.authToken = authToken;
|
|
104
|
+
schema.data.context.user = <%- JSON.stringify(userSession) %>;
|
|
104
105
|
|
|
105
106
|
return schema || initialContent
|
|
106
107
|
}
|
|
@@ -56,6 +56,7 @@ router.get('/api/amisButtonDesign', core.requireAuthentication, async function (
|
|
|
56
56
|
userId: userSession.userId,
|
|
57
57
|
authToken: userSession.authToken,
|
|
58
58
|
id: req.query.id,
|
|
59
|
+
userSession: userSession
|
|
59
60
|
}
|
|
60
61
|
const options = {}
|
|
61
62
|
ejs.renderFile(filename, data, options, function(err, str){
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@steedos/standard-object-database",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.7.0-beta.1",
|
|
4
4
|
"main": "package.service.js",
|
|
5
5
|
"private": false,
|
|
6
6
|
"publishConfig": {
|
|
@@ -12,10 +12,10 @@
|
|
|
12
12
|
"description": "steedos package",
|
|
13
13
|
"dependencies": {
|
|
14
14
|
"@steedos-widgets/amis-lib": "^1.0.22",
|
|
15
|
-
"@steedos/metadata-core": "2.
|
|
16
|
-
"@steedos/standard-objects": "2.
|
|
15
|
+
"@steedos/metadata-core": "2.7.0-beta.1",
|
|
16
|
+
"@steedos/standard-objects": "2.7.0-beta.1"
|
|
17
17
|
},
|
|
18
18
|
"repository": {},
|
|
19
19
|
"license": "MIT",
|
|
20
|
-
"gitHead": "
|
|
20
|
+
"gitHead": "529efb7f06c4454d4351500c6e47bd7b7602f64d"
|
|
21
21
|
}
|
package/package.service.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* @Author: sunhaolin@hotoa.com
|
|
3
3
|
* @Date: 1985-10-26 16:15:00
|
|
4
|
-
* @LastEditors:
|
|
5
|
-
* @LastEditTime:
|
|
4
|
+
* @LastEditors: baozhoutao@steedos.com
|
|
5
|
+
* @LastEditTime: 2024-02-29 10:24:41
|
|
6
6
|
* @Description:
|
|
7
7
|
*/
|
|
8
8
|
"use strict";
|
|
@@ -167,6 +167,9 @@ module.exports = {
|
|
|
167
167
|
const dbRecord = await object.directFind({filters: ['_id','=',id]});
|
|
168
168
|
if(dbRecord.length === 0){
|
|
169
169
|
// const newId = await object._makeNewID();
|
|
170
|
+
const objectConfig = await object.toConfig();
|
|
171
|
+
let field_groups = objectConfig.field_groups || null;
|
|
172
|
+
|
|
170
173
|
const now = new Date();
|
|
171
174
|
await object.directInsert(Object.assign({}, data, {
|
|
172
175
|
// _id: newId,
|
|
@@ -182,13 +185,14 @@ module.exports = {
|
|
|
182
185
|
company_ids: userSession.company_ids,
|
|
183
186
|
extend: name,
|
|
184
187
|
custom: false,
|
|
185
|
-
is_system: true
|
|
188
|
+
is_system: true,
|
|
189
|
+
field_groups: field_groups
|
|
186
190
|
}));
|
|
187
191
|
// id = newId;
|
|
188
192
|
}
|
|
189
193
|
|
|
190
194
|
if(data.is_system){
|
|
191
|
-
data = _.pick(data, ['label', 'icon', 'enable_files', 'enable_tasks', 'enable_notes', 'enable_events', 'enable_workflow', 'enable_instances', 'enable_inline_edit', 'enable_tree', 'enable_enhanced_lookup', 'description', 'is_deleted'])
|
|
195
|
+
data = _.pick(data, ['label', 'icon', 'enable_files', 'enable_tasks', 'enable_notes', 'enable_events', 'enable_workflow', 'enable_instances', 'enable_inline_edit', 'enable_tree', 'enable_enhanced_lookup', 'description', 'is_deleted', 'field_groups'])
|
|
192
196
|
}
|
|
193
197
|
|
|
194
198
|
return object.update(id, data, userSession)
|