@steedos/service-core-objects 3.0.0-beta.9 → 3.0.0-beta.92

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 (142) hide show
  1. package/main/default/client/{topic.client.js → css.client.js} +2 -1
  2. package/main/default/client/socket.client.js +118 -0
  3. package/main/default/objectTranslations/base.en/base.en.objectTranslation.yml +2 -0
  4. package/main/default/objectTranslations/base.zh-CN/base.zh-CN.objectTranslation.yml +2 -0
  5. package/main/default/objectTranslations/cms_files.en/cms_files.en.objectTranslation.yml +7 -1
  6. package/main/default/objectTranslations/cms_files.zh-CN/cms_files.zh-CN.objectTranslation.yml +7 -1
  7. package/main/default/objectTranslations/datasources.zh-CN/datasources.zh-CN.objectTranslation.yml +1 -1
  8. package/main/default/objectTranslations/instances.en/instances.en.objectTranslation.yml +45 -0
  9. package/main/default/objectTranslations/instances.zh-CN/instances.zh-CN.objectTranslation.yml +42 -0
  10. package/main/default/objectTranslations/license.en/license.en.objectTranslation.yml +1 -1
  11. package/main/default/objectTranslations/object_actions.zh-CN/object_actions.zh-CN.objectTranslation.yml +1 -1
  12. package/main/default/objectTranslations/object_fields.en/object_fields.en.objectTranslation.yml +1 -5
  13. package/main/default/objectTranslations/object_fields.zh-CN/object_fields.zh-CN.objectTranslation.yml +3 -3
  14. package/main/default/objectTranslations/object_functions.zh-CN/object_functions.zh-CN.objectTranslation.yml +1 -1
  15. package/main/default/objectTranslations/object_layouts.zh-CN/object_layouts.zh-CN.objectTranslation.yml +1 -1
  16. package/main/default/objectTranslations/object_listviews.en/object_listviews.en.objectTranslation.yml +3 -1
  17. package/main/default/objectTranslations/object_listviews.zh-CN/object_listviews.zh-CN.objectTranslation.yml +5 -3
  18. package/main/default/objectTranslations/objects.en/objects.en.objectTranslation.yml +23 -18
  19. package/main/default/objectTranslations/objects.zh-CN/objects.zh-CN.objectTranslation.yml +39 -25
  20. package/main/default/objectTranslations/operation_logs.en/operation_logs.en.objectTranslation.yml +66 -0
  21. package/main/default/objectTranslations/operation_logs.zh-CN/operation_logs.zh-CN.objectTranslation.yml +66 -0
  22. package/main/default/objectTranslations/space_users.en/space_users.en.objectTranslation.yml +17 -0
  23. package/main/default/objectTranslations/space_users.zh-CN/space_users.zh-CN.objectTranslation.yml +17 -1
  24. package/main/default/objects/_base/base.client.js +11 -10
  25. package/main/default/objects/_base/base.object.js +279 -105
  26. package/main/default/objects/_base/base.object.yml +8 -0
  27. package/main/default/objects/announcements.object.yml +68 -0
  28. package/main/default/objects/apps/apps.object.yml +25 -69
  29. package/main/default/objects/apps/buttons/disable.button.js +3 -1
  30. package/main/default/objects/apps/buttons/enable.button.js +3 -1
  31. package/main/default/objects/audit_records.object.yml +1 -1
  32. package/main/default/objects/cms_files/buttons/download.button.yml +1 -1
  33. package/main/default/objects/cms_files/cms_files.object.yml +6 -5
  34. package/main/default/objects/favorites.object.yml +65 -0
  35. package/main/default/objects/keyvalue/keyvalue.object.yml +1 -0
  36. package/main/default/objects/logs/logs.object.yml +1 -0
  37. package/main/default/objects/object_fields/buttons/recomputeFormulaValues.button.js +6 -2
  38. package/main/default/objects/object_fields/buttons/recomputeSummaryValues.button.js +6 -2
  39. package/main/default/objects/object_fields/buttons/standard_new.button.js +1 -1
  40. package/main/default/objects/object_fields/fields/_name.field.yml +1 -0
  41. package/main/default/objects/object_fields/fields/auto_fill_mapping.$.to.field.yml +28 -13
  42. package/main/default/objects/object_fields/fields/name.field.yml +1 -0
  43. package/main/default/objects/object_fields/fields/options.field.yml +1 -0
  44. package/main/default/objects/object_fields/fields/summary_filters.$.field.field.yml +16 -9
  45. package/main/default/objects/object_fields/fields/summary_filters.$.operation.field.yml +26 -29
  46. package/main/default/objects/object_fields/listviews/all.listview.yml +3 -1
  47. package/main/default/objects/object_fields/listviews/customize.listview.yml +3 -1
  48. package/main/default/objects/object_functions/fields/script.field.yml +1 -1
  49. package/main/default/objects/object_listviews/buttons/customize.button.js +36 -30
  50. package/main/default/objects/object_listviews/buttons/showDesign.button.js +6 -6
  51. package/main/default/objects/object_listviews/fields/adaptor.field.yml +2 -2
  52. package/main/default/objects/object_listviews/fields/crudDataFilter.field.yml +10 -0
  53. package/main/default/objects/object_listviews/fields/enable_amis_schema.field.yml +1 -0
  54. package/main/default/objects/object_listviews/fields/extra_columns.field.yml +18 -0
  55. package/main/default/objects/object_listviews/fields/requestAdaptor.field.yml +2 -2
  56. package/main/default/objects/object_listviews/object_listviews.object.yml +1 -1
  57. package/main/default/objects/object_triggers/fields/handler.field.yml +1 -1
  58. package/main/default/objects/object_webhooks/fields/fields.field.yml +1 -1
  59. package/main/default/objects/object_webhooks/object_webhooks.object.yml +1 -0
  60. package/main/default/objects/objects/buttons/custom.button.js +6 -35
  61. package/main/default/objects/objects/buttons/custom.button.yml +85 -1
  62. package/main/default/objects/objects/buttons/delete_object.button.yml +5 -4
  63. package/main/default/objects/objects/buttons/design_fields_layout.button.js +5 -2
  64. package/main/default/objects/objects/buttons/design_fields_layout.button.yml +1 -1
  65. package/main/default/objects/objects/buttons/reset.button.yml +6 -5
  66. package/main/default/objects/objects/buttons/show_object.button.js +2 -29
  67. package/main/default/objects/objects/fields/compactLayouts.field.yml +2 -2
  68. package/main/default/objects/objects/fields/enable_audit.field.yml +5 -0
  69. package/main/default/objects/objects/fields/enable_chatter.field.yml +5 -4
  70. package/main/default/objects/objects/fields/enable_dataloader.field.yml +0 -1
  71. package/main/default/objects/objects/fields/enable_enhanced_lookup.field.yml +0 -4
  72. package/main/default/objects/objects/fields/enable_events.field.yml +2 -2
  73. package/main/default/objects/objects/fields/enable_files.field.yml +1 -1
  74. package/main/default/objects/objects/fields/enable_form_tabs.field.yml +1 -2
  75. package/main/default/objects/objects/fields/enable_inline_edit.field.yml +1 -1
  76. package/main/default/objects/objects/fields/enable_instances.field.yml +2 -2
  77. package/main/default/objects/objects/fields/enable_lock_detail.field.yml +0 -1
  78. package/main/default/objects/objects/fields/enable_notes.field.yml +2 -2
  79. package/main/default/objects/objects/fields/enable_tasks.field.yml +1 -1
  80. package/main/default/objects/objects/fields/enable_tree.field.yml +0 -1
  81. package/main/default/objects/objects/fields/field_groups.field.yml +1 -1
  82. package/main/default/objects/objects/fields/in_development.field.yml +0 -1
  83. package/main/default/objects/objects/fields/is_deleted.field.yml +1 -0
  84. package/main/default/objects/objects/fields/name.field.yml +1 -4
  85. package/main/default/objects/objects/fields/table_name.field.yml +0 -1
  86. package/main/default/objects/objects/listviews/all.listview.yml +4 -1
  87. package/main/default/objects/objects/listviews/customize.listview.yml +3 -1
  88. package/main/default/objects/objects/listviews/deleted.listview.yml +3 -1
  89. package/main/default/objects/objects/listviews/metadata.listview.yml +3 -1
  90. package/main/default/objects/objects/listviews/system.listview.yml +3 -1
  91. package/main/default/objects/objects/objects.object.yml +1 -1
  92. package/main/default/objects/permission_set.object.yml +0 -4
  93. package/main/default/objects/queue_import.object.yml +16 -1
  94. package/main/default/objects/roles.object.yml +1 -5
  95. package/main/default/objects/space_users/buttons/clear_login_tokens.button.yml +3 -6
  96. package/main/default/objects/space_users/buttons/disable.button.yml +3 -7
  97. package/main/default/objects/space_users/buttons/enable.button.yml +3 -7
  98. package/main/default/objects/space_users/buttons/lockout.button.yml +3 -7
  99. package/main/default/objects/space_users/buttons/standard_edit.button.js +0 -1
  100. package/main/default/objects/space_users/buttons/unlock.button.yml +3 -7
  101. package/main/default/objects/space_users/fields/locale.field.yml +2 -1
  102. package/main/default/pages/cms_files_preview.page.amis.json +22 -3
  103. package/main/default/pages/object_detail.page.amis.json +17 -11
  104. package/main/default/pages/object_fields_form.page.amis.json +0 -11
  105. package/main/default/pages/object_validation_rules_form.page.amis.json +38 -0
  106. package/main/default/pages/object_validation_rules_form.page.yml +13 -0
  107. package/main/default/pages/object_webhooks_form.page.amis.json +1 -1
  108. package/main/default/pages/space_users_list.page.amis.json +2 -2
  109. package/main/default/routes/importRecords.router.js +87 -0
  110. package/main/default/routes/notifications.router.js +113 -0
  111. package/main/default/routes/object_fields_design.ejs +23 -9
  112. package/main/default/routes/object_fields_design.router.js +4 -3
  113. package/main/default/services/app-design.service.js +2 -1
  114. package/main/default/services/notifications.service.js +190 -0
  115. package/main/default/services/users.service.js +1 -1
  116. package/main/default/tabs/{admin_process_delegation_rules.tab.yml → admin_bull_dashboard.tab.yml} +9 -12
  117. package/main/default/translations/en.translation.yml +3 -2
  118. package/main/default/translations/zh-CN.translation.yml +3 -2
  119. package/main/default/triggers/objects_set_default_object_properties_trigger.trigger.yml +9 -6
  120. package/main/default/triggers/queue_import.trigger.js +16 -0
  121. package/package.json +4 -3
  122. package/package.service.js +3 -2
  123. package/public/platform.css +62 -0
  124. package/public/topic.css +17 -37
  125. package/main/default/objectTranslations/flow_positions.en/flow_positions.en.objectTranslation.yml +0 -19
  126. package/main/default/objectTranslations/flow_positions.zh-CN/flow_positions.zh-CN.objectTranslation.yml +0 -19
  127. package/main/default/objectTranslations/flow_roles.en/flow_roles.en.objectTranslation.yml +0 -11
  128. package/main/default/objectTranslations/flow_roles.zh-CN/flow_roles.zh-CN.objectTranslation.yml +0 -14
  129. package/main/default/objectTranslations/flows.en/flows.en.objectTranslation.yml +0 -317
  130. package/main/default/objectTranslations/flows.zh-CN/flows.zh-CN.objectTranslation.yml +0 -314
  131. package/main/default/objects/apps/buttons/amis_edit.button.yml +0 -39
  132. package/main/default/objects/apps/buttons/amis_new.button.yml +0 -43
  133. package/main/default/objects/flows/flows.object.yml +0 -1089
  134. package/main/default/objects/object_actions/buttons/customize.button.js +0 -33
  135. package/main/default/objects/object_actions/buttons/customize.button.yml +0 -3
  136. package/main/default/objects/object_listviews/buttons/copy.button.js +0 -58
  137. package/main/default/objects/object_listviews/buttons/copy.button.yml +0 -3
  138. package/main/default/objects/object_listviews/buttons/customize.button.yml +0 -3
  139. package/main/default/objects/objects/buttons/design_field_layout.button.js +0 -28
  140. package/main/default/objects/objects/buttons/design_field_layout.button.yml +0 -5
  141. package/main/default/objects/process_definition.object.yml +0 -323
  142. package/main/default/objects/space_users/fields/zoom.field.yml +0 -16
