@steedos/standard-object-database 2.7.1-beta.2 → 2.7.1-beta.21
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_functions.en/object_functions.en.objectTranslation.yml +60 -0
- package/main/default/objectTranslations/object_functions.zh-CN/object_functions.zh-CN.objectTranslation.yml +57 -0
- package/main/default/objectTranslations/object_webhooks.en/object_webhooks.en.objectTranslation.yml +46 -0
- package/main/default/objectTranslations/object_webhooks.zh-CN/object_webhooks.zh-CN.objectTranslation.yml +48 -0
- package/main/default/objectTranslations/objects.en/objects.en.objectTranslation.yml +4 -0
- package/main/default/objectTranslations/objects.zh-CN/objects.zh-CN.objectTranslation.yml +4 -0
- package/main/default/objects/datasources/fields/driver.field.yml +1 -0
- package/main/default/objects/datasources/fields/is_enable.field.yml +1 -0
- package/main/default/objects/datasources/fields/label.field.yml +2 -0
- package/main/default/objects/datasources/fields/name.field.yml +1 -0
- package/main/default/objects/object_fields/fields/auto_fill_mapping.$.from.field.yml +8 -6
- package/main/default/objects/object_fields/fields/auto_fill_mapping.$.to.field.yml +13 -0
- package/main/default/objects/object_fields/fields/auto_fill_mapping.field.yml +1 -1
- package/main/default/objects/object_fields/fields/is_name.field.yml +1 -0
- package/main/default/objects/object_fields/fields/sortable.field.yml +0 -1
- package/main/default/objects/object_fields/fields/summary_filters.field.yml +1 -1
- package/main/default/objects/object_functions/buttons/standard_new.button.js +16 -0
- package/main/default/objects/object_functions/fields/_name.field.yml +7 -0
- package/main/default/objects/object_functions/fields/description.field.yml +5 -0
- package/main/default/objects/object_functions/fields/isEnabled.field.yml +5 -0
- package/main/default/objects/object_functions/fields/is_rest.field.yml +5 -0
- package/main/default/objects/object_functions/fields/is_system.field.yml +7 -0
- package/main/default/objects/object_functions/fields/name.field.yml +8 -0
- package/main/default/objects/object_functions/fields/objectApiName.field.yml +7 -0
- package/main/default/objects/object_functions/fields/record_permissions.field.yml +4 -0
- package/main/default/objects/object_functions/fields/script.field.yml +24 -0
- package/main/default/objects/object_functions/listviews/all.listview.yml +9 -0
- package/main/default/objects/object_functions/listviews/customize.listview.yml +13 -0
- package/main/default/objects/object_functions/object_functions.object.yml +8 -0
- package/main/default/objects/object_functions/permissions/admin.permission.yml +7 -0
- package/main/default/objects/object_functions/permissions/user.permission.yml +7 -0
- package/main/default/objects/object_listviews/buttons/customize.button.js +1 -1
- package/main/default/objects/object_triggers/fields/_name.field.yml +1 -0
- package/main/default/objects/object_triggers/fields/isEnabled.field.yml +1 -0
- package/main/default/objects/object_triggers/fields/listenTo.field.yml +1 -0
- package/main/default/objects/object_triggers/fields/name.field.yml +1 -0
- package/main/default/objects/object_triggers/fields/when.field.yml +1 -0
- package/main/default/objects/object_validation_rules/fields/active.field.yml +1 -0
- package/main/default/objects/object_validation_rules/fields/description.field.yml +1 -0
- package/main/default/objects/object_validation_rules/fields/name.field.yml +2 -0
- package/main/default/objects/object_validation_rules/fields/object_name.field.yml +1 -0
- package/main/default/objects/object_webhooks/fields/active.field.yml +5 -0
- package/main/default/objects/object_webhooks/fields/condition.field.yml +6 -0
- package/main/default/objects/object_webhooks/fields/content_type.field.yml +5 -0
- package/main/default/objects/object_webhooks/fields/event.field.yml +16 -0
- package/main/default/objects/object_webhooks/fields/execute_when.field.yml +13 -0
- package/main/default/objects/object_webhooks/fields/fields.field.yml +28 -0
- package/main/default/objects/object_webhooks/fields/name.field.yml +7 -0
- package/main/default/objects/object_webhooks/fields/object_name.field.yml +10 -0
- package/main/default/objects/object_webhooks/fields/payload_url.field.yml +9 -0
- package/main/default/objects/object_webhooks/listviews/all.listview.yml +9 -0
- package/main/default/objects/object_webhooks/object_webhooks.object.yml +5 -0
- package/main/default/objects/object_webhooks/permissions/admin.permission.yml +7 -0
- package/main/default/objects/object_webhooks/permissions/user.permission.yml +7 -0
- package/main/default/objects/objects/fields/description.field.yml +1 -0
- package/main/default/objects/objects/fields/enable_form_tabs.field.yml +6 -0
- package/main/default/objects/objects/fields/in_development.field.yml +2 -0
- package/main/default/objects/objects/fields/is_customize.field.yml +1 -0
- package/main/default/objects/objects/fields/is_system.field.yml +1 -0
- package/main/default/objects/objects/listviews/customize.listview.yml +1 -1
- package/main/default/pages/design_field_layout.page.amis.json +285 -215
- package/main/default/pages/object_detail.page.amis.json +13 -0
- package/main/default/pages/object_fields_form.page.amis.json +38 -10
- package/main/default/pages/object_webhooks_form.page.amis.json +51 -0
- package/main/default/pages/object_webhooks_form.page.yml +12 -0
- package/main/default/server/object_fields.object.js +4 -2
- package/main/default/server/objects.object.js +2 -1
- package/main/default/services/object_webhooks.service.js +141 -0
- package/main/default/services/suggestions.service.js +92 -0
- package/main/default/triggers/datasources.trigger.js +9 -2
- package/main/default/triggers/object_actions.trigger.js +6 -4
- package/main/default/triggers/object_fields.trigger.js +3 -25
- package/main/default/triggers/object_functions.trigger.js +104 -0
- package/main/default/triggers/object_triggers.trigger.js +2 -2
- package/main/default/triggers/object_validation_rules.trigger.js +4 -5
- package/main/default/triggers/objects.trigger.js +20 -3
- package/package.json +8 -4
- package/package.service.js +3 -2
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
name: object_functions
|
|
2
|
+
label: Object Functions
|
|
3
|
+
description:
|
|
4
|
+
fields:
|
|
5
|
+
_name:
|
|
6
|
+
label: API Name
|
|
7
|
+
help: >-
|
|
8
|
+
Can only contain lowercase letters and numbers, must start with a letter,
|
|
9
|
+
cannot end with an underscore character or contain two consecutive
|
|
10
|
+
underscore characters
|
|
11
|
+
description:
|
|
12
|
+
is_rest:
|
|
13
|
+
label: Enable API
|
|
14
|
+
help:
|
|
15
|
+
description: allow the use of api interface access:/api/v1/:objectName/functions/:functionApiName
|
|
16
|
+
is_system:
|
|
17
|
+
label: System
|
|
18
|
+
help:
|
|
19
|
+
description:
|
|
20
|
+
isEnabled:
|
|
21
|
+
label: Enable
|
|
22
|
+
help:
|
|
23
|
+
description:
|
|
24
|
+
name:
|
|
25
|
+
label: Name
|
|
26
|
+
help:
|
|
27
|
+
description:
|
|
28
|
+
objectApiName:
|
|
29
|
+
label: Object
|
|
30
|
+
help:
|
|
31
|
+
description:
|
|
32
|
+
script:
|
|
33
|
+
label: Script
|
|
34
|
+
help:
|
|
35
|
+
description: |
|
|
36
|
+
async function run({
|
|
37
|
+
input,
|
|
38
|
+
params,
|
|
39
|
+
broker,
|
|
40
|
+
getObject,
|
|
41
|
+
getUser
|
|
42
|
+
} = ctx) {
|
|
43
|
+
// ...
|
|
44
|
+
}
|
|
45
|
+
type:
|
|
46
|
+
label: Type
|
|
47
|
+
help:
|
|
48
|
+
description:
|
|
49
|
+
options:
|
|
50
|
+
- label: "Script"
|
|
51
|
+
value: "script"
|
|
52
|
+
description:
|
|
53
|
+
label: Description
|
|
54
|
+
help:
|
|
55
|
+
description:
|
|
56
|
+
listviews:
|
|
57
|
+
all:
|
|
58
|
+
label: All
|
|
59
|
+
customize:
|
|
60
|
+
label: Customize
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
name: object_functions
|
|
2
|
+
label: 对象函数
|
|
3
|
+
description:
|
|
4
|
+
fields:
|
|
5
|
+
_name:
|
|
6
|
+
label: API 名称
|
|
7
|
+
help: API 名称只能包含小写字母、数字,必须以字母开头,不能以下划线字符结尾或包含两个连续的下划线字符
|
|
8
|
+
description:
|
|
9
|
+
is_rest:
|
|
10
|
+
label: 启用API
|
|
11
|
+
help:
|
|
12
|
+
description: 允许使用API接口访问:{POST} /api/v1/:objectName/functions/:functionApiName
|
|
13
|
+
is_system:
|
|
14
|
+
label: 系统
|
|
15
|
+
help:
|
|
16
|
+
description:
|
|
17
|
+
isEnabled:
|
|
18
|
+
label: 已启用
|
|
19
|
+
help:
|
|
20
|
+
description:
|
|
21
|
+
name:
|
|
22
|
+
label: 名称
|
|
23
|
+
help:
|
|
24
|
+
description:
|
|
25
|
+
objectApiName:
|
|
26
|
+
label: 所属对象
|
|
27
|
+
help:
|
|
28
|
+
description:
|
|
29
|
+
script:
|
|
30
|
+
label: 代码
|
|
31
|
+
help:
|
|
32
|
+
description: |
|
|
33
|
+
async function run({
|
|
34
|
+
input,
|
|
35
|
+
params,
|
|
36
|
+
broker,
|
|
37
|
+
getObject,
|
|
38
|
+
getUser
|
|
39
|
+
} = ctx) {
|
|
40
|
+
// ...
|
|
41
|
+
}
|
|
42
|
+
type:
|
|
43
|
+
label: 类型
|
|
44
|
+
help:
|
|
45
|
+
description:
|
|
46
|
+
options:
|
|
47
|
+
- label: "Script"
|
|
48
|
+
value: "script"
|
|
49
|
+
description:
|
|
50
|
+
label: 备注
|
|
51
|
+
help:
|
|
52
|
+
description:
|
|
53
|
+
listviews:
|
|
54
|
+
all:
|
|
55
|
+
label: 所有
|
|
56
|
+
customize:
|
|
57
|
+
label: 自定义
|
package/main/default/objectTranslations/object_webhooks.en/object_webhooks.en.objectTranslation.yml
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
name: object_webhooks
|
|
2
|
+
label: Object Webhook
|
|
3
|
+
description:
|
|
4
|
+
fields:
|
|
5
|
+
name:
|
|
6
|
+
label: Name
|
|
7
|
+
help:
|
|
8
|
+
description:
|
|
9
|
+
object_name:
|
|
10
|
+
label: Object
|
|
11
|
+
help:
|
|
12
|
+
description:
|
|
13
|
+
events:
|
|
14
|
+
label: Events
|
|
15
|
+
help:
|
|
16
|
+
options:
|
|
17
|
+
- label: create
|
|
18
|
+
value: create
|
|
19
|
+
- label: update
|
|
20
|
+
value: update
|
|
21
|
+
- label: delete
|
|
22
|
+
value: delete
|
|
23
|
+
description:
|
|
24
|
+
fields:
|
|
25
|
+
label: Fields
|
|
26
|
+
help:
|
|
27
|
+
description:
|
|
28
|
+
payload_url:
|
|
29
|
+
label: Payload URL
|
|
30
|
+
help:
|
|
31
|
+
description:
|
|
32
|
+
content_type:
|
|
33
|
+
label: Format of Request
|
|
34
|
+
help:
|
|
35
|
+
description:
|
|
36
|
+
active:
|
|
37
|
+
label: Active
|
|
38
|
+
help:
|
|
39
|
+
description:
|
|
40
|
+
space:
|
|
41
|
+
label: Company
|
|
42
|
+
help:
|
|
43
|
+
description:
|
|
44
|
+
listviews:
|
|
45
|
+
all:
|
|
46
|
+
label: All Object Webhooks
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
name: object_webhooks
|
|
2
|
+
label: WebHooks
|
|
3
|
+
description:
|
|
4
|
+
fields:
|
|
5
|
+
name:
|
|
6
|
+
label: 名称
|
|
7
|
+
help:
|
|
8
|
+
description:
|
|
9
|
+
object_name:
|
|
10
|
+
label: 对象
|
|
11
|
+
help:
|
|
12
|
+
description:
|
|
13
|
+
events:
|
|
14
|
+
label: 何时触发
|
|
15
|
+
help:
|
|
16
|
+
options:
|
|
17
|
+
- label: 记录已创建
|
|
18
|
+
value: create
|
|
19
|
+
- label: 记录已更新
|
|
20
|
+
value: update
|
|
21
|
+
- label: 记录已创建或已更新
|
|
22
|
+
value: createAndUpdate
|
|
23
|
+
- label: 记录已删除
|
|
24
|
+
value: delete
|
|
25
|
+
description:
|
|
26
|
+
fields:
|
|
27
|
+
label: 推送字段
|
|
28
|
+
help:
|
|
29
|
+
description:
|
|
30
|
+
payload_url:
|
|
31
|
+
label: URL
|
|
32
|
+
help:
|
|
33
|
+
description:
|
|
34
|
+
content_type:
|
|
35
|
+
label: 请求数据格式
|
|
36
|
+
help:
|
|
37
|
+
description:
|
|
38
|
+
active:
|
|
39
|
+
label: 激活
|
|
40
|
+
help:
|
|
41
|
+
description:
|
|
42
|
+
space:
|
|
43
|
+
label: 所属工作区
|
|
44
|
+
help:
|
|
45
|
+
description:
|
|
46
|
+
listviews:
|
|
47
|
+
all:
|
|
48
|
+
label: 所有
|
|
@@ -54,6 +54,10 @@ fields:
|
|
|
54
54
|
label: Enable Notes
|
|
55
55
|
help:
|
|
56
56
|
description:
|
|
57
|
+
enable_form_tabs:
|
|
58
|
+
label: Enable Form Tabs
|
|
59
|
+
help: This feature exclusively affects the editable pages, with precedence given to configurations specified on the components.
|
|
60
|
+
description:
|
|
57
61
|
enable_events:
|
|
58
62
|
label: Enable Events
|
|
59
63
|
help:
|
|
@@ -4,17 +4,19 @@ depend_on:
|
|
|
4
4
|
filtersFunction: !<tag:yaml.org,2002:js/function> |-
|
|
5
5
|
function(filters,values
|
|
6
6
|
) {
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
var currentFilter = [];
|
|
8
|
+
//当前字段为多选时,from的字段不能选择multiple为true的
|
|
9
|
+
if (values.multiple) {
|
|
10
|
+
currentFilter.push(['multiple', '!=', true]);
|
|
11
|
+
}
|
|
9
12
|
|
|
10
13
|
if(values && values.reference_to){
|
|
11
|
-
|
|
14
|
+
currentFilter.push(['object', '=', values.reference_to]);
|
|
12
15
|
}else{
|
|
13
|
-
|
|
16
|
+
currentFilter.push(['_id', '=', 'no']);
|
|
14
17
|
}
|
|
15
18
|
|
|
16
|
-
|
|
17
|
-
|
|
19
|
+
return currentFilter;
|
|
18
20
|
}
|
|
19
21
|
group: auto_fill
|
|
20
22
|
hidden: false
|
|
@@ -24,6 +24,19 @@ filtersFunction: !<tag:yaml.org,2002:js/function> |-
|
|
|
24
24
|
var referenceObject = BuilderAmisObject && BuilderAmisObject.AmisLib && BuilderAmisObject.AmisLib.getUISchemaSync(values.reference_to);
|
|
25
25
|
var fromField = referenceObject && referenceObject.fields[values.from];
|
|
26
26
|
|
|
27
|
+
if (values.multiple) {
|
|
28
|
+
//当前字段为多选时,若from的字段类型为lookup、master_detail、select时,to的字段则必须选择multiple为true的
|
|
29
|
+
if (_.includes(["lookup","master_detail","select"], fromField.type)) {
|
|
30
|
+
currentFilter.push(['multiple', '=', true]);
|
|
31
|
+
}
|
|
32
|
+
}else {
|
|
33
|
+
//当前字段为单选时,若from的字段多选,to的字段则也必须多选;若from不是多选,则to也不能是多选
|
|
34
|
+
if (fromField.multiple){
|
|
35
|
+
currentFilter.push(['multiple', '=', true]);
|
|
36
|
+
} else {
|
|
37
|
+
currentFilter.push(['multiple', '!=', true]);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
27
40
|
if (fromField && fromField.data_type) {
|
|
28
41
|
currentFilter.push(['type', 'in', fieldFilters[fromField.data_type] || fromField.data_type.split()]);
|
|
29
42
|
}else if (fromField) {
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @Author: 孙浩林 sunhaolin@steedos.com
|
|
3
|
+
* @Date: 2024-05-14 17:04:31
|
|
4
|
+
* @LastEditors: 孙浩林 sunhaolin@steedos.com
|
|
5
|
+
* @LastEditTime: 2024-05-14 17:04:36
|
|
6
|
+
* @FilePath: /steedos-platform-2.3/services/standard-object-database/main/default/objects/object_functions/buttons/standard_new.button.js
|
|
7
|
+
* @Description:
|
|
8
|
+
*/
|
|
9
|
+
module.exports = {
|
|
10
|
+
standard_newVisible: function (object_name, record_id, record_permissions, data) {
|
|
11
|
+
if(Meteor.settings.public.enable_saas){
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
return Creator.baseObject.actions.standard_new.visible.apply(this, arguments);
|
|
15
|
+
},
|
|
16
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
name: script
|
|
2
|
+
label: Script
|
|
3
|
+
type: code
|
|
4
|
+
language: javascript
|
|
5
|
+
is_wide: true
|
|
6
|
+
required: true
|
|
7
|
+
defaultValue: |-
|
|
8
|
+
// global: {_:lodash, moment, validator, filters}
|
|
9
|
+
// objects
|
|
10
|
+
// ctx.input
|
|
11
|
+
editorDidMount: >-
|
|
12
|
+
if(window._registerCompletionItemProviderFunction){
|
|
13
|
+
return ;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
window._registerCompletionItemProviderFunction = true;
|
|
17
|
+
|
|
18
|
+
const result = Steedos.authRequest("/service/api/suggestions/function.d.ts",
|
|
19
|
+
{async: false});
|
|
20
|
+
|
|
21
|
+
monaco.languages.typescript.javascriptDefaults.addExtraLib(
|
|
22
|
+
result
|
|
23
|
+
);
|
|
24
|
+
sort_no: 150
|
|
@@ -26,6 +26,6 @@ customize:function (object_name, record_id, fields) {
|
|
|
26
26
|
},
|
|
27
27
|
customizeVisible:function(object_name, record_id, record_permissions, data){
|
|
28
28
|
var record = data && data.record;
|
|
29
|
-
return Creator.baseObject.actions.standard_new.visible() && record.is_system;
|
|
29
|
+
return Creator.baseObject.actions.standard_new.visible(object_name) && record.is_system;
|
|
30
30
|
}
|
|
31
31
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
name: event
|
|
2
|
+
type: select
|
|
3
|
+
label: 何时触发
|
|
4
|
+
required: true
|
|
5
|
+
multiple: false
|
|
6
|
+
sort_no: 30
|
|
7
|
+
options:
|
|
8
|
+
- label: 记录已创建
|
|
9
|
+
value: create
|
|
10
|
+
- label: 记录已更新
|
|
11
|
+
value: update
|
|
12
|
+
- label: 记录已创建或已更新
|
|
13
|
+
value: createAndUpdate
|
|
14
|
+
- label: 记录已删除
|
|
15
|
+
value: delete
|
|
16
|
+
filterable: true
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
name: execute_when
|
|
2
|
+
label: 何时运行更新记录的webhook
|
|
3
|
+
type: select
|
|
4
|
+
inlineHelpText: 您可能希望仅在将触发记录从不满足条件要求更改为满足条件要求时运行。在出现此情况时,选择第二个选项。
|
|
5
|
+
visible_on: ${!!condition && (event === 'update' || event === 'createAndUpdate')}
|
|
6
|
+
sort_no: 50
|
|
7
|
+
is_wide: true
|
|
8
|
+
options:
|
|
9
|
+
- label: 每次更新记录并满足条件要求
|
|
10
|
+
value: trueEveryTime
|
|
11
|
+
- label: 仅在更新记录以满足条件要求时
|
|
12
|
+
value: trueOnChangeOnly
|
|
13
|
+
filterable: true
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
name: fields
|
|
2
|
+
type: lookup
|
|
3
|
+
label: Fields
|
|
4
|
+
multiple: true
|
|
5
|
+
is_wide: true
|
|
6
|
+
sort_no: 60
|
|
7
|
+
description: 如果未配置, 则推送所有字段
|
|
8
|
+
depend_on:
|
|
9
|
+
- object_name
|
|
10
|
+
optionsFunction: !!js/function |
|
|
11
|
+
function(values) {
|
|
12
|
+
var _object, _options, fields, icon, object_name;
|
|
13
|
+
object_name = values.object_name;
|
|
14
|
+
if (!object_name) {
|
|
15
|
+
return [];
|
|
16
|
+
}
|
|
17
|
+
_options = [];
|
|
18
|
+
_object = Creator.getObject(object_name);
|
|
19
|
+
fields = _object.fields;
|
|
20
|
+
icon = _object.icon;
|
|
21
|
+
_.forEach(fields, function(f, k) {
|
|
22
|
+
return _options.push({
|
|
23
|
+
label: f.label || k,
|
|
24
|
+
value: k
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
return _options;
|
|
28
|
+
}
|