@steedos/standard-object-database 2.7.1-beta.3 → 2.7.1-beta.31

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.
Files changed (69) hide show
  1. package/main/default/objectTranslations/object_functions.en/object_functions.en.objectTranslation.yml +47 -0
  2. package/main/default/objectTranslations/object_functions.zh-CN/object_functions.zh-CN.objectTranslation.yml +44 -0
  3. package/main/default/objectTranslations/objects.en/objects.en.objectTranslation.yml +4 -0
  4. package/main/default/objectTranslations/objects.zh-CN/objects.zh-CN.objectTranslation.yml +4 -0
  5. package/main/default/objects/datasources/fields/driver.field.yml +1 -0
  6. package/main/default/objects/datasources/fields/is_enable.field.yml +1 -0
  7. package/main/default/objects/datasources/fields/label.field.yml +2 -0
  8. package/main/default/objects/datasources/fields/name.field.yml +1 -0
  9. package/main/default/objects/object_fields/fields/auto_fill_mapping.$.from.field.yml +8 -6
  10. package/main/default/objects/object_fields/fields/auto_fill_mapping.$.to.field.yml +15 -0
  11. package/main/default/objects/object_fields/fields/auto_fill_mapping.field.yml +1 -1
  12. package/main/default/objects/object_fields/fields/is_name.field.yml +1 -0
  13. package/main/default/objects/object_fields/fields/sortable.field.yml +1 -1
  14. package/main/default/objects/object_fields/fields/summary_filters.field.yml +1 -1
  15. package/main/default/objects/object_functions/buttons/standard_new.button.js +16 -0
  16. package/main/default/objects/object_functions/fields/_name.field.yml +7 -0
  17. package/main/default/objects/object_functions/fields/description.field.yml +5 -0
  18. package/main/default/objects/object_functions/fields/isEnabled.field.yml +5 -0
  19. package/main/default/objects/object_functions/fields/is_rest.field.yml +5 -0
  20. package/main/default/objects/object_functions/fields/is_system.field.yml +7 -0
  21. package/main/default/objects/object_functions/fields/name.field.yml +8 -0
  22. package/main/default/objects/object_functions/fields/objectApiName.field.yml +7 -0
  23. package/main/default/objects/object_functions/fields/record_permissions.field.yml +4 -0
  24. package/main/default/objects/object_functions/fields/script.field.yml +24 -0
  25. package/main/default/objects/object_functions/listviews/all.listview.yml +9 -0
  26. package/main/default/objects/object_functions/listviews/customize.listview.yml +13 -0
  27. package/main/default/objects/object_functions/object_functions.object.yml +8 -0
  28. package/main/default/objects/object_functions/permissions/admin.permission.yml +7 -0
  29. package/main/default/objects/object_functions/permissions/user.permission.yml +7 -0
  30. package/main/default/objects/object_listviews/buttons/customize.button.js +1 -1
  31. package/main/default/objects/object_triggers/fields/_name.field.yml +1 -0
  32. package/main/default/objects/object_triggers/fields/isEnabled.field.yml +1 -0
  33. package/main/default/objects/object_triggers/fields/listenTo.field.yml +1 -0
  34. package/main/default/objects/object_triggers/fields/name.field.yml +1 -0
  35. package/main/default/objects/object_triggers/fields/when.field.yml +1 -0
  36. package/main/default/objects/object_validation_rules/fields/active.field.yml +1 -0
  37. package/main/default/objects/object_validation_rules/fields/description.field.yml +1 -0
  38. package/main/default/objects/object_validation_rules/fields/name.field.yml +2 -0
  39. package/main/default/objects/object_validation_rules/fields/object_name.field.yml +1 -0
  40. package/main/default/objects/object_webhooks/fields/event.field.yml +2 -1
  41. package/main/default/objects/object_webhooks/fields/execute_when.field.yml +2 -1
  42. package/main/default/objects/object_webhooks/fields/fields.field.yml +1 -0
  43. package/main/default/objects/object_webhooks/fields/name.field.yml +3 -1
  44. package/main/default/objects/object_webhooks/fields/object_name.field.yml +3 -1
  45. package/main/default/objects/object_webhooks/fields/payload_url.field.yml +3 -1
  46. package/main/default/objects/objects/fields/description.field.yml +1 -0
  47. package/main/default/objects/objects/fields/enable_form_tabs.field.yml +7 -0
  48. package/main/default/objects/objects/fields/in_development.field.yml +2 -0
  49. package/main/default/objects/objects/fields/is_customize.field.yml +1 -0
  50. package/main/default/objects/objects/fields/is_system.field.yml +1 -0
  51. package/main/default/objects/objects/listviews/customize.listview.yml +1 -1
  52. package/main/default/pages/design_field_layout.page.amis.json +285 -215
  53. package/main/default/pages/object_detail.page.amis.json +13 -0
  54. package/main/default/pages/object_fields_form.page.amis.json +38 -10
  55. package/main/default/pages/object_webhooks_form.page.amis.json +1 -1
  56. package/main/default/server/object_fields.object.js +4 -2
  57. package/main/default/server/objects.core.js +4 -0
  58. package/main/default/server/objects.object.js +2 -1
  59. package/main/default/services/object_webhooks.service.js +12 -7
  60. package/main/default/services/suggestions.service.js +92 -0
  61. package/main/default/triggers/datasources.trigger.js +9 -2
  62. package/main/default/triggers/object_actions.trigger.js +6 -4
  63. package/main/default/triggers/object_fields.trigger.js +3 -25
  64. package/main/default/triggers/object_functions.trigger.js +104 -0
  65. package/main/default/triggers/object_triggers.trigger.js +2 -2
  66. package/main/default/triggers/object_validation_rules.trigger.js +4 -5
  67. package/main/default/triggers/objects.trigger.js +20 -3
  68. package/package.json +6 -5
  69. package/package.service.js +3 -2