@@ -6,3 +6,4 @@ omit: true
6
6
  readonly: false
7
7
  sort_no: 280
8
8
  visible_on: '{{false}}'
9
+ type: boolean
@@ -1,13 +1,10 @@
1
1
  name: name
2
2
  amis:
3
3
  disabledOn: '${is_system == true}'
4
+ copyable: true
4
5
  filterable: true
5
6
  hidden: false
6
7
  index: true
7
- inlineHelpText: >-
8
- Can only contain lowercase letters and numbers, must start with a letter,
9
- cannot end with an underscore character or contain two consecutive underscore
10
- characters
11
8
  label: API Name
12
9
  required: true
13
10
  searchable: true
@@ -4,7 +4,6 @@ amis:
4
4
  group: advanced
5
5
  hidden: false
6
6
  index: true
7
- inlineHelpText: The default data source does not support this property
8
7
  label: Table Name
9
8
  searchable: true
10
9
  sort_no: 190
@@ -1,7 +1,9 @@
1
1
  name: all
2
2
  columns:
3
3
  - label
4
- - name
4
+ - field: name
5
+ amis:
6
+ copyable: true
5
7
  - in_development
6
8
  - is_system
7
9
  - is_customize
@@ -17,3 +19,4 @@ shared_to: space
17
19
  sort: [["created", "desc"], ["name", "asc"]]
