@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
@@ -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
  - group
6
8
  - type
7
9
  - object
@@ -5,7 +5,7 @@ language: javascript
5
5
  is_wide: true
6
6
  required: true
7
7
  defaultValue: |-
8
- // global: {_:lodash, moment, validator, filters}
8
+ // global: {_:lodash, moment, validator, filters, axios, formData, mongodb, sequelize}
9
9
  // objects
10
10
  // ctx: {input, params, broker, getObject, getUser}
11
11
  editorDidMount: >-
@@ -1,31 +1,37 @@
1
- module.exports = {
2
- customize:function (object_name, record_id, fields) {
3
- let doc = Creator.odata.get(object_name, record_id);
4
- if(!doc.columns || !doc.columns.length){
5
- const objectName_label = record_id.split('.');
6
- let columns = Creator.getListView(objectName_label[0], objectName_label[1], true).columns;
7
- doc.columns = columns || [];
8
- }
9
- doc.columns = doc.columns.map((item)=>{
10
- if(typeof item === 'string'){
11
- return { field: item }
12
- }
13
- return item;
14
- })
15
- var newRecord = _.pick(doc, Creator.getObjectFieldsName(object_name));
16
- delete newRecord.is_system;
17
- delete newRecord._id;
18
- delete newRecord.record_permissions;
19
- newRecord.from_code_id = record_id;
20
- Creator.odata.insert(object_name, newRecord, function(result, error){
21
- if(result){
22
- FlowRouter.go(`/app/-/${object_name}/view/${result._id}`)
23
- }
24
- });
1
+ /*
2
+ * @Author: 殷亮辉 yinlianghui@hotoa.com
3
+ * @Date: 2025-07-07 16:57:37
4
+ * @LastEditors: 殷亮辉 yinlianghui@hotoa.com
5
+ * @LastEditTime: 2025-08-19 18:20:44
6
+ */
7
+ // module.exports = {
8
+ // customize:function (object_name, record_id, fields) {
9
+ // let doc = Creator.odata.get(object_name, record_id);
10
+ // if(!doc.columns || !doc.columns.length){
11
+ // const objectName_label = record_id.split('.');
12
+ // let columns = Creator.getListView(objectName_label[0], objectName_label[1], true).columns;
13
+ // doc.columns = columns || [];
14
+ // }
15
+ // doc.columns = doc.columns.map((item)=>{
16
+ // if(typeof item === 'string'){
17
+ // return { field: item }
18
+ // }
19
+ // return item;
20
+ // })
21
+ // var newRecord = _.pick(doc, Creator.getObjectFieldsName(object_name));
22
+ // delete newRecord.is_system;
23
+ // delete newRecord._id;
24
+ // delete newRecord.record_permissions;
25
+ // newRecord.from_code_id = record_id;
26
+ // Creator.odata.insert(object_name, newRecord, function(result, error){
27
+ // if(result){
28
+ // FlowRouter.go(`/app/-/${object_name}/view/${result._id}`)
29
+ // }
30
+ // });
25
31
 
26
- },
27
- customizeVisible:function(object_name, record_id, record_permissions, data){
28
- var record = data && data.record;
29
- return Steedos.Object.base.actions.standard_new.visible(object_name) && record.is_system;
30
- }
31
- }
32
+ // },
33
+ // customizeVisible:function(object_name, record_id, record_permissions, data){
34
+ // var record = data && data.record;
35
+ // return Steedos.Object.base.actions.standard_new.visible(object_name) && record.is_system;
36
+ // }
37
+ // }
@@ -2,9 +2,12 @@ module.exports = {
2
2
  showDesign:function (object_name, record_id) {
3
3
  document.location = Steedos.absoluteUrl(`/api/amisListviewDesign?id=${record_id}&object=${this.record.object_name}&assetUrls=${Builder.settings.assetUrls}&locale=${Builder.settings.locale}`);
4
4
  },
5
- showDesignVisible:function (object_name, record_id, record_permissions) {
5
+ showDesignVisible:function (object_name, record_id, record_permissions, data) {
6
6
  var perms= {};
7
- var record = Creator.getObjectRecord(object_name, record_id);
7
+ var record = data && data.record;
8
+ if (!Steedos.isSpaceAdmin()) {
9
+ return false
10
+ }
8
11
  if(!record){
9
12
  return false;
10
13
  }
@@ -14,10 +17,7 @@ showDesignVisible:function (object_name, record_id, record_permissions) {
14
17
  if (record_permissions) {
15
18
  perms = record_permissions;
16
19
  } else {
17
- record_permissions = Creator.getRecordPermissions(object_name, record, Meteor.userId());
18
- if (record_permissions) {
19
- perms = record_permissions;
20
- }
20
+ return false
21
21
  }
22
22
  return perms["allowEdit"];
23
23
  }
@@ -4,5 +4,5 @@ type: code
4
4
  language: javascript
5
5
  is_wide: true
6
6
  inlineHelpText: '函数签名: (payload, response, api) => payload'
7
- group: data_interface
8
- sort_no: 450
7
+ group: advanced
8
+ sort_no: 400
@@ -0,0 +1,10 @@
1
+ name: crudDataFilter
2
+ label: 重写表格
3
+ type: code
4
+ language: javascript
5
+ is_wide: true
6
+ inlineHelpText: |
7
+ 重写列表crud配置,函数签名:(crud, env, data) => crud
8
+ group: advanced
9
+ sort_no: 420
10
+
@@ -4,3 +4,4 @@ type: boolean
4
4
  group: advanced
5
5
  required: false
6
6
  sort_no: 420
7
+ hidden: true
@@ -0,0 +1,18 @@
1
+ name: extra_columns
2
+ label: Extra Columns
3
+ type: lookup
4
+ multiple: true
5
+ is_wide: false
6
+ required: true
7
+ depend_on:
8
+ - object_name
9
+ reference_to: object_fields
10
+ reference_to_field: name
11
+ enable_enhanced_lookup: false
12
+ filtersFunction: !<tag:yaml.org,2002:js/function> |-
13
+ function anonymous(filters,values
14
+ ) {
15
+ return ['object', '=', values.object_name]
16
+ }
17
+ sort_no: 355
18
+ group: show_columns
@@ -4,5 +4,5 @@ type: code
4
4
  language: javascript
5
5
  is_wide: true
6
6
  inlineHelpText: 函数签名:(api) => api, 数据在 api.data 中,修改后返回 api 对象。
7
- group: data_interface
8
- sort_no: 440
7
+ group: advanced
8
+ sort_no: 410
@@ -6,4 +6,4 @@ enable_dataloader: false
6
6
  isMetadata: true
7
7
  hidden: true
8
8
  paging:
9
- enabled: false
9
+ enabled: false
@@ -5,7 +5,7 @@ language: javascript
5
5
  is_wide: true
6
6
  required: true
7
7
  defaultValue: |-
8
- // global: {_:lodash, moment, validator, filters}
8
+ // global: {_:lodash, moment, validator, filters, axios, formData, mongodb, sequelize}
9
9
  // ctx
10
10
  // objects
11
11
  // services
@@ -15,7 +15,7 @@ optionsFunction: !!js/function |
15
15
  return [];
16
16
  }
17
17
  _options = [];
18
- _object = Creator.getObject(object_name);
18
+ _object = getUISchemaSync(object_name);
19
19
  fields = _object.fields;
20
20
  icon = _object.icon;
21
21
  _.forEach(fields, function(f, k) {
@@ -2,4 +2,5 @@ name: object_webhooks
2
2
  label: Object Webhook
3
3
  icon: output
4
4
  hidden: true
5
+ isMetadata: true
5
6
  version: 2
@@ -1,39 +1,10 @@
1
+ /*
2
+ * @Author: 殷亮辉 yinlianghui@hotoa.com
3
+ * @Date: 2025-08-12 17:48:56
4
+ * @LastEditors: 殷亮辉 yinlianghui@hotoa.com
5
+ * @LastEditTime: 2025-08-12 17:50:22
6
+ */
1
7
  module.exports = {
2
-
3
- custom: function(object_name, record_id) {
4
- $(document.body).addClass('loading');
5
- let url = `/graphql`;
6
- const obj = Creator.odata.get("objects", record_id);
7
- delete obj.record_permissions;
8
- delete obj["@odata.context"]
9
- delete obj["@odata.editLink"]
10
- delete obj["@odata.etag"]
11
- delete obj["@odata.id"]
12
- delete obj.idFieldName;
13
- let options = {
14
- type: 'post',
15
- async: true,
16
- data: JSON.stringify({
17
- query: `mutation{objects__upsert(id: "${obj.name}", doc: ${JSON.stringify(JSON.stringify(obj))}){_id,name}}`
18
- }),
19
- success: function(data) {
20
- SteedosUI.notification.success({
21
- message: '对象已自定义。'
22
- });
23
- // SteedosUI.router.go({}, "/app/" + Session.get("app_id") + "/" + object_name + "/view/" + data.data.objects__upsert._id);
24
- FlowRouter.reload()
25
- $(document.body).removeClass('loading');
26
- },
27
- error: function(XMLHttpRequest, textStatus, errorThrown) {
28
- SteedosUI.notification.error({
29
- message: '操作失败',
30
- description: t(XMLHttpRequest.responseJSON.error),
31
- });
32
- $(document.body).removeClass('loading');
33
- }
34
- };
35
- Steedos.authRequest(url, options);
36
- },
37
8
  customVisible: function(object_name, record_id, permission, data) {
38
9
  if (Steedos.settings.public.enable_saas) {
39
10
  return false;
@@ -1,5 +1,89 @@
1
1
  name: custom
2
+ amis_schema: |-
3
+ {
4
+ "type": "service",
5
+ "body": [
6
+ {
7
+ "id": "u:custom",
8
+ "type": "button",
9
+ "label": "${'CustomAction.objects.custom' | t}",
10
+ "onEvent": {
11
+ "click": {
12
+ "actions": [
13
+ {
14
+ "actionType": "ajax",
15
+ "ignoreError": false,
16
+ "outputVar": "docForCustomize",
17
+ "options": {},
18
+ "api": {
19
+ "url": "${context.rootUrl}/api/v1/objects/${recordId}",
20
+ "method": "get",
21
+ "adaptor": "",
22
+ "messages": {}
23
+ }
24
+ },
25
+ {
26
+ "ignoreError": false,
27
+ "actionType": "ajax",
28
+ "outputVar": "customizeResponseResult",
29
+ "options": {},
30
+ "api": {
31
+ "url": "${context.rootUrl}/graphql",
32
+ "method": "post",
33
+ "sendOn": "docForCustomize",
34
+ "requestAdaptor": "var doc = context.docForCustomize;\ndoc.is_customize = true;\ndoc.is_enable = true;\ndoc.in_development = \"0\";\n// delete doc.is_system;\ndelete doc.record_permissions;\ndelete doc.NAME_FIELD_KEY;\ndelete doc.idFieldName;\ndelete doc.idFieldNames;\ndelete doc.table_name;\ndelete doc.originalFields;\ndelete doc.extend;\ndelete doc.listeners;\ndelete doc.responseData;\ndelete doc.responseNsg;\ndelete doc.responseStatus;\ndelete doc.__filename;\ndelete doc.__timestamp;\nvar data = {\n query: `mutation{objects__upsert(id: \"${doc.name}\", doc: ${JSON.stringify(JSON.stringify(doc))}){_id,name}}`\n};\nreturn {\n ...api,\n data\n};",
35
+ "adaptor": "",
36
+ "messages": {
37
+ "success": "对象已自定义。",
38
+ "failed": "${msg}"
39
+ }
40
+ }
41
+ },
42
+ {
43
+ "actionType": "broadcast",
44
+ "args": {
45
+ "eventName": "@data.changed.objects"
46
+ },
47
+ "data": {
48
+ "objectName": "objects"
49
+ },
50
+ "expression": "${_inDrawer != true}"
51
+ },
52
+ {
53
+ "actionType": "url",
54
+ "expression": "${_inDrawer == true}",
55
+ "args": {
56
+ "link": "${context.rootUrl}/app/${appId}/objects/view/${_id}",
57
+ "blank": true
58
+ }
59
+ },
60
+ {
61
+ "actionType": "closeDrawer",
62
+ "expression": "${_inDrawer == true}"
63
+ }
64
+ ],
65
+ "weight": 0
66
+ }
67
+ },
68
+ "editorState": "default"
69
+ }
70
+ ],
71
+ "regions": [
72
+ "body"
73
+ ],
74
+ "data": {
75
+ "context": {},
76
+ "dataComponentId": "",
77
+ "record_id": "",
78
+ "record": {},
79
+ "permissions": {}
80
+ },
81
+ "id": "u:be6e9cd18e15",
82
+ "bodyClassName": "p-0",
83
+ "dsType": "api"
84
+ }
2
85
  is_enable: true
3
86
  label: 自定义
4
87
  'on': record_only
5
- sort: 200
88
+ type: amis_button
89
+ visible: true
@@ -5,7 +5,7 @@ amis_schema: |-
5
5
  "body": [
6
6
  {
7
7
  "type": "button",
8
- "label": "删除",
8
+ "label": "${'CustomAction.objects.delete_object' | t}",
9
9
  "id": "u:delete_object",
10
10
  "onEvent": {
11
11
  "click": {
@@ -14,11 +14,11 @@ amis_schema: |-
14
14
  "actionType": "dialog",
15
15
  "dialog": {
16
16
  "type": "dialog",
17
- "title": "删除对象: ${record.label}",
17
+ "title": "${'CustomLabels.objects_actions_delete_object_dialog_title_prefix' | t} ${record.label}",
18
18
  "body": [
19
19
  {
20
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<li style=\"text-align: left;\">删除对象的权限</li>\n<li style=\"text-align: left;\">删除对象的验证规则</li>\n<li style=\"text-align: left;\">删除对象的限制规则</li>\n<li style=\"text-align: left;\">删除对象的共享规则</li>\n<li style=\"text-align: left;\">删除使用该对象的流程映射</li>\n<li style=\"text-align: left;\">删除使用该对象的开放流程</li>\n<li style=\"text-align: left;\">删除使用该对象的页面</li>\n</ul>\n</div>",
21
+ "tpl": "${'CustomLabels.objects_actions_delete_object_dialog_content' | t}",
22
22
  "inline": true,
23
23
  "id": "u:6d0819fc0bda"
24
24
  }
@@ -29,7 +29,8 @@ amis_schema: |-
29
29
  "showCloseButton": true,
30
30
  "data": {
31
31
  "&": "$$",
32
- "recordId": "${recordId}"
32
+ "recordId": "${recordId}",
33
+ "record": "${record}"
33
34
  },
34
35
  "onEvent": {
35
36
  "confirm": {
@@ -15,8 +15,11 @@ module.exports = {
15
15
  if (!record) {
16
16
  return toastr.error("未找到记录");
17
17
  }
18
-
19
- window.open(Steedos.getRelativeUrl("/api/amisObjectFieldsDesign?oid=" + record_id+`&assetUrls=${Builder.settings.assetUrls}`));
18
+ var locale = Builder.settings.context?.user?.language || window.navigator.language;
19
+ if(locale === 'en' || locale.startsWith('en-')){
20
+ locale = 'en-US'
21
+ }
22
+ window.open(Steedos.getRelativeUrl("/api/amisObjectFieldsDesign?oid=" + record_id+`&assetUrls=${Builder.settings.assetUrls}&locale=${locale}`));
20
23
  },
21
24
  design_fields_layoutVisible: function(object_name, record_id, record_permissions, data) {
22
25
  var record = data && data.record;
@@ -1,4 +1,4 @@
1
1
  name: design_fields_layout
2
2
  is_enable: true
3
- label: 设计对象
3
+ label: 设计字段
4
4
  'on': record_only
@@ -5,8 +5,8 @@ amis_schema: |-
5
5
  "body": [
6
6
  {
7
7
  "type": "button",
8
- "label": "重置",
9
- "id": "u:delete_object",
8
+ "label": "${'CustomAction.objects.reset' | t}",
9
+ "id": "u:reset",
10
10
  "onEvent": {
11
11
  "click": {
12
12
  "actions": [
@@ -14,11 +14,11 @@ amis_schema: |-
14
14
  "actionType": "dialog",
15
15
  "dialog": {
16
16
  "type": "dialog",
17
- "title": "重置对象: ${record.label}",
17
+ "title": "${'CustomLabels.objects_actions_reset_dialog_title_prefix' | t} ${record.label}",
18
18
  "body": [
19
19
  {
20
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>",
21
+ "tpl": "${'CustomLabels.objects_actions_reset_dialog_content' | t}",
22
22
  "inline": true,
23
23
  "id": "u:6d0819fc0bda"
24
24
  }
@@ -29,7 +29,8 @@ amis_schema: |-
29
29
  "showCloseButton": true,
30
30
  "data": {
31
31
  "&": "$$",
32
- "recordId": "${recordId}"
32
+ "recordId": "${recordId}",
33
+ "record": "${record}"
33
34
  },
34
35
  "onEvent": {
35
36
  "confirm": {
@@ -1,7 +1,7 @@
1
1
  module.exports = {
2
2
 
3
3
  show_object: function(object_name, record_id, item_element) {
4
- var record = this.record || Creator.getObjectById(record_id);
4
+ var record = this.record;
5
5
  if (record && record.record) {
6
6
  record = record.record;
7
7
  }
@@ -13,34 +13,7 @@ module.exports = {
13
13
  return toastr.warning("请先启动对象");
14
14
  }
15
15
 
16
- if (record.datasource && record.datasource != 'default' && record.datasource != 'meteor') {
17
- var datasource = Creator.odata.get('datasources', record.datasource, 'is_enable');
18
- if (!datasource) {
19
- return toastr.error("未找到数据源");
20
- }
21
- if (!datasource.is_enable) {
22
- return toastr.warning("请先启动数据源");
23
- }
24
- }
25
- window.open(Steedos.getRelativeUrl("/app/admin/" + (record.name || this.record.name)));
26
- // SteedosUI.Object.getUISchema(record.name).then((res)=>{
27
- // if(res.idFieldName){
28
- // window.open(Steedos.getRelativeUrl("/app/-/" + record.name));
29
- // }else{
30
- // return toastr.error("请配置主键字段");
31
- // }
32
- // }).catch(function(err){
33
- // return window.toastr.error(err.message);
34
- // })
35
-
36
-
37
-
38
- // var allViews = Creator.odata.query('object_listviews', { $select: '_id', $filter: `((object_name eq '${record.name}') and (name eq 'all'))` }, true);
39
- // if(allViews && allViews.length > 0){
40
- // Steedos.openWindow(Steedos.getRelativeUrl("/app/-/" + record.name + "/grid/" + allViews[0]._id))
41
- // }else{
42
- // Steedos.openWindow(Steedos.getRelativeUrl("/app/-/" + record.name + "/grid/all"))
43
- // }
16
+ window.open(Steedos.getRelativeUrl("/app/__preview/" + (record.name || this.record.name)));
44
17
  },
45
18
  show_objectVisible: function(object_name, record_id, record_permissions, data) {
46
19
  var record = data && data.record;
@@ -15,12 +15,12 @@ filtersFunction: !<tag:yaml.org,2002:js/function> |-
15
15
 
16
16
 
17
17
  }
18
- group: switch
18
+ group: feature
19
19
  hidden: false
20
20
  is_wide: true
21
21
  label: 高亮字段
22
22
  multiple: true
23
23
  reference_to: object_fields
24
24
  reference_to_field: name
25
- sort_no: 120
25
+ sort_no: 900
26
26
  type: lookup
@@ -0,0 +1,5 @@
1
+ name: enable_audit
2
+ type: boolean
3
+ label: Enable Audit
4
+ group: feature
5
+ sort_no: 240
@@ -1,6 +1,7 @@
1
1
  name: enable_chatter
2
- hidden: true
3
- label: Enable Chatter
4
- sort_no: 300
2
+ hidden: false
3
+ group: feature
4
+ label: Enable Comments
5
+ sort_no: 135
5
6
  type: boolean
6
- visible_on: '{{false}}'
7
+ visible_on: '{{ Builder.settings.platform && ["platform-standard", "platform-enterprise", "platform-professional"].includes(Builder.settings.platform.product) }}'
@@ -1,7 +1,6 @@
1
1
  name: enable_dataloader
2
2
  defaultValue: true
3
3
  hidden: true
4
- inlineHelpText: Enable the dataloader for the object GraphQL API. The default value is "true".
5
4
  label: Enable Dataloader
6
5
  sort_no: 310
7
6
  type: boolean
@@ -2,10 +2,6 @@ name: enable_enhanced_lookup
2
2
  defaultValue: true
3
3
  group: advanced
4
4
  hidden: false # 为兼容老版本魔方,不可以设置为true,只能用visible_on隐藏,否则前端拿不到该属性值,会造成老版本魔方升级后字段上未配置enable_enhanced_lookup的lookup字段默认不是弹出选择
5
- inlineHelpText: >-
6
- When enabled, the lookup field associated with this object displays its
7
- options as a pop-up window.
8
5
  label: Enable Enhanced Lookup
9
6
  sort_no: 230
10
7
  type: boolean
11
- visible_on: '{{false}}'
@@ -1,6 +1,6 @@
1
1
  name: enable_events
2
- group: switch
2
+ group: feature
3
3
  hidden: false
4
4
  label: Enable Events
5
5
  sort_no: 160
6
- type: boolean
6
+ type: boolean
@@ -1,5 +1,5 @@
1
1
  name: enable_files
2
- group: switch
2
+ group: feature
3
3
  hidden: false
4
4
  label: Enable Files
5
5
  sort_no: 130
@@ -1,7 +1,6 @@
1
1
  # 只影响编辑页面
2
2
  name: enable_form_tabs
3
- group: switch
3
+ group: advanced
4
4
  label: Enable Form Tabs
5
5
  sort_no: 461
6
6
  type: boolean
7
- inlineHelpText: This feature exclusively affects the editable pages, with precedence given to configurations specified on the components.
@@ -1,6 +1,6 @@
1
1
  name: enable_inline_edit
2
2
  defaultValue: true
3
- group: advanced
3
+ group: feature
4
4
  hidden: false
5
5
  label: Enable Single Field Edit
6
6
  sort_no: 210
@@ -1,6 +1,6 @@
1
1
  name: enable_instances
2
- group: switch
3
- hidden: true
2
+ group: feature
3
+ hidden: false
4
4
  label: Enable Instances
5
5
  sort_no: 140
6
6
  type: boolean
@@ -3,7 +3,6 @@ defaultValue: true
3
3
  filters: []
4
4
  group: advanced
5
5
  hidden: false
6
- inlineHelpText: When the main watch is locked all sub tables are read only.
7
6
  label: Enable Lock Details
8
7
  sort_no: 220
9
8
  type: boolean
@@ -1,6 +1,6 @@
1
1
  name: enable_notes
2
- group: switch
3
- hidden: false
2
+ group: feature
3
+ hidden: true
4
4
  label: Enable Notes
5
5
  sort_no: 170
6
6
  type: boolean
@@ -1,5 +1,5 @@
1
1
  name: enable_tasks
2
- group: switch
2
+ group: feature
3
3
  hidden: false
4
4
  label: Enable Tasks
5
5
  sort_no: 150
@@ -1,7 +1,6 @@
1
1
  name: enable_tree
2
2
  group: advanced
3
3
  hidden: false
4
- inlineHelpText: Enable a tree structure to display records
5
4
  label: Enable Tree
6
5
  sort_no: 200
7
6
  type: boolean
@@ -7,7 +7,7 @@ is_wide: true
7
7
  label: 字段分组
8
8
  sort_no: 60
9
9
  type: grid
10
- group: switch
10
+ group: advanced
11
11
  defaultValue:
12
12
  - group_name: 系统信息
13
13
  collapsed: true
@@ -3,7 +3,6 @@ amis:
3
3
  disabledOn: '${is_system == true}'
4
4
  defaultValue: '1'
5
5
  hidden: false
6
- inlineHelpText: Developing ( Only administrators can access. )
7
6
  label: Development State
8
7
  options:
9
8
  - label: Developing ( Only administrators can access. )