@steedos/standard-object-database 2.6.10-beta.9 → 2.7.0-beta.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/objectTranslations/_object_reload_logs.en/_object_reload_logs.en.objectTranslation.yml +1 -1
- package/main/default/objectTranslations/_object_reload_logs.zh-CN/_object_reload_logs.zh-CN.objectTranslation.yml +1 -1
- package/main/default/objectTranslations/object_actions.en/object_actions.en.objectTranslation.yml +4 -0
- package/main/default/objectTranslations/object_actions.zh-CN/object_actions.zh-CN.objectTranslation.yml +4 -0
- package/main/default/objectTranslations/object_fields.en/object_fields.en.objectTranslation.yml +7 -1
- package/main/default/objectTranslations/object_fields.zh-CN/object_fields.zh-CN.objectTranslation.yml +7 -1
- package/main/default/objectTranslations/objects.en/objects.en.objectTranslation.yml +2 -0
- package/main/default/objectTranslations/objects.zh-CN/objects.zh-CN.objectTranslation.yml +2 -0
- package/main/default/objects/0.objects_reload.object.js +7 -0
- package/main/default/objects/_object_reload_logs.object.yml +1 -1
- package/main/default/objects/object_actions.object.yml +7 -0
- package/main/default/objects/object_fields.object.yml +18 -4
- package/main/default/objects/objects/buttons/reset.button.js +16 -0
- package/main/default/objects/objects/buttons/reset.button.yml +79 -0
- package/main/default/objects/objects.core.js +4 -4
- package/main/default/objects/objects.object.yml +7 -1
- package/main/default/pages/object_fields_form.page.amis.json +24 -3
- 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/services/database-objects.service.js +19 -2
- package/main/default/triggers/object_actions.trigger.js +24 -28
- package/main/default/triggers/object_fields.trigger.js +25 -1
- package/main/default/triggers/object_validation_rules.trigger.js +2 -21
- package/main/default/triggers/objects.trigger.js +12 -5
- package/package.json +4 -4
- package/package.service.js +2 -3
package/main/default/objectTranslations/object_fields.en/object_fields.en.objectTranslation.yml
CHANGED
|
@@ -110,8 +110,12 @@ fields:
|
|
|
110
110
|
label: Reference to field
|
|
111
111
|
help: The value of the associated object saved to the current object field; For example, after object A is associated with object B, when A1 record is associated with B1 record, B1 record will be stored by default_ Save the ID in the A1 record. If the foreign key field is modified, the 'foreign key field' will be replaced_ Store the ID in the A1 record.
|
|
112
112
|
description: The default is the primary key, and the default value is _id.
|
|
113
|
+
filters:
|
|
114
|
+
label: Lookup Relationship Filters Condition
|
|
115
|
+
help: When the field type is Lookup Relationship or Master Detail Relationship, filtering conditions can be configured for the field, filtering option list; The field values can be configured as formulas, and the fields referenced in the formulas need to be configured in Dependent Fields at the same time
|
|
116
|
+
description:
|
|
113
117
|
filtersFunction:
|
|
114
|
-
label:
|
|
118
|
+
label: Lookup Relationship Filters Function
|
|
115
119
|
help:
|
|
116
120
|
description:
|
|
117
121
|
optionsFunction:
|
|
@@ -383,6 +387,8 @@ fields:
|
|
|
383
387
|
label: Enable Enhanced Lookup
|
|
384
388
|
help:
|
|
385
389
|
description:
|
|
390
|
+
is_customize:
|
|
391
|
+
label: Customize
|
|
386
392
|
groups:
|
|
387
393
|
external_data_source: External data source
|
|
388
394
|
advanced: Advanced
|
|
@@ -107,8 +107,12 @@ fields:
|
|
|
107
107
|
label: 外键字段
|
|
108
108
|
help: 关联的对象保存到当前对象字段的值;例如:A对象关联B对象后,当A1记录关联了B1记录,默认会存B1记录的_id存到A1记录中。如果修改了外键字段后,会将“外键字段”替换_id存储到A1记录中。
|
|
109
109
|
description: '默认为主键,默认值是_id'
|
|
110
|
+
filters:
|
|
111
|
+
label: 相关表过滤条件
|
|
112
|
+
help: 当字段类型为相关表关系或主/子表关系时,可以为该字段配置过滤条件,过滤选项列表;其中字段值可以配置为公式,公式中引用的字段需要同时配置在依赖的字段中
|
|
113
|
+
description:
|
|
110
114
|
filtersFunction:
|
|
111
|
-
label:
|
|
115
|
+
label: 相关表过滤器函数
|
|
112
116
|
help:
|
|
113
117
|
description:
|
|
114
118
|
optionsFunction:
|
|
@@ -359,6 +363,8 @@ fields:
|
|
|
359
363
|
label: 启用弹出窗口查找模式
|
|
360
364
|
help:
|
|
361
365
|
description:
|
|
366
|
+
is_customize:
|
|
367
|
+
label: 自定义
|
|
362
368
|
groups:
|
|
363
369
|
external_data_source: 外部数据源
|
|
364
370
|
advanced: 高级
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @Author: baozhoutao@steedos.com
|
|
3
|
+
* @Date: 2022-08-05 14:17:44
|
|
4
|
+
* @LastEditors: baozhoutao@steedos.com
|
|
5
|
+
* @LastEditTime: 2024-03-20 13:34:23
|
|
6
|
+
* @Description:
|
|
7
|
+
*/
|
|
1
8
|
var objectql = require('@steedos/objectql');
|
|
2
9
|
var objectCore = require('./objects.core.js');
|
|
3
10
|
|
|
@@ -38,7 +38,9 @@ fields:
|
|
|
38
38
|
# omit: true
|
|
39
39
|
# hidden: true
|
|
40
40
|
label: Visible
|
|
41
|
+
is_wide: false
|
|
41
42
|
sort_no: 150
|
|
43
|
+
defaultValue: true
|
|
42
44
|
'on':
|
|
43
45
|
type: lookup
|
|
44
46
|
label: 'On'
|
|
@@ -137,6 +139,11 @@ fields:
|
|
|
137
139
|
visible_on: "{{global.mode ==='read' ? true : false}}"
|
|
138
140
|
disabled: true
|
|
139
141
|
sort_no: 500
|
|
142
|
+
description:
|
|
143
|
+
label: Description
|
|
144
|
+
type: textarea
|
|
145
|
+
is_wide: true
|
|
146
|
+
sort_no: 450
|
|
140
147
|
form:
|
|
141
148
|
initialValues: !!js/function |
|
|
142
149
|
function(){
|
|
@@ -25,8 +25,6 @@ fields:
|
|
|
25
25
|
label: Label
|
|
26
26
|
is_name: true
|
|
27
27
|
sort_no: 120
|
|
28
|
-
amis:
|
|
29
|
-
disabledOn: "${is_system == true}"
|
|
30
28
|
_name:
|
|
31
29
|
type: text
|
|
32
30
|
label: Field Name
|
|
@@ -364,8 +362,20 @@ fields:
|
|
|
364
362
|
sort_no: 220
|
|
365
363
|
amis:
|
|
366
364
|
disabledOn: "${is_system == true}"
|
|
365
|
+
filters:
|
|
366
|
+
label: Lookup Relationship Filters Condition
|
|
367
|
+
type: code
|
|
368
|
+
is_wide: true
|
|
369
|
+
hidden: false
|
|
370
|
+
readonly: false
|
|
371
|
+
sort_no: 447
|
|
372
|
+
group: Advanced
|
|
373
|
+
visible_on: "{{(['lookup', 'master_detail'].indexOf(formData.type) > -1 ? true: false) && !!formData.reference_to}}"
|
|
374
|
+
inlineHelpText: vWhen the field type is Lookup Relationship or Master Detail Relationship, filtering conditions can be configured for the field, filtering option list; The field values can be configured as formulas, and the fields referenced in the formulas need to be configured in Dependent Fields at the same time
|
|
375
|
+
amis:
|
|
376
|
+
disabledOn: "${is_system == true}"
|
|
367
377
|
filtersFunction:
|
|
368
|
-
label:
|
|
378
|
+
label: Lookup Relationship Filters Function
|
|
369
379
|
type: code
|
|
370
380
|
language: javascript
|
|
371
381
|
is_wide: true
|
|
@@ -525,7 +535,6 @@ fields:
|
|
|
525
535
|
sort_no: 280
|
|
526
536
|
amis:
|
|
527
537
|
enableDialog: false
|
|
528
|
-
disabledOn: "${is_system == true}"
|
|
529
538
|
auto_fill_mapping.$:
|
|
530
539
|
label: Auto Fill Mapping
|
|
531
540
|
blackbox: true
|
|
@@ -936,6 +945,9 @@ fields:
|
|
|
936
945
|
type: boolean
|
|
937
946
|
label: Enable Enhanced Lookup
|
|
938
947
|
hidden: true # 这里不可以用 visible_on: "{{false}}",否则在界面上新建字段时会被默认设置为false
|
|
948
|
+
is_customize:
|
|
949
|
+
type: boolean
|
|
950
|
+
readonly: true
|
|
939
951
|
paging:
|
|
940
952
|
enabled: false
|
|
941
953
|
list_views:
|
|
@@ -951,6 +963,7 @@ list_views:
|
|
|
951
963
|
- hidden
|
|
952
964
|
- readonly
|
|
953
965
|
- is_system
|
|
966
|
+
- is_customize
|
|
954
967
|
sort:
|
|
955
968
|
- field_name: sort_no
|
|
956
969
|
order: asc
|
|
@@ -968,6 +981,7 @@ list_views:
|
|
|
968
981
|
- hidden
|
|
969
982
|
- readonly
|
|
970
983
|
- is_system
|
|
984
|
+
- is_customize
|
|
971
985
|
label: 自定义
|
|
972
986
|
filters:
|
|
973
987
|
- ["is_system","<>",true]
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @Author: baozhoutaon@hotoa.com
|
|
3
|
+
* @Date: 2022-03-29 20:33:44
|
|
4
|
+
* @LastEditors: baozhoutao@steedos.com
|
|
5
|
+
* @LastEditTime: 2024-03-21 10:45:57
|
|
6
|
+
* @Description:
|
|
7
|
+
*/
|
|
8
|
+
module.exports = {
|
|
9
|
+
resetVisible: function (object_name, record_id, permission, data) {
|
|
10
|
+
if(Meteor.settings.public.enable_saas){
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
var record = data && data.record;
|
|
14
|
+
return record && record.is_system && record.is_customize && record.created;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
name: reset
|
|
2
|
+
amis_schema: |-
|
|
3
|
+
{
|
|
4
|
+
"type": "service",
|
|
5
|
+
"body": [
|
|
6
|
+
{
|
|
7
|
+
"type": "button",
|
|
8
|
+
"label": "重置",
|
|
9
|
+
"id": "u:delete_object",
|
|
10
|
+
"onEvent": {
|
|
11
|
+
"click": {
|
|
12
|
+
"actions": [
|
|
13
|
+
{
|
|
14
|
+
"actionType": "dialog",
|
|
15
|
+
"dialog": {
|
|
16
|
+
"type": "dialog",
|
|
17
|
+
"title": "重置对象: ${record.label}",
|
|
18
|
+
"body": [
|
|
19
|
+
{
|
|
20
|
+
"type": "tpl",
|
|
21
|
+
"tpl": "<div>\n<div style=\"text-align: left;\">重置一个自定义对象进行以下操作:</div>\n<ul>\n<li style=\"text-align: left;\">删除自定义的对象</li>\n<li style=\"text-align: left;\">删除自定义对象的字段</li>\n</ul>\n</div>",
|
|
22
|
+
"inline": true,
|
|
23
|
+
"id": "u:6d0819fc0bda"
|
|
24
|
+
}
|
|
25
|
+
],
|
|
26
|
+
"id": "u:b5c0f98dc113",
|
|
27
|
+
"closeOnEsc": false,
|
|
28
|
+
"closeOnOutside": false,
|
|
29
|
+
"showCloseButton": true,
|
|
30
|
+
"data": {
|
|
31
|
+
"&": "$$",
|
|
32
|
+
"recordId": "${recordId}"
|
|
33
|
+
},
|
|
34
|
+
"onEvent": {
|
|
35
|
+
"confirm": {
|
|
36
|
+
"weight": 0,
|
|
37
|
+
"actions": [
|
|
38
|
+
{
|
|
39
|
+
"componentId": "",
|
|
40
|
+
"args": {
|
|
41
|
+
"api": {
|
|
42
|
+
"url": "/service/api/~database-objects/reset",
|
|
43
|
+
"method": "post",
|
|
44
|
+
"data": {
|
|
45
|
+
"objectName": "${record.name}"
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"messages": {}
|
|
49
|
+
},
|
|
50
|
+
"actionType": "ajax"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"actionType": "custom",
|
|
54
|
+
"script": "window.location.reload();"
|
|
55
|
+
}
|
|
56
|
+
]
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
],
|
|
62
|
+
"weight": 0
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
],
|
|
67
|
+
"regions": [
|
|
68
|
+
"body"
|
|
69
|
+
],
|
|
70
|
+
"data": {
|
|
71
|
+
},
|
|
72
|
+
"bodyClassName": "p-0",
|
|
73
|
+
"id": "u:46d1821365fc"
|
|
74
|
+
}
|
|
75
|
+
is_enable: true
|
|
76
|
+
label: 重置
|
|
77
|
+
'on': record_only_more
|
|
78
|
+
type: amis_button
|
|
79
|
+
visible: true
|
|
@@ -284,7 +284,7 @@ function getObjectFromDB(objectName) {
|
|
|
284
284
|
|
|
285
285
|
function reloadObject(changeLog){
|
|
286
286
|
var objectName = changeLog.object_name;
|
|
287
|
-
var data = changeLog.
|
|
287
|
+
var data = changeLog.change_data;
|
|
288
288
|
const objectRecord = Creator.getCollection("objects").findOne({
|
|
289
289
|
name: objectName
|
|
290
290
|
})
|
|
@@ -298,7 +298,7 @@ function reloadObject(changeLog){
|
|
|
298
298
|
fields: [],
|
|
299
299
|
actions: []
|
|
300
300
|
}
|
|
301
|
-
if(!objectRecord && objectDataSourceName){
|
|
301
|
+
if((!objectRecord || objectRecord.is_system == true) && objectDataSourceName){
|
|
302
302
|
|
|
303
303
|
switch (data.type) {
|
|
304
304
|
case 'field':
|
|
@@ -383,14 +383,14 @@ function triggerReloadObject(objectName, type, value, event){
|
|
|
383
383
|
const objectRecord = Creator.getCollection("objects").findOne({
|
|
384
384
|
name: objectName
|
|
385
385
|
})
|
|
386
|
-
if(objectRecord){
|
|
386
|
+
if(objectRecord && objectRecord.is_system != true){
|
|
387
387
|
//TODO 待支持动态加载related_list后, 删除此行代码
|
|
388
388
|
// console.log(`triggerReloadObject===>`, objectName)
|
|
389
389
|
Creator.getCollection("objects").update({name: objectName}, {$set: {reload_time: new Date()}})
|
|
390
390
|
}else{
|
|
391
391
|
Creator.getCollection("_object_reload_logs").insert({
|
|
392
392
|
object_name: objectName,
|
|
393
|
-
|
|
393
|
+
change_data: {
|
|
394
394
|
type: type,
|
|
395
395
|
event: event,
|
|
396
396
|
value: value
|
|
@@ -443,6 +443,9 @@ fields:
|
|
|
443
443
|
extend:
|
|
444
444
|
type: text
|
|
445
445
|
hidden: true
|
|
446
|
+
is_customize:
|
|
447
|
+
type: boolean
|
|
448
|
+
readonly: true
|
|
446
449
|
paging:
|
|
447
450
|
enabled: false
|
|
448
451
|
relatedList:
|
|
@@ -490,6 +493,7 @@ list_views:
|
|
|
490
493
|
- in_development
|
|
491
494
|
- is_enable
|
|
492
495
|
- is_system
|
|
496
|
+
- is_customize
|
|
493
497
|
label: All
|
|
494
498
|
filter_scope: space
|
|
495
499
|
extra_columns:
|
|
@@ -505,9 +509,10 @@ list_views:
|
|
|
505
509
|
- in_development
|
|
506
510
|
- is_enable
|
|
507
511
|
- is_system
|
|
512
|
+
- is_customize
|
|
508
513
|
label: Customize
|
|
509
514
|
filters:
|
|
510
|
-
- ["
|
|
515
|
+
- ["is_customize","<>",true]
|
|
511
516
|
filter_scope: space
|
|
512
517
|
extra_columns:
|
|
513
518
|
- datasource
|
|
@@ -522,6 +527,7 @@ list_views:
|
|
|
522
527
|
- in_development
|
|
523
528
|
- is_enable
|
|
524
529
|
- is_system
|
|
530
|
+
- is_customize
|
|
525
531
|
label: System
|
|
526
532
|
filters:
|
|
527
533
|
- ["is_system","=",true]
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
]
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
|
-
"initApiAdaptor": "const defaultValue_field_value = payload.data.defaultValue
|
|
29
|
-
"apiRequestAdaptor": "if(formData.defaultValue_formula){
|
|
28
|
+
"initApiAdaptor": "const defaultValue_field_value = payload.data.defaultValue;\nif (defaultValue_field_value && _.isString(defaultValue_field_value) && defaultValue_field_value.indexOf('{') > -1) {\n payload.data.defaultValue_formula = defaultValue_field_value;\n delete payload.data.defaultValue;\n}\n\nif (recordId) {\n var data = payload.data;\n if (data) {\n data.filters = window.amisConvert.filtersToConditions(data.filters || []);\n }\n payload.data = data;\n}\nreturn payload;",
|
|
29
|
+
"apiRequestAdaptor": "if (formData.defaultValue_formula) {\n formData.defaultValue = formData.defaultValue_formula\n}\nif (formData.filters) {\n formData.filters = window.amisConvert.conditionsToFilters(formData.filters);\n}\n__saveData = JSON.stringify(JSON.stringify(formData));\napi.data = { query: query.replace('{__saveData}', __saveData) };\napi.data.query = api.data.query.replace('object_fields__update', 'object_fields__upsert');",
|
|
30
30
|
"submitSuccActions": [
|
|
31
31
|
{
|
|
32
32
|
"actionType": "custom",
|
|
@@ -142,8 +142,29 @@
|
|
|
142
142
|
}
|
|
143
143
|
]
|
|
144
144
|
}
|
|
145
|
-
}
|
|
145
|
+
},
|
|
146
|
+
"disabledOn": "${is_system == true}",
|
|
147
|
+
"searchable": true
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
"filters": {
|
|
151
|
+
"amis": {
|
|
152
|
+
"type": "condition-builder",
|
|
153
|
+
"description": "",
|
|
154
|
+
"id": "u:a9f2232e30d7",
|
|
155
|
+
"source": {
|
|
156
|
+
"method": "get",
|
|
157
|
+
"url": "${context.rootUrl}/service/api/amis-metadata-listviews/getFilterFields?objectName=${reference_to}",
|
|
158
|
+
"dataType": "json",
|
|
159
|
+
"headers": {
|
|
160
|
+
"Authorization": "Bearer ${context.tenantId},${context.authToken}"
|
|
161
|
+
}
|
|
162
|
+
},
|
|
163
|
+
"className": "col-span-2 m-0"
|
|
146
164
|
}
|
|
165
|
+
},
|
|
166
|
+
"filtersFunction": {
|
|
167
|
+
"hidden": true
|
|
147
168
|
}
|
|
148
169
|
},
|
|
149
170
|
"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,10 +2,15 @@
|
|
|
2
2
|
* @Author: baozhoutao@steedos.com
|
|
3
3
|
* @Date: 2023-04-21 16:25:07
|
|
4
4
|
* @LastEditors: baozhoutao@steedos.com
|
|
5
|
-
* @LastEditTime:
|
|
5
|
+
* @LastEditTime: 2024-03-21 11:58:43
|
|
6
6
|
* @Description:
|
|
7
7
|
*/
|
|
8
8
|
var packageServiceName = '~database-objects'
|
|
9
|
+
|
|
10
|
+
const { getObject } = require('@steedos/objectql');
|
|
11
|
+
|
|
12
|
+
const sleep = async (ms) => new Promise(resolve => setTimeout(resolve, ms));
|
|
13
|
+
|
|
9
14
|
function isPatternTrigger(data){
|
|
10
15
|
const {listenTo} = data;
|
|
11
16
|
if(listenTo === '*'){
|
|
@@ -36,7 +41,19 @@ module.exports = {
|
|
|
36
41
|
* Actions
|
|
37
42
|
*/
|
|
38
43
|
actions: {
|
|
39
|
-
|
|
44
|
+
resetObject: {
|
|
45
|
+
rest: {
|
|
46
|
+
method: "POST",
|
|
47
|
+
path: "/reset"
|
|
48
|
+
},
|
|
49
|
+
async handler(ctx) {
|
|
50
|
+
const { objectName } = ctx.params;
|
|
51
|
+
await getObject('objects').directDelete({filters: ['name','=', objectName]});
|
|
52
|
+
await getObject('object_fields').directDelete({filters: ['object','=', objectName]});
|
|
53
|
+
await sleep(2 * 1000)
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
40
57
|
},
|
|
41
58
|
|
|
42
59
|
/**
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @Author: sunhaolin@hotoa.com
|
|
3
3
|
* @Date: 2022-05-28 11:07:57
|
|
4
4
|
* @LastEditors: baozhoutao@steedos.com
|
|
5
|
-
* @LastEditTime:
|
|
5
|
+
* @LastEditTime: 2024-03-20 16:00:17
|
|
6
6
|
* @Description:
|
|
7
7
|
*/
|
|
8
8
|
const InternalData = require('@steedos/standard-objects').internalData;
|
|
@@ -12,20 +12,18 @@ const sleep = async (ms) => new Promise(resolve => setTimeout(resolve, ms));
|
|
|
12
12
|
module.exports = {
|
|
13
13
|
beforeInsert: async function(){
|
|
14
14
|
const { doc } = this;
|
|
15
|
+
delete doc.visible_type
|
|
15
16
|
doc.visible;
|
|
16
17
|
},
|
|
17
18
|
beforeUpdate: async function(){
|
|
18
19
|
const { doc } = this;
|
|
20
|
+
delete doc.visible_type
|
|
19
21
|
doc.visible;
|
|
20
22
|
},
|
|
21
23
|
beforeFind: async function () {
|
|
22
24
|
delete this.query.fields;
|
|
23
25
|
},
|
|
24
26
|
|
|
25
|
-
beforeAggregate: async function () {
|
|
26
|
-
delete this.query.fields;
|
|
27
|
-
},
|
|
28
|
-
|
|
29
27
|
afterFind: async function(){
|
|
30
28
|
let filters = InternalData.parserFilters(this.query.filters)
|
|
31
29
|
const { spaceId } = this;
|
|
@@ -52,32 +50,21 @@ module.exports = {
|
|
|
52
50
|
}
|
|
53
51
|
}
|
|
54
52
|
}
|
|
55
|
-
},
|
|
56
|
-
afterAggregate: async function(){
|
|
57
|
-
let filters = InternalData.parserFilters(this.query.filters)
|
|
58
|
-
const { spaceId } = this;
|
|
59
53
|
|
|
60
|
-
|
|
61
|
-
if(
|
|
62
|
-
|
|
63
|
-
}
|
|
54
|
+
// _.each(this.data.values, (item)=>{
|
|
55
|
+
// if(item.visibleOn){
|
|
56
|
+
// item.visible_type = "expression"
|
|
57
|
+
// }else if(item.visible === true){
|
|
58
|
+
// item.visible_type = "static"
|
|
59
|
+
// }
|
|
60
|
+
// })
|
|
64
61
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
if (!_.find(this.data.values, (value) => {
|
|
69
|
-
return value.name === doc.name
|
|
70
|
-
})) {
|
|
71
|
-
this.data.values.push(Object.assign({_id: `${objectName}.${doc.name}`}, doc));
|
|
72
|
-
}
|
|
73
|
-
})
|
|
74
|
-
const records = objectql.getSteedosSchema().metadataDriver.find(this.data.values, this.query, spaceId);
|
|
75
|
-
if (records.length > 0) {
|
|
76
|
-
this.data.values = records;
|
|
77
|
-
} else {
|
|
78
|
-
this.data.values.length = 0;
|
|
62
|
+
_.each(this.data.values, (item)=>{
|
|
63
|
+
if(item.visible != false){
|
|
64
|
+
item.visible = true
|
|
79
65
|
}
|
|
80
|
-
}
|
|
66
|
+
})
|
|
67
|
+
|
|
81
68
|
},
|
|
82
69
|
afterCount: async function(){
|
|
83
70
|
delete this.query.fields;
|
|
@@ -95,6 +82,15 @@ module.exports = {
|
|
|
95
82
|
}
|
|
96
83
|
}
|
|
97
84
|
}
|
|
85
|
+
|
|
86
|
+
if(this.data.values){
|
|
87
|
+
if(this.data.values.visibleOn){
|
|
88
|
+
this.data.values.visible_type = "expression"
|
|
89
|
+
}else if(this.data.values.visible === true){
|
|
90
|
+
this.data.values.visible_type = "static"
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
98
94
|
},
|
|
99
95
|
afterDelete: async function(){
|
|
100
96
|
await sleep(1000 * 2);
|
|
@@ -217,6 +217,12 @@ const initSummaryDoc = async (doc) => {
|
|
|
217
217
|
|
|
218
218
|
module.exports = {
|
|
219
219
|
afterFind: async function(){
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
_.each(this.data.values, (item)=>{
|
|
223
|
+
item.is_customize = true
|
|
224
|
+
})
|
|
225
|
+
|
|
220
226
|
let filters = InternalData.parserFilters(this.query.filters);
|
|
221
227
|
let objectName = filters.object;
|
|
222
228
|
if(!objectName && filters._id && filters._id.indexOf(".") > -1){
|
|
@@ -243,7 +249,12 @@ module.exports = {
|
|
|
243
249
|
if(obj){
|
|
244
250
|
this.data.values = _.map(this.data.values, (item)=>{
|
|
245
251
|
if(item.is_system){
|
|
246
|
-
|
|
252
|
+
const mField = _.find(obj.fields, (field)=>{return field.name === item.name})
|
|
253
|
+
if(mField){
|
|
254
|
+
return Object.assign(item, mField, mField?.override || {})
|
|
255
|
+
}else{
|
|
256
|
+
return item;
|
|
257
|
+
}
|
|
247
258
|
}else{
|
|
248
259
|
return item;
|
|
249
260
|
}
|
|
@@ -262,6 +273,15 @@ module.exports = {
|
|
|
262
273
|
if(query.fields && _.isArray(query.fields) && !_.include(query.fields, 'type')){
|
|
263
274
|
query.fields.push('type')
|
|
264
275
|
}
|
|
276
|
+
|
|
277
|
+
|
|
278
|
+
let filters = InternalData.parserFilters(this.query.filters);
|
|
279
|
+
if(filters._id && filters._id.indexOf(".") > -1){
|
|
280
|
+
const [objectName, fieldName] = filters._id.split('.');
|
|
281
|
+
query.filters = [['object', '=', objectName], ['name', '=', fieldName]]
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
|
|
265
285
|
},
|
|
266
286
|
beforeAggregate: async function(){
|
|
267
287
|
const { query } = this;
|
|
@@ -300,10 +320,13 @@ module.exports = {
|
|
|
300
320
|
this.data.values = field;
|
|
301
321
|
}
|
|
302
322
|
}
|
|
323
|
+
}else{
|
|
324
|
+
this.data.values.is_customize = true
|
|
303
325
|
}
|
|
304
326
|
},
|
|
305
327
|
beforeInsert: async function () {
|
|
306
328
|
let doc = this.doc;
|
|
329
|
+
delete doc.is_customize
|
|
307
330
|
validateDoc(doc);
|
|
308
331
|
await checkFormulaInfiniteLoop(doc);
|
|
309
332
|
await checkMasterDetailTypeField(doc);
|
|
@@ -328,6 +351,7 @@ module.exports = {
|
|
|
328
351
|
},
|
|
329
352
|
beforeUpdate: async function () {
|
|
330
353
|
let { doc, object_name, id} = this;
|
|
354
|
+
delete doc.is_customize
|
|
331
355
|
validateDoc(doc);
|
|
332
356
|
// const dbDoc = await objectql.getObject(object_name).findOne(id)
|
|
333
357
|
const dbDoc = objectql.wrapAsync(async function(){
|
|
@@ -18,7 +18,7 @@ module.exports = {
|
|
|
18
18
|
},
|
|
19
19
|
afterFind: async function(){
|
|
20
20
|
const { spaceId } = this;
|
|
21
|
-
let dataList = register.getAllObjectValidationRules();
|
|
21
|
+
let dataList = await register.getAllObjectValidationRules();
|
|
22
22
|
if (!_.isEmpty(dataList)) {
|
|
23
23
|
dataList.forEach((doc) => {
|
|
24
24
|
if (!_.find(this.data.values, (value) => {
|
|
@@ -36,25 +36,6 @@ module.exports = {
|
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
},
|
|
39
|
-
afterAggregate: async function(){
|
|
40
|
-
const { spaceId } = this;
|
|
41
|
-
let dataList = register.getAllObjectValidationRules();
|
|
42
|
-
if (!_.isEmpty(dataList)) {
|
|
43
|
-
dataList.forEach((doc) => {
|
|
44
|
-
if (!_.find(this.data.values, (value) => {
|
|
45
|
-
return value.name === doc.name
|
|
46
|
-
})) {
|
|
47
|
-
this.data.values.push(doc);
|
|
48
|
-
}
|
|
49
|
-
})
|
|
50
|
-
const records = objectql.getSteedosSchema().metadataDriver.find(this.data.values, this.query, spaceId);
|
|
51
|
-
if (records.length > 0) {
|
|
52
|
-
this.data.values = records;
|
|
53
|
-
} else {
|
|
54
|
-
this.data.values.length = 0;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
},
|
|
58
39
|
afterCount: async function(){
|
|
59
40
|
delete this.query.fields;
|
|
60
41
|
let result = await objectql.getObject(this.object_name).find(this.query, await auth.getSessionByUserId(this.userId, this.spaceId))
|
|
@@ -62,7 +43,7 @@ module.exports = {
|
|
|
62
43
|
},
|
|
63
44
|
afterFindOne: async function(){
|
|
64
45
|
if (_.isEmpty(this.data.values)) {
|
|
65
|
-
const all = register.getAllObjectValidationRules();
|
|
46
|
+
const all = await register.getAllObjectValidationRules();
|
|
66
47
|
const id = this.id;
|
|
67
48
|
this.data.values = _.find(all, function (item) {
|
|
68
49
|
return item._id === id
|
|
@@ -17,15 +17,15 @@ module.exports = {
|
|
|
17
17
|
afterFind: async function(){
|
|
18
18
|
let userId = this.userId
|
|
19
19
|
let spaceId = this.spaceId;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
|
|
21
|
+
_.each(this.data.values, (item)=>{
|
|
22
|
+
item.is_customize = true
|
|
23
|
+
})
|
|
24
24
|
|
|
25
25
|
this.data.values = this.data.values.concat(await InternalData.getObjects(userId));
|
|
26
26
|
|
|
27
27
|
this.data.values = objectql.getSteedosSchema().metadataDriver.find(this.data.values, this.query, spaceId);
|
|
28
|
-
|
|
28
|
+
|
|
29
29
|
_.each(this.data.values, function(value){
|
|
30
30
|
if(value){
|
|
31
31
|
delete value.actions;
|
|
@@ -44,6 +44,8 @@ module.exports = {
|
|
|
44
44
|
afterFindOne: async function(){
|
|
45
45
|
if(_.isEmpty(this.data.values)){
|
|
46
46
|
this.data.values = await InternalData.getObject(this.id, this.userId);
|
|
47
|
+
}else{
|
|
48
|
+
this.data.values.is_customize = true
|
|
47
49
|
}
|
|
48
50
|
if(this.data.values){
|
|
49
51
|
delete this.data.values.actions;
|
|
@@ -104,8 +106,13 @@ module.exports = {
|
|
|
104
106
|
// })
|
|
105
107
|
await sleep(1000 * 2)
|
|
106
108
|
},
|
|
109
|
+
beforeInsert: async function () {
|
|
110
|
+
let doc = this.doc;
|
|
111
|
+
delete doc.is_customize
|
|
112
|
+
},
|
|
107
113
|
beforeUpdate: async function () {
|
|
108
114
|
const { doc, id, object_name } = this;
|
|
115
|
+
delete doc.is_customize
|
|
109
116
|
// 如果用户修改了apiname,则校验 数据源必须一致为default数据源;且数据库中不能有新的apiname对应的表
|
|
110
117
|
if (_.has(doc, 'name')) {
|
|
111
118
|
const obj = this.getObject(object_name);
|
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.10",
|
|
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.10",
|
|
16
|
+
"@steedos/standard-objects": "2.7.0-beta.10"
|
|
17
17
|
},
|
|
18
18
|
"repository": {},
|
|
19
19
|
"license": "MIT",
|
|
20
|
-
"gitHead": "
|
|
20
|
+
"gitHead": "78659952139c455e4fdd3d581c0d242219e033d0"
|
|
21
21
|
}
|
package/package.service.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @Author: sunhaolin@hotoa.com
|
|
3
3
|
* @Date: 1985-10-26 16:15:00
|
|
4
4
|
* @LastEditors: baozhoutao@steedos.com
|
|
5
|
-
* @LastEditTime: 2024-
|
|
5
|
+
* @LastEditTime: 2024-03-20 14:30:13
|
|
6
6
|
* @Description:
|
|
7
7
|
*/
|
|
8
8
|
"use strict";
|
|
@@ -115,8 +115,7 @@ module.exports = {
|
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
117
|
if(data.is_system){
|
|
118
|
-
|
|
119
|
-
data = _.pick(data, ['defaultValue', 'group', 'rows', 'sort_no', 'is_wide', 'index', 'sortable', 'searchable', 'filterable', 'visible_on', 'inlineHelpText', 'description', 'amis', 'required', 'unique', 'readonly', 'hidden', 'deleted_lookup_record_behavior', 'enable_thousands', 'autonumber_enable_modify']);
|
|
118
|
+
data = _.pick(data, ['label', 'defaultValue', 'group', 'rows', 'sort_no', 'is_wide', 'index', 'sortable', 'searchable', 'filterable', 'visible_on', 'inlineHelpText', 'description', 'amis', 'required', 'unique', 'readonly', 'hidden', 'deleted_lookup_record_behavior', 'enable_thousands', 'autonumber_enable_modify', 'auto_fill_mapping']);
|
|
120
119
|
}
|
|
121
120
|
return object.update(id, data, userSession)
|
|
122
121
|
},
|