18
20
  filters:
19
21
  - ['hidden', '!=', true]
22
+ - ['isMetadata', '!=', true]
@@ -1,7 +1,9 @@
1
1
  name: customize
2
2
  columns:
3
3
  - label
4
- - name
4
+ - field: name
5
+ amis:
6
+ copyable: true
5
7
  - in_development
6
8
  - is_system
7
9
  - is_customize
@@ -1,7 +1,9 @@
1
1
  name: deleted
2
2
  columns:
3
3
  - label
4
- - name
4
+ - field: name
5
+ amis:
6
+ copyable: true
5
7
  - in_development
6
8
  - is_system
7
9
  extra_columns:
@@ -1,7 +1,9 @@
1
1
  name: metadata
2
2
  columns:
3
3
  - label
4
- - name
4
+ - field: name
5
+ amis:
6
+ copyable: true
5
7
  - in_development
6
8
  - is_system
7
9
  - is_customize
@@ -1,7 +1,9 @@
1
1
  name: system
2
2
  columns:
3
3
  - label
4
- - name
4
+ - field: name
5
+ amis:
6
+ copyable: true
5
7
  - in_development
6
8
  - is_system
7
9
  - is_customize
@@ -3,7 +3,7 @@ custom: true
3
3
  isMetadata: true