@@ -0,0 +1,47 @@
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:{POST/GET} /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(ctx) {
37
+ // ...
38
+ }
39
+ description:
40
+ label: Description
41
+ help:
42
+ description:
43
+ listviews:
44
+ all:
45
+ label: All
46
+ customize:
47
+ label: Customize
@@ -0,0 +1,44 @@
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/GET} /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(ctx) {
34
+ // ...
35
+ }
36
+ description:
37
+ label: 备注
38
+ help:
39
+ description:
40
+ listviews:
41
+ all:
42
+ label: 所有
43
+ customize:
44
+ 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: Displays groups in tabbed mode in the form, recognizing this property only when editing mode.
60
+ description:
57
61
  enable_events:
58
62
  label: Enable Events
59
63
  help:
@@ -51,6 +51,10 @@ fields:
51
51
  label: 允许添加备注
52
52
  help:
53
53
  description:
54
+ enable_form_tabs:
55
+ label: 是否显示为选项卡模式
56
+ help: 在表单中以选项卡模式显示分组,只在编辑模式时识别该属性
57
+ description:
54
58
  enable_events:
55
59
  label: 允许添加日程
56
60
  help:
@@ -6,3 +6,4 @@ options: >-
6
6
  Server:sqlserver,PostgreSQL:postgres,Oracle:oracle,MySQL:mysql,Sqlite:sqlite
7
7
  required: true
8
8
  sort_no: 100
9
+ filterable: true
@@ -2,3 +2,4 @@ name: is_enable
2
2
  type: boolean
3
3
  label: Enable
4
4
  sort_no: 250
5
+ filterable: true
@@ -4,3 +4,5 @@ label: Label
4
4
  required: true
5
5
  is_name: true
6
6
  sort_no: 110
7
+ filterable: true
8
+ searchable: true
@@ -9,3 +9,4 @@ inlineHelpText: >-
9
9
  cannot end with an underscore character or contain two consecutive underscore
10
10
  characters
11
11
  sort_no: 120
12
+ filterable: true
@@ -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
- return ['object', '=', values.reference_to]
14
+ currentFilter.push(['object', '=', values.reference_to]);
12
15
  }else{
13
- return ['_id', '=', 'no']
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) {
@@ -60,3 +73,5 @@ reference_to_field: name
60
73
  required: true
61
74
  sort_no: 530
62
75
  type: lookup
76
+ amis:
77
+ disabledOn: ${!from}
@@ -13,4 +13,4 @@ sort_no: 500
13
13
  type: table
14
14
  visible_on: >-
15
15
  {{(formData.type === 'lookup' || formData.type === 'master_detail') &&
16
- formData.reference_to && !!!formData.multiple}}
16
+ formData.reference_to}}
@@ -6,3 +6,4 @@ hidden: false
6
6
  label: Is Name