4
4
  enable_dataloader: false
5
5
  field_groups:
6
- - group_name: switch
6
+ - group_name: feature
7
7
  - group_name: advanced
8
8
  hidden: true
9
9
  icon: orders
@@ -206,10 +206,6 @@ list_views:
206
206
  - type
207
207
  - license
208
208
  - is_system
209
- actions:
210
- customize:
211
- label: Customize
212
- on: record_only
213
209
  # relatedList:
214
210
  # - objectName: permission_objects
215
211
  # filters: !!js/function |
@@ -5,6 +5,7 @@ enable_files: false
5
5
  enable_enhanced_lookup: true
6
6
  hidden: true
7
7
  version: 2
8
+ isMetadata: true
8
9
  fields:
9
10
  name:
10
11
  index: true
@@ -205,7 +206,21 @@ list_views:
205
206
  - name
206
207
  - object_name
207
208
  - operation
208
- - template_url
209
+ - field: template_url
210
+ amis:
211
+ "type": "button-group"
212
+ "static": false
213
+ "buttons":
214
+ - "type": "button"
215
+ "label": "下载"
216
+ "visibleOn": "${template_url}"
217
+ "level": "link"
218
+ "actionType": "download"
219
+ "api":
220
+ "url": "${template_url}"
221
+ "method": "get"
222
+ "headers":
223
+ "Authorization": "Bearer ${context.tenantId},${context.authToken}"
209
224
  filter_scope: space
210
225
  permission_set:
211
226
  user:
@@ -66,8 +66,4 @@ permission_set:
66
66
  allowEdit: true
67
67
  allowRead: true
68
68
  modifyAllRecords: true