7
7
  sort_no: 650
8
8
  type: boolean
9
+ visible_on: ${ARRAYSOME(['text', 'textarea', 'autonumber', 'date', 'datetime', 'time', 'formula', 'lookup', 'master_detail'], item => item === type) && !multiple}
@@ -1,7 +1,7 @@
1
1
  name: sortable
2
- defaultValue: true
3
2
  group: Advanced
4
3
  hidden: false
5
4
  label: Sortable
6
5
  sort_no: 580
7
6
  type: boolean
7
+ visible_on: '{{ ["image","file","lookup","master_detail","select"].indexOf(formData.type)<0 }}'
@@ -13,4 +13,4 @@ is_wide: true
13
13
  label: Filter Criteria
14
14
  sort_no: 280
15
15
  type: table
16
- visible_on: '{{formData.type === ''summary'' && global.mode !=''read'' ? true: false}}'
16
+ visible_on: '{{formData.type === ''summary''}}'
@@ -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,7 @@
1
+ name: _name
2
+ type: text
3
+ label: Api Name
4
+ searchable: true
5
+ index: true
6
+ required: true
7
+ sort_no: 100
@@ -0,0 +1,5 @@
1
+ name: description
2
+ label: Description
3
+ type: textarea
4
+ sort_no: 200
5
+ is_wide: true
@@ -0,0 +1,5 @@
1
+ name: isEnabled
2
+ label: Enabled
3
+ type: boolean
4
+ defaultValue: true
5
+ sort_no: 140
@@ -0,0 +1,5 @@
1
+ name: is_rest
2
+ type: boolean
3
+ label: Rest
4
+ sort_no: 170
5
+ defaultValue: true
@@ -0,0 +1,7 @@
1
+ name: is_system
2
+ type: boolean
3
+ label: System
4
+ readonly: true
5
+ visible_on: '{{global.mode ===''read'' ? true : false}}'
6
+ disabled: true
7
+ sort_no: 180
@@ -0,0 +1,8 @@
1
+ name: name
2
+ hidden: false
3
+ label: Name
4
+ required: false
5
+ sort_no: 90
6
+ type: text
7
+ visible_on: '{{false}}'
8
+ readonly: true
@@ -0,0 +1,7 @@
1
+ name: objectApiName
2
+ label: Object
3
+ type: master_detail
4
+ reference_to: objects
5
+ reference_to_field: name
6
+ required: true
7
+ sort_no: 120
@@ -0,0 +1,4 @@
1
+ name: record_permissions
2
+ type: object
3
+ visible_on: '{{global.mode ===''read'' ? true : false}}'
4
+ sort_no: 160
@@ -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, params, broker, getObject, getUser}
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
@@ -0,0 +1,9 @@
1
+ name: all
2
+ columns:
3
+ - name
4
+ - objectApiName
5
+ - isEnabled
6
+ - is_rest
7
+ - is_system
8
+ label: All
9
+ filter_scope: space
@@ -0,0 +1,13 @@
1
+ name: customize
2
+ columns:
3
+ - name
4
+ - objectApiName
5
+ - isEnabled
6
+ - is_rest
7
+ - is_system
8
+ label: 自定义
9
+ filters:
10
+ - - is_system
11
+ - <>
12
+ - true
13
+ filter_scope: space
@@ -0,0 +1,8 @@
1
+ name: object_functions
2
+ icon: code_playground
3
+ label: Object Functions
4
+ version: 2
5
+ hidden: true
6
+ enable_dataloader: false
7
+ paging:
8
+ enabled: false
@@ -0,0 +1,7 @@
1
+ permission_set_id: admin
2
+ allowCreate: true
3
+ allowDelete: true
4
+ allowEdit: true
5
+ allowRead: true
6
+ modifyAllRecords: true
7
+ viewAllRecords: true
@@ -0,0 +1,7 @@
1
+ permission_set_id: user
2
+ allowCreate: false
3
+ allowDelete: false
4
+ allowEdit: false
5
+ allowRead: false
6
+ modifyAllRecords: false
7
+ viewAllRecords: false
@@ -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
  }
@@ -5,3 +5,4 @@ searchable: true
5
5
  index: true
6
6
  required: true
7
7
  sort_no: 100
8
+ filterable: true
@@ -3,3 +3,4 @@ label: Enabled
3
3
  type: boolean
4
4
  defaultValue: true
5
5
  sort_no: 140
6
+ filterable: true
@@ -5,3 +5,4 @@ reference_to: objects
5
5
  reference_to_field: name
6
6
  required: true
7
7
  sort_no: 120
8
+ filterable: true
@@ -3,3 +3,4 @@ data_type: text
3
3
  type: text
4
4
  visible_on: '{{false}}'
5
5
  sort_no: 110
6
+ filterable: true
@@ -20,3 +20,4 @@ options:
20
20
  - label: 查询记录之前
21
21
  value: beforeFind
22
22
  sort_no: 130
23
+ filterable: true
@@ -5,3 +5,4 @@ inlineHelpText: >-
5
5
  Indicates whether this validation rule is active, (true), or not active
6
6
  (false).
7
7
  sort_no: 120
8
+ filterable: true
@@ -3,3 +3,4 @@ type: textarea
3
3
  is_wide: true
4
4
  label: description
5
5
  sort_no: 130
6
+ filterable: true
@@ -3,3 +3,5 @@ type: text
3
3
  label: Name
4
4
  required: true
5
5
  sort_no: 100
6
+ filterable: true
7
+ searchable: true
@@ -6,3 +6,4 @@ write_requires_master_read: true
6
6
  reference_to_field: name
7
7
  required: true
8
8
  sort_no: 110
9
+ filterable: true
@@ -12,4 +12,5 @@ options:
12
12
  - label: 记录已创建或已更新
13
13
  value: createAndUpdate
14
14
  - label: 记录已删除
15
- value: delete
15
+ value: delete
16
+ filterable: true
@@ -9,4 +9,5 @@ options:
9
9
  - label: 每次更新记录并满足条件要求
10
10
  value: trueEveryTime
11
11
  - label: 仅在更新记录以满足条件要求时
12
- value: trueOnChangeOnly
12
+ value: trueOnChangeOnly
13
+ filterable: true
@@ -4,6 +4,7 @@ label: Fields
4
4
  multiple: true
5
5
  is_wide: true
6
6
  sort_no: 60
7
+ description: 如果未配置, 则推送所有字段
7
8
  depend_on:
8
9
  - object_name
9
10
  optionsFunction: !!js/function |
@@ -2,4 +2,6 @@ name: name
2
2
  type: text
3
3
  label: Name
4
4
  required: true
5
- sort_no: 10
5
+ sort_no: 10
6
+ filterable: true
7
+ searchable: true
@@ -5,4 +5,6 @@ reference_to_field: name
5
5
  label: Object
6
6
  required: true
7
7
  index: true
8
- sort_no: 20
8
+ sort_no: 20
9
+ searchable: true
10
+ filterable: true
@@ -4,4 +4,6 @@ type: text
4
4
  is_wide: true
5
5
  # regEx: /^(?:(?:https?|ftp):\/\/)(?:\S+(?::\S*)?@)?(?:(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]+-?)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]+-?)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/i
6
6
  required: true
7
- sort_no: 70
7
+ sort_no: 70
8
+ filterable: true
9
+ searchable: true
@@ -4,3 +4,4 @@ is_wide: true
4
4
  label: Description
5
5
  sort_no: 50
6
6
  type: textarea
7
+ filterable: true
@@ -0,0 +1,7 @@
1
+ # 只影响编辑页面
2
+ name: enable_form_tabs
3
+ group: switch
4
+ label: Enable Form Tabs
5
+ sort_no: 461
6
+ type: boolean
7
+ inlineHelpText: This feature exclusively affects the editable pages, with precedence given to configurations specified on the components.
@@ -13,3 +13,5 @@ options:
13
13
  required: true
14
14
  sort_no: 40
15
15
  type: select
16
+ filterable: true
17
+
@@ -4,3 +4,4 @@ label: 是否自定义
4
4
  readonly: true
5
5
  sort_no: 100
6
6
  type: boolean
7
+ filterable: true
@@ -6,3 +6,4 @@ readonly: true
6
6
  sort_no: 110
7
7
  type: boolean
8
8
  visible_on: '{{global.mode ===''read'' ? true : false}}'
9
+ filterable: true
@@ -12,7 +12,7 @@ extra_columns:
12
12
  filter_scope: space
13
13
  filters:
14
14
  - - is_customize
15
- - <>
15
+ - =
16
16
  - true
17
17
  label: Customize
18
18
  shared: true