69
- viewAllRecords: true
70
- actions:
71
- customize:
72
- label: Customize
73
- on: record
69
+ viewAllRecords: true
@@ -5,10 +5,10 @@ amis_schema: |-
5
5
  "body": [
6
6
  {
7
7
  "type": "button",
8
- "label": "注销所有登录",
8
+ "label": "${'CustomAction.space_users.clear_login_tokens' | t}",
9
9
  "id": "u:clear_login_tokens",
10
10
  "editorState": "default",
11
- "confirmText": "注销所有登录后, 用户所有已登录的流程器、客户端都需要重新登录. 确定要清理吗?",
11
+ "confirmText": "${'CustomLabels.space_users_actions_clear_login_tokens_confirmText' | t}",
12
12
  "hiddenOn": "context.user.is_space_admin != true || Steedos.settings.public.enable_saas == true",
13
13
  "onEvent": {
14
14
  "click": {
@@ -23,10 +23,7 @@ amis_schema: |-
23
23
  "url": "${context.rootUrl}/api/users/${record.user}/clear_login_tokens",
24
24
  "method": "get",
25
25
  "requestAdaptor": "",
26
- "adaptor": "",
27
- "messages": {
28
- "success": "注销成功"
29
- }
26
+ "adaptor": "return payload.success ? {data: {...payload}, status: 0, msg: t('CustomLabels.space_users_actions_clear_login_tokens_success')} : {...payload, status: 1};"
30
27
  }
31
28
  }
32
29
  }
@@ -8,9 +8,9 @@ amis_schema: |-
8
8
  "body": [
9
9
  {
10
10
  "type": "button",
11
- "label": "禁用",
11
+ "label": "${'CustomAction.space_users.disable' | t}",
12
12
  "id": "u:disable",
13
- "confirmText": "确定要禁用此用户吗?",
13
+ "confirmText": "${'CustomLabels.space_users_actions_disable_confirmText' | t}",
14
14
  "onEvent": {
15
15
  "click": {
16
16
  "weight": 0,
@@ -21,11 +21,7 @@ amis_schema: |-
21
21
  "url": "/service/api/space_users/disable",
22
22
  "method": "post",
23
23
  "requestAdaptor": "api.data={suId: context.recordId}\n\n\nreturn api;",
24
- "adaptor": "",
25
- "messages": {
26
- "success": "用户已禁用",
27
- "failed": "用户禁用失败,请稍后再试"
28
- }
24
+ "adaptor": "return payload.success ? {data: {...payload}, status: 0, msg: t('CustomLabels.space_users_actions_disable_success')} : {...payload, status: 1, msg: t('CustomLabels.space_users_actions_disable_failed')};"
29
25
  }
30
26
  },
31
27
  {
@@ -8,9 +8,9 @@ amis_schema: |-
8
8
  "body": [
9
9
  {
10
10
  "type": "button",
11
- "label": "启用",
11
+ "label": "${'CustomAction.space_users.enable' | t}",
12
12
  "id": "u:enable",
13
- "confirmText": "确定要启用此用户吗?",
13
+ "confirmText": "${'CustomLabels.space_users_actions_enable_confirmText' | t}",
14
14
  "onEvent": {
15
15
  "click": {
16
16
  "weight": 0,
@@ -21,11 +21,7 @@ amis_schema: |-
21
21
  "url": "/service/api/space_users/enable",
22
22
  "method": "post",
23
23
  "requestAdaptor": "api.data={suId: context.recordId}\n\n\nreturn api;",
24
- "adaptor": "",
25
- "messages": {
26
- "success": "用户已启用",
27
- "failed": "用户启用失败,请稍后再试"
28
- }
24
+ "adaptor": "return payload.success ? {data: {...payload}, status: 0, msg: t('CustomLabels.space_users_actions_enable_success')} : {...payload, status: 1, msg: t('CustomLabels.space_users_actions_enable_failed')};"
29
25
  }
30
26
  },
31
27
  {
@@ -19,9 +19,9 @@ amis_schema: |-
19
19
  "body": [
20
20
  {
21
21
  "type": "button",
22
- "label": "锁定",
22
+ "label": "${'CustomAction.space_users.lockout' | t}",
23
23
  "id": "u:lockout",
24
- "confirmText": "确定要锁定此用户吗?",
24
+ "confirmText": "${'CustomLabels.space_users_actions_lockout_confirmText' | t}",
25
25
  "onEvent": {
26
26
  "click": {
27
27
  "weight": 0,
@@ -32,11 +32,7 @@ amis_schema: |-
32
32
  "url": "/service/api/space_users/lockout",
33
33
  "method": "post",
34
34
  "requestAdaptor": "api.data={suId: context.recordId}\n\n\nreturn api;",
35
- "adaptor": "",
36
- "messages": {
37
- "success": "用户已锁定",
38
- "failed": "用户锁定失败,请稍后再试"
39
- }
35
+ "adaptor": "return payload.success ? {data: {...payload}, status: 0, msg: t('CustomLabels.space_users_actions_lockout_success')} : {...payload, status: 1, msg: t('CustomLabels.space_users_actions_lockout_failed')};"
40
36
  }
41
37
  },
42
38
  {
@@ -7,7 +7,6 @@
7
7
  */
8
8
  module.exports = {
9
9
  standard_editVisible: function (object_name, record_id, record_permissions, data) {
10
- console.log('standard_editVisible===>')
11
10
  var allowEdit = Steedos.Object.base.actions.standard_edit.visible.apply(this, arguments);
12
11
  if (!allowEdit) {
13
12
  // permissions配置没有权限则不给权限
@@ -20,9 +20,9 @@ amis_schema: |-
20
20
  "body": [
21
21
  {
22
22
  "type": "button",
23
- "label": "解锁",
23
+ "label": "${'CustomAction.space_users.unlock' | t}",
24
24
  "id": "u:lockout",
25
- "confirmText": "确定要解锁此用户吗?",
25
+ "confirmText": "${'CustomLabels.space_users_actions_unlock_confirmText' | t}",
26
26
  "onEvent": {
27
27
  "click": {
28
28
  "weight": 0,
@@ -33,11 +33,7 @@ amis_schema: |-
33
33
  "url": "/service/api/space_users/unlock",
34
34
  "method": "post",
35
35
  "requestAdaptor": "api.data={suId: context.recordId}\n\n\nreturn api;",
36
- "adaptor": "",
37
- "messages": {
38
- "success": "用户已解锁",
39
- "failed": "用户解锁失败,请稍后再试"
40
- }
36
+ "adaptor": "return payload.success ? {data: {...payload}, status: 0, msg: t('CustomLabels.space_users_actions_unlock_success')} : {...payload, status: 1, msg: t('CustomLabels.space_users_actions_unlock_failed')};"
41
37
  }
42
38
  },
43
39
  {
@@ -13,5 +13,6 @@ options:
13
13
  value: en-us
14
14
  - label: 日本語
15
15
  value: ja
16
- defaultValue: 'zh-cn'
16
+ amis:
17
+ value: "${locale ? locale : (window:Builder.settings.default_language == 'zh-CN' ? 'zh-cn' : (window:Builder.settings.default_language ? (window:Builder.settings.default_language === 'en' ? 'en-us' : window:Builder.settings.default_language) : 'zh-cn'))}"
17
18
  sort_no: 280
@@ -13,7 +13,7 @@
13
13
  "className": "steedos-record-tabs bg-white p-4 sm:m-4 sm:border sm:rounded",
14
14
  "tabs": [
15
15
  {
16
- "title": "预览",
16
+ "title": "${'CustomLabels.cms_files_pagedetail_tab_preview' | t}",
17
17
  "className": "tab-container-office-preview",
18
18
  "body": [
19
19
  {
@@ -119,7 +119,7 @@
119
119
  "visibleOn": "${ARRAYINCLUDES(['docx', 'xlsx', 'pdf', 'png', 'jpg', 'jpeg', 'bmp', 'gif', 'webp', 'psd', 'svg', 'tiff'],${extention})}"
120
120
  },
121
121
  {
122
- "title": "详细",
122
+ "title": "${'CustomLabels.cms_files_pagedetail_tab_detail' | t}",
123
123
  "body": [
124
124
  {
125
125
  "type": "steedos-object-form",
@@ -134,7 +134,7 @@
134
134
  "id": "u:5d4e7e3f6ecc"
135
135
  },
136
136
  {
137
- "title": "相关",
137
+ "title": "${'CustomLabels.cms_files_pagedetail_tab_historical_versions' | t}",
138
138
  "body": [
139
139
  {
140
140
  "type": "steedos-object-related-lists",
@@ -147,6 +147,25 @@
147
147
  ],
148
148
  "className": "px-0 pt-4",
149
149
  "id": "u:f2f42d8195ab"
150
+ },
151
+ {
152
+ "title": "${'CustomLabels.cms_files_pagedetail_tab_chatter' | t}",
153
+ "body": [
154
+ {
155
+ "type": "rooms-provider",
156
+ "baseUrl": "${context.rootUrl}",
157
+ "body": [
158
+ {
159
+ "type": "rooms-comments",
160
+ "className": "flex flex-col gap-3",
161
+ "roomId": "objects:${objectName}:${recordId}"
162
+ }
163
+ ]
164
+ }
165
+ ],
166
+ "className": "px-0 pt-4",
167
+ "id": "u:f2f42d8195ab",
168
+ "visibleOn": "${uiSchema.enable_chatter}"
150
169
  }
151
170
  ],
152
171
  "id": "u:560caa275d48"
@@ -173,6 +173,22 @@
173
173
  "recordId": "${recordId}",
174
174
  "relatedObjectApiName": "object_functions",
175
175
  "relatedKey": "objectApiName",
176
+ "perPage": 20,
177
+ "id": "u:e0aff125ad0f"
178
+ }
179
+ ],
180
+ "id": "u:13fd52c4e905"
181
+ },
182
+ {
183
+ "title": "${'objects_amis_queue_import' | t}",
184
+ "id": "u:b36e7189917a",
185
+ "body": [
186
+ {
187
+ "type": "steedos-object-related-listview",
188
+ "objectApiName": "objects",
189
+ "recordId": "${recordId}",
190
+ "relatedObjectApiName": "queue_import",
191
+ "relatedKey": "object_name",
176
192
  "perPage": 20
177
193
  }
178
194
  ]
@@ -180,7 +196,7 @@
180
196
  ],
181
197
  "id": "u:6a3b45d7adcf",
182
198
  "tabsMode": "vertical",
183
- "className": "steedos-record-tabs bg-white m-4 border-y",
199
+ "className": "steedos-record-tabs bg-white m-4 border-none sm:shadow",
184
200
  "toolbarClassName": "",
185
201
  "linksClassName": "",
186
202
  "contentClassName": "bg-white",
@@ -206,16 +222,6 @@
206
222
  }
207
223
  }
208
224
  ],
209
- "data": {
210
- "objectName": "objects",
211
- "recordId": "space_users",
212
- "context": {
213
- "rootUrl": "http://127.0.0.1:5800",
214
- "tenantId": "hKdnwE55WcnWveYxS",
215
- "userId": "62ede4f62161e377e35de58c",
216
- "authToken": "b6475c5536a26d23d3db84e96536e08e82e1e726380cdd5cb09fc977e1d6e57c08fb23d7a1090006189d3d"
217
- }
218
- },
219
225
  "id": "page_objects_record_detail",
220
226
  "objectApiName": "${objectName}",
221
227
  "name": "page_objects_record_detail",
@@ -224,17 +224,6 @@
224
224
  "formula"
225
225
  ]
226
226
  },
227
- "onEvent": {
228
- "init": {
229
- "weight": 0,
230
- "actions": [
231
- {
232
- "actionType": "custom",
233
- "script": "//初始化时给外层dialog加上类名,使过滤组件popover正常显示\n$('.steedos-object-fields-form-page').closest('.amis-dialog-widget.antd-Modal').addClass('steedos-overflow-visible-dialog');"
234
- }
235
- ]
236
- }
237
- },
238
227
  "name": "object_fields_form",
239
228
  "className": "steedos-object-fields-form-page",
240
229
  "id": "steedos_object_fields_service"
@@ -0,0 +1,38 @@
1
+ {
2
+ "type": "service",
3
+ "body": [
4
+ {
5
+ "type": "steedos-object-form",
6
+ "label": "对象表单",
7
+ "objectApiName": "object_validation_rules",
8
+ "recordId": "${recordId}",
9
+ "className": "",
10
+ "id": "u:b3d626885b90",
11
+ "enableTabs": false,
12
+ "mode": "edit",
13
+ "layout": "normal",
14
+ "tabsMode": "",
15
+ "fieldsExtend": {
16
+ "error_condition_formula": {
17
+ "amis": {
18
+ "type": "service",
19
+ "schemaApi": {
20
+ "method": "get",
21
+ "url": "${context.rootUrl}/service/api/amis-metadata-objects/objects/${object_name}/fields/options",
22
+ "cache": 30000,
23
+ "adaptor": "const field = context.uiSchema.fields.error_condition_formula; const variables = SteedosUI.getFormulaVariables(payload.data.options); \n var fieldSchema={label: field.label, type:'input-formula', name: 'error_condition_formula', 'evalMode': false, variableMode: 'tabs', variables: variables, labelRemark: field.inlineHelpText, description: field.description } \n return {...payload, data:fieldSchema};",
24
+ "trackExpression": "${object_name}",
25
+ "sendOn": "${object_name}"
26
+ },
27
+ "dsType": "api",
28
+ "id": "u:508198dbfac7"
29
+ }
30
+ }
31
+ }
32
+ }
33
+ ],
34
+ "data": {},
35
+ "name": "page_object_validation_rules_form",
36
+ "id": "u:5f4f07272db7",
37
+ "dsType": "api"
38
+ }
@@ -0,0 +1,13 @@
1
+ name: object_validation_rules_form
2
+ is_active: true
3
+ label: 对象验证规则表单
4
+ locked: false
5
+ object_name: object_validation_rules
6
+ pageAssignments:
7
+ - type: orgDefault
8
+ page: object_validation_rules_form
9
+ desktop: true
10
+ mobile: true
11
+ render_engine: amis
12
+ type: form
13
+ widgets: []
@@ -16,7 +16,7 @@
16
16
  "method": "get",
17
17
  "url": "/service/api/amis-metadata-objects/objects/${object_name}/fields/options",
18
18
  "cache": 30000,
19
- "adaptor": "const field = context.uiSchema.fields.condition; const visibleOnVariables = SteedosUI.getFormulaVariables(payload.data.options);\n const defaultValueVariables = [visibleOnVariables[1]];\n const variables = [];\n const varItem = {\n label: '对象字段',\n children: _.map(payload.data.options, (item)=>{\n return {\n label: item.label,\n value: item.value\n }\n })\n };\n variables.push(varItem);\n payload.data={label: field.label, type:'input-formula', name: 'condition', variables: variables, labelRemark: field.inlineHelpText, description: field.description } \n return payload;",
19
+ "adaptor": "const field = context.uiSchema.fields.condition; const variables = SteedosUI.getFormulaVariables(payload.data.options);\n var fieldSchema={label: field.label, type:'input-formula', name: 'condition', 'evalMode': false, variableMode: 'tabs', variables: variables, labelRemark: field.inlineHelpText, description: field.description } \n return {...payload, data:fieldSchema};",
20
20
  "trackExpression": "${object_name}",
21
21
  "sendOn": "${object_name}"
22
22
  }
@@ -19,7 +19,7 @@
19
19
  {
20
20
  "type": "input-tree",
21
21
  "id": "u:7fd77b7915b0",
22
- "className": "",
22
+ "className": "bg-none",
23
23
  "source": {
24
24
  "method": "post",
25
25
  "url": "${context.rootUrl}/graphql",
@@ -88,7 +88,7 @@
88
88
  {
89
89
  "type": "wrapper",
90
90
  "size": "none",
91
- "className": "flex-1 overflow-y-auto focus:outline-none lg:order-last w-96",
91
+ "className": "flex-1 focus:outline-none lg:order-last w-96",
92
92
  "body": [
93
93
  {
94
94
  "type": "steedos-object-listview",
@@ -0,0 +1,87 @@
1
+
2
+ const { requireAuthentication } = require('@steedos/auth');
3
+ const { importWithCmsFile } = require('@steedos/data-import/lib/index')
4
+ const express = require('express');
5
+ const router = express.Router();
6
+
7
+ const json2xls = require('json2xls');
8
+ const { getObject } = require('@steedos/objectql');
9
+ const _ = require('lodash');
10
+
11
+ const initiateImport = async function (req, res) {
12
+ try {
13
+ const userSession = req.user;
14
+ // const spaceId = userSession.spaceId;
15
+ let { importObjId, importObjectHistoryId } = req.body;
16
+ let fileId = null;
17
+ const isSpaceAdmin = req.user.is_space_admin;
18
+ //传入了importObjId参数,必须是工作区管理员权限
19
+ if (importObjId && !isSpaceAdmin) {
20
+ return res
21
+ .status(401)
22
+ .send({ status: "error", message: "Permission denied" });
23
+ }
24
+
25
+ if (importObjectHistoryId) {
26
+ const record = await getObject('queue_import_history').findOne(importObjectHistoryId);
27
+ if (!record) {
28
+ throw new Error(
29
+ `can not find queue_import_history record with given id "${importObjectHistoryId}"`
30
+ );
31
+ }
32
+ if (!record.file) {
33
+ throw new Error(`Upload excel file, please.`);
34
+ }
35
+ fileId = record.file
36
+ importObjId = record.queue_import
37
+ }
38
+
39
+ // if (!Steedos.hasFeature('metadata_api', spaceId)) {
40
+ // return res.status(403).send({ status: 'error', message: 'Please upgrade the platform license to Enterprise Edition' });
41
+ // }
42
+
43
+ try {
44
+ let result = await importWithCmsFile(importObjId, userSession, importObjectHistoryId, fileId);
45
+ return res.status(200).send({ status: "success", result });
46
+ } catch (error) {
47
+ console.log(error)
48
+ return res
49
+ .status(500)
50
+ .send({ status: "failed", message: error.message });
51
+ }
52
+ } catch (error) {
53
+ console.log(error)
54
+ return res.status(500).send({ status: "failed", error: error.message });
55
+ }
56
+ }
57
+
58
+ router.post('/api/data/initiateImport', requireAuthentication, initiateImport);
59
+
60
+ router.get('/api/data/download/template/:record_id', requireAuthentication, async function (req, res) {
61
+ try {
62
+ const { record_id } = req.params;
63
+ let queueImportDoc = await getObject("queue_import").findOne(record_id);
64
+ let fieldMaps = queueImportDoc.field_mappings;
65
+ if (_.isEmpty(fieldMaps)) {
66
+ return;
67
+ }
68
+ let json = {};
69
+ for (const fMap of fieldMaps) {
70
+ json[fMap.header] = null;
71
+ }
72
+ let xls = json2xls([json]);
73
+ res.writeHead(200, {
74
+ 'Content-Type': 'application/octet-stream',
75
+ 'Content-Disposition': 'attachment;filename=' + encodeURI(queueImportDoc.description + '.xlsx'),
76
+ 'Access-Control-Expose-Headers': 'Content-Disposition'
77
+ });
78
+ res.end(xls, 'binary');
79
+ } catch (error) {
80
+ console.error(error);
81
+ res.status(500).send({ error: error.message });
82
+ }
83
+
84
+ });
85
+
86
+ exports.default = router;
87
+