@steedos/service-core-objects 3.0.0-beta.14 → 3.0.0-beta.140

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 (203) hide show
  1. package/README.md +3 -3
  2. package/main/default/applications/.gitkeep +0 -0
  3. package/main/default/applications/admin.app.yml +179 -0
  4. package/main/default/client/{topic.client.js → css.client.js} +2 -1
  5. package/main/default/client/socket.client.js +118 -0
  6. package/main/default/objectTranslations/announcements.en/announcements.en.objectTranslation.yml +37 -0
  7. package/main/default/objectTranslations/announcements.zh-CN/announcements.zh-CN.objectTranslation.yml +37 -0
  8. package/main/default/objectTranslations/audit_records.en/audit_records.en.objectTranslation.yml +1 -1
  9. package/main/default/objectTranslations/base.en/base.en.objectTranslation.yml +6 -0
  10. package/main/default/objectTranslations/base.zh-CN/base.zh-CN.objectTranslation.yml +6 -0
  11. package/main/default/objectTranslations/cms_files.en/cms_files.en.objectTranslation.yml +7 -1
  12. package/main/default/objectTranslations/cms_files.zh-CN/cms_files.zh-CN.objectTranslation.yml +7 -1
  13. package/main/default/objectTranslations/company.en/company.en.objectTranslation.yml +6 -1
  14. package/main/default/objectTranslations/company.zh-CN/company.zh-CN.objectTranslation.yml +5 -0
  15. package/main/default/objectTranslations/datasources.zh-CN/datasources.zh-CN.objectTranslation.yml +1 -1
  16. package/main/default/objectTranslations/license.en/license.en.objectTranslation.yml +1 -1
  17. package/main/default/objectTranslations/logs.en/logs.en.objectTranslation.yml +1 -1
  18. package/main/default/objectTranslations/object_actions.en/object_actions.en.objectTranslation.yml +5 -0
  19. package/main/default/objectTranslations/object_actions.zh-CN/object_actions.zh-CN.objectTranslation.yml +6 -1
  20. package/main/default/objectTranslations/object_fields.en/object_fields.en.objectTranslation.yml +4 -8
  21. package/main/default/objectTranslations/object_fields.zh-CN/object_fields.zh-CN.objectTranslation.yml +4 -4
  22. package/main/default/objectTranslations/object_functions.en/object_functions.en.objectTranslation.yml +1 -5
  23. package/main/default/objectTranslations/object_functions.zh-CN/object_functions.zh-CN.objectTranslation.yml +2 -6
  24. package/main/default/objectTranslations/object_layouts.zh-CN/object_layouts.zh-CN.objectTranslation.yml +1 -1
  25. package/main/default/objectTranslations/object_listviews.en/object_listviews.en.objectTranslation.yml +3 -1
  26. package/main/default/objectTranslations/object_listviews.zh-CN/object_listviews.zh-CN.objectTranslation.yml +5 -3
  27. package/main/default/objectTranslations/object_triggers.en/object_triggers.en.objectTranslation.yml +9 -0
  28. package/main/default/objectTranslations/object_triggers.zh-CN/object_triggers.zh-CN.objectTranslation.yml +9 -0
  29. package/main/default/objectTranslations/object_validation_rules.en/object_validation_rules.en.objectTranslation.yml +3 -3
  30. package/main/default/objectTranslations/object_webhooks.en/object_webhooks.en.objectTranslation.yml +12 -6
  31. package/main/default/objectTranslations/object_webhooks.zh-CN/object_webhooks.zh-CN.objectTranslation.yml +12 -6
  32. package/main/default/objectTranslations/objects.en/objects.en.objectTranslation.yml +44 -19
  33. package/main/default/objectTranslations/objects.zh-CN/objects.zh-CN.objectTranslation.yml +59 -25
  34. package/main/default/objectTranslations/operation_logs.en/operation_logs.en.objectTranslation.yml +66 -0
  35. package/main/default/objectTranslations/operation_logs.zh-CN/operation_logs.zh-CN.objectTranslation.yml +66 -0
  36. package/main/default/objectTranslations/organizations.en/organizations.en.objectTranslation.yml +1 -1
  37. package/main/default/objectTranslations/process_delegation_rules.en/process_delegation_rules.en.objectTranslation.yml +1 -1
  38. package/main/default/objectTranslations/reports.en/reports.en.objectTranslation.yml +7 -1
  39. package/main/default/objectTranslations/reports.zh-CN/reports.zh-CN.objectTranslation.yml +7 -1
  40. package/main/default/objectTranslations/sessions.en/sessions.en.objectTranslation.yml +1 -1
  41. package/main/default/objectTranslations/settings.en/settings.en.objectTranslation.yml +10 -1
  42. package/main/default/objectTranslations/settings.zh-CN/settings.zh-CN.objectTranslation.yml +9 -0
  43. package/main/default/objectTranslations/space_users.en/space_users.en.objectTranslation.yml +18 -1
  44. package/main/default/objectTranslations/space_users.zh-CN/space_users.zh-CN.objectTranslation.yml +17 -1
  45. package/main/default/objects/_base/base.client.js +124 -124
  46. package/main/default/objects/_base/base.object.js +503 -321
  47. package/main/default/objects/_base/base.object.yml +8 -0
  48. package/main/default/objects/_base/base.recordFieldAudit.trigger.js +3 -0
  49. package/main/default/objects/_base/base.trigger.js +7 -144
  50. package/main/default/objects/announcements.object.yml +68 -0
  51. package/main/default/objects/api_keys/buttons/copy.button.yml +1 -1
  52. package/main/default/objects/apps/apps.object.yml +25 -69
  53. package/main/default/objects/apps/buttons/disable.button.js +9 -7
  54. package/main/default/objects/apps/buttons/enable.button.js +9 -7
  55. package/main/default/objects/audit_records.object.yml +2 -2
  56. package/main/default/objects/cms_files/buttons/download.button.yml +1 -1
  57. package/main/default/objects/cms_files/cms_files.object.yml +7 -6
  58. package/main/default/objects/company/buttons/updateOrgs.button.yml +3 -6
  59. package/main/default/objects/company/company.object.yml +1 -1
  60. package/main/default/objects/favorites.object.yml +65 -0
  61. package/main/default/objects/keyvalue/keyvalue.object.yml +1 -0
  62. package/main/default/objects/license.object.yml +13 -33
  63. package/main/default/objects/logs/logs.object.yml +2 -1
  64. package/main/default/objects/notifications/fields/related_to.field.yml +12 -4
  65. package/main/default/objects/object_actions/buttons/showDesign.button.js +5 -1
  66. package/main/default/objects/object_actions/fields/is_system.field.yml +1 -1
  67. package/main/default/objects/object_fields/buttons/recomputeFormulaValues.button.js +6 -2
  68. package/main/default/objects/object_fields/buttons/recomputeSummaryValues.button.js +6 -2
  69. package/main/default/objects/object_fields/buttons/standard_new.button.js +1 -1
  70. package/main/default/objects/object_fields/fields/_name.field.yml +1 -0
  71. package/main/default/objects/object_fields/fields/auto_fill_mapping.$.to.field.yml +28 -13
  72. package/main/default/objects/object_fields/fields/description.field.yml +11 -2
  73. package/main/default/objects/object_fields/fields/name.field.yml +1 -0
  74. package/main/default/objects/object_fields/fields/options.field.yml +1 -0
  75. package/main/default/objects/object_fields/fields/required.field.yml +1 -1
  76. package/main/default/objects/object_fields/fields/summary_filters.$.field.field.yml +16 -9
  77. package/main/default/objects/object_fields/fields/summary_filters.$.operation.field.yml +26 -29
  78. package/main/default/objects/object_fields/listviews/all.listview.yml +3 -1
  79. package/main/default/objects/object_fields/listviews/customize.listview.yml +3 -1
  80. package/main/default/objects/object_functions/buttons/open_api.button.yml +1 -3
  81. package/main/default/objects/object_functions/fields/script.field.yml +3 -2
  82. package/main/default/objects/object_functions/listviews/all.listview.yml +0 -1
  83. package/main/default/objects/object_functions/listviews/customize.listview.yml +0 -1
  84. package/main/default/objects/object_functions/object_functions.object.yml +1 -1
  85. package/main/default/objects/object_listviews/buttons/customize.button.js +36 -30
  86. package/main/default/objects/object_listviews/buttons/showDesign.button.js +6 -6
  87. package/main/default/objects/object_listviews/fields/adaptor.field.yml +2 -2
  88. package/main/default/objects/object_listviews/fields/crudDataFilter.field.yml +10 -0
  89. package/main/default/objects/object_listviews/fields/enable_amis_schema.field.yml +1 -0
  90. package/main/default/objects/object_listviews/fields/extra_columns.field.yml +18 -0
  91. package/main/default/objects/object_listviews/fields/requestAdaptor.field.yml +2 -2
  92. package/main/default/objects/object_listviews/object_listviews.object.yml +1 -1
  93. package/main/default/objects/object_triggers/fields/handler.field.yml +3 -2
  94. package/main/default/objects/object_webhooks/fields/fields.field.yml +1 -1
  95. package/main/default/objects/object_webhooks/object_webhooks.object.yml +2 -1
  96. package/main/default/objects/objects/buttons/custom.button.js +6 -35
  97. package/main/default/objects/objects/buttons/custom.button.yml +81 -1
  98. package/main/default/objects/objects/buttons/delete_object.button.yml +5 -4
  99. package/main/default/objects/objects/buttons/design_fields_layout.button.js +5 -2
  100. package/main/default/objects/objects/buttons/design_fields_layout.button.yml +1 -1
  101. package/main/default/objects/objects/buttons/reset.button.yml +6 -5
  102. package/main/default/objects/objects/buttons/show_object.button.js +2 -29
  103. package/main/default/objects/objects/fields/compactLayouts.field.yml +2 -2
  104. package/main/default/objects/objects/fields/enable_audit.field.yml +5 -0
  105. package/main/default/objects/objects/fields/enable_chatter.field.yml +5 -4
  106. package/main/default/objects/objects/fields/enable_dataloader.field.yml +0 -1
  107. package/main/default/objects/objects/fields/enable_enhanced_lookup.field.yml +0 -4
  108. package/main/default/objects/objects/fields/enable_events.field.yml +2 -2
  109. package/main/default/objects/objects/fields/enable_files.field.yml +1 -1
  110. package/main/default/objects/objects/fields/enable_form_tabs.field.yml +1 -2
  111. package/main/default/objects/objects/fields/enable_inline_edit.field.yml +1 -1
  112. package/main/default/objects/objects/fields/enable_instances.field.yml +2 -2
  113. package/main/default/objects/objects/fields/enable_lock_detail.field.yml +0 -1
  114. package/main/default/objects/objects/fields/enable_notes.field.yml +2 -2
  115. package/main/default/objects/objects/fields/enable_tasks.field.yml +1 -1
  116. package/main/default/objects/objects/fields/enable_tree.field.yml +0 -1
  117. package/main/default/objects/objects/fields/field_groups.field.yml +1 -1
  118. package/main/default/objects/objects/fields/in_development.field.yml +0 -1
  119. package/main/default/objects/objects/fields/is_deleted.field.yml +1 -0
  120. package/main/default/objects/objects/fields/name.field.yml +1 -4
  121. package/main/default/objects/objects/fields/table_name.field.yml +0 -1
  122. package/main/default/objects/objects/listviews/all.listview.yml +4 -1
  123. package/main/default/objects/objects/listviews/customize.listview.yml +3 -1
  124. package/main/default/objects/objects/listviews/deleted.listview.yml +3 -1
  125. package/main/default/objects/objects/listviews/metadata.listview.yml +3 -1
  126. package/main/default/objects/objects/listviews/system.listview.yml +3 -1
  127. package/main/default/objects/objects/objects.object.yml +1 -1
  128. package/main/default/objects/permission_set/buttons/copy.button.yml +114 -0
  129. package/main/default/objects/permission_set/buttons/set_permission_tabs.button.yml +166 -0
  130. package/main/default/objects/{permission_set.object.yml → permission_set/permission_set.object.yml} +1 -5
  131. package/main/default/objects/queue_import.object.yml +16 -1
  132. package/main/default/objects/reports.object.yml +146 -187
  133. package/main/default/objects/roles.object.yml +2 -5
  134. package/main/default/objects/sessions.object.yml +1 -1
  135. package/main/default/objects/space_users/buttons/clear_login_tokens.button.yml +4 -7
  136. package/main/default/objects/space_users/buttons/disable.button.yml +3 -7
  137. package/main/default/objects/space_users/buttons/enable.button.yml +3 -7
  138. package/main/default/objects/space_users/buttons/lockout.button.yml +3 -7
  139. package/main/default/objects/space_users/buttons/setPassword.button.js +12 -12
  140. package/main/default/objects/space_users/buttons/standard_edit.button.js +0 -1
  141. package/main/default/objects/space_users/buttons/unlock.button.yml +3 -7
  142. package/main/default/objects/space_users/fields/locale.field.yml +2 -1
  143. package/main/default/objects/space_users/fields/password_expired.field.yml +1 -1
  144. package/main/default/pages/about.page.amis.json +21 -4
  145. package/main/default/pages/apps_form.page.amis.json +334 -0
  146. package/main/default/pages/apps_form.page.yml +12 -0
  147. package/main/default/pages/cfs_files_record_preview.page.amis.json +4 -4
  148. package/main/default/pages/cms_files_preview.page.amis.json +25 -6
  149. package/main/default/pages/object_detail.page.amis.json +17 -11
  150. package/main/default/pages/object_fields_form.page.amis.json +1 -12
  151. package/main/default/pages/object_form.page.amis.json +1 -1
  152. package/main/default/pages/object_validation_rules_form.page.amis.json +38 -0
  153. package/main/default/pages/object_validation_rules_form.page.yml +13 -0
  154. package/main/default/pages/object_webhooks_form.page.amis.json +1 -1
  155. package/main/default/pages/organizations.page.amis.json +0 -4
  156. package/main/default/pages/space_users_list.page.amis.json +134 -19
  157. package/main/default/routes/amis_button_design.ejs +4 -1
  158. package/main/default/routes/amis_button_design.router.js +4 -3
  159. package/main/default/routes/importRecords.router.js +87 -0
  160. package/main/default/routes/notifications.router.js +113 -0
  161. package/main/default/routes/object_fields_design.ejs +24 -9
  162. package/main/default/routes/object_fields_design.router.js +5 -4
  163. package/main/default/services/app-design.service.js +2 -1
  164. package/main/default/services/notifications.service.js +190 -0
  165. package/main/default/services/spaces.service.js +1 -1
  166. package/main/default/services/users.service.js +6 -3
  167. package/main/default/tabs/admin_bull_dashboard.tab.yml +22 -0
  168. package/main/default/tabs/{admin_process_delegation_rules.tab.yml → admin_object_functions.tab.yml} +5 -8
  169. package/main/default/tabs/admin_swagger.tab.yml +22 -0
  170. package/main/default/translations/en.translation.yml +5 -4
  171. package/main/default/translations/zh-CN.translation.yml +3 -2
  172. package/main/default/triggers/objects_set_default_object_properties_trigger.trigger.yml +9 -6
  173. package/main/default/triggers/queue_import.trigger.js +16 -0
  174. package/main/default/triggers/space_users.trigger.js +3 -3
  175. package/package.json +4 -4
  176. package/package.service.js +3 -2
  177. package/public/platform.css +67 -0
  178. package/public/topic.css +17 -37
  179. package/main/default/objectTranslations/flow_positions.en/flow_positions.en.objectTranslation.yml +0 -19
  180. package/main/default/objectTranslations/flow_positions.zh-CN/flow_positions.zh-CN.objectTranslation.yml +0 -19
  181. package/main/default/objectTranslations/flow_roles.en/flow_roles.en.objectTranslation.yml +0 -11
  182. package/main/default/objectTranslations/flow_roles.zh-CN/flow_roles.zh-CN.objectTranslation.yml +0 -14
  183. package/main/default/objectTranslations/flows.en/flows.en.objectTranslation.yml +0 -317
  184. package/main/default/objectTranslations/flows.zh-CN/flows.zh-CN.objectTranslation.yml +0 -314
  185. package/main/default/objectTranslations/forms.en/forms.en.objectTranslation.yml +0 -191
  186. package/main/default/objectTranslations/forms.zh-CN/forms.zh-CN.objectTranslation.yml +0 -194
  187. package/main/default/objectTranslations/instances.en/instances.en.objectTranslation.yml +0 -155
  188. package/main/default/objectTranslations/instances.zh-CN/instances.zh-CN.objectTranslation.yml +0 -155
  189. package/main/default/objects/apps/buttons/amis_edit.button.yml +0 -39
  190. package/main/default/objects/apps/buttons/amis_new.button.yml +0 -43
  191. package/main/default/objects/flows/flows.object.yml +0 -1089
  192. package/main/default/objects/object_actions/buttons/customize.button.js +0 -33
  193. package/main/default/objects/object_actions/buttons/customize.button.yml +0 -3
  194. package/main/default/objects/object_functions/fields/is_rest.field.yml +0 -5
  195. package/main/default/objects/object_listviews/buttons/copy.button.js +0 -58
  196. package/main/default/objects/object_listviews/buttons/copy.button.yml +0 -3
  197. package/main/default/objects/object_listviews/buttons/customize.button.yml +0 -3
  198. package/main/default/objects/objects/buttons/design_field_layout.button.js +0 -28
  199. package/main/default/objects/objects/buttons/design_field_layout.button.yml +0 -5
  200. package/main/default/objects/process_definition.object.yml +0 -323
  201. package/main/default/objects/space_users/fields/zoom.field.yml +0 -16
  202. package/main/default/objects/spaces/buttons/upgrade.button.js +0 -12
  203. package/main/default/objects/spaces/buttons/upgrade.button.yml +0 -4
@@ -0,0 +1,65 @@
1
+ name: favorites
2
+ label: My Favorite
3
+ icon: topic
4
+ hidden: true
5
+ version: 2
6
+ fields:
7
+ name:
8
+ type: text
9
+ label: Name
10
+ required: true
11
+ min: 1
12
+ max: 300
13
+ object_name:
14
+ type: lookup
15
+ label: Object
16
+ reference_to: objects
17
+ reference_to_field: name
18
+ required: true
19
+ readonly: true
20
+ record_type:
21
+ label: Type
22
+ type: select
23
+ options:
24
+ - label: Record
25
+ value: RECORD
26
+ - label: List View
27
+ value: LIST_VIEW
28
+ readonly: true
29
+ record_id:
30
+ type: text
31
+ label: Record ID or List View ID(code)
32
+ hidden: true
33
+ sort_no:
34
+ type: number
35
+ label: Sort Number
36
+ inlineHelpText: High Value First
37
+ actions:
38
+ standard_new:
39
+ visible: false
40
+ list_views:
41
+ all:
42
+ label: All
43
+ filter_scope: space
44
+ filters: [["owner", "=", "{userId}"]]
45
+ sort: [["sort_no", "desc"]]
46
+ columns:
47
+ - name
48
+ - object_name
49
+ - record_type
50
+ - sort_no
51
+ permission_set:
52
+ user:
53
+ allowCreate: true
54
+ allowDelete: true
55
+ allowEdit: true
56
+ allowRead: true
57
+ modifyAllRecords: false
58
+ viewAllRecords: false
59
+ admin:
60
+ allowCreate: true
61
+ allowDelete: true
62
+ allowEdit: true
63
+ allowRead: true
64
+ modifyAllRecords: false
65
+ viewAllRecords: false
@@ -21,3 +21,4 @@ is_enable: true
21
21
  label: 参数配置
22
22
  locked: false
23
23
  version: 2
24
+ hidden: true
@@ -4,16 +4,6 @@ icon: webcart
4
4
  hidden: true
5
5
  enable_audit: false
6
6
  fields:
7
- edition:
8
- type: text
9
- label: Edition
10
- hidden: true
11
- edition_label:
12
- type: text
13
- label: Edition
14
- is_name: true
15
- filterable: true
16
- searchable: true
17
7
  license:
18
8
  type: textarea
19
9
  rows: 8
@@ -26,13 +16,22 @@ fields:
26
16
  hidden: true
27
17
  product:
28
18
  type: text
29
- label: Product
30
- hidden: true
19
+ label: Product ID
31
20
  product_label:
32
21
  type: text
33
22
  label: Product
34
23
  filterable: true
35
24
  searchable: true
25
+ edition:
26
+ type: text
27
+ label: Edition
28
+ hidden: true
29
+ edition_label:
30
+ type: text
31
+ label: Edition
32
+ is_name: true
33
+ filterable: true
34
+ searchable: true
36
35
  is_trial:
37
36
  type: boolean
38
37
  label: Trial
@@ -75,34 +74,15 @@ fields:
75
74
  is_local:
76
75
  type: boolean
77
76
  hidden: true
78
- actions:
79
- apply:
80
- label: Apply
81
- on: list
82
- visible: false
83
- changeSpaceLicense:
84
- label: 更新许可证
85
- on: list
86
- visible: true
87
- copySpaceId:
88
- label: Copy space id
89
- on: list
90
- visible: false
91
- upgrade:
92
- label: Upgrade
93
- on: list
94
- visible: true
95
77
  list_views:
96
78
  all:
97
- label: Al
79
+ label: All
98
80
  columns:
99
- - edition_label
100
81
  - product_label
82
+ - product
101
83
  - user_number
102
84
  - verify_status
103
85
  - end_date
104
- filters:
105
- - [['lid', '<>', 'None'], ['invalid','!=',true]]
106
86
  permission_set:
107
87
  user:
108
88
  allowCreate: false
@@ -1,3 +1,4 @@
1
1
  name: logs
2
- label: Log
2
+ label: System Logs
3
+ hidden: true
3
4
  icon: job_profile
@@ -6,11 +6,19 @@ reference_to: !<tag:yaml.org,2002:js/function> |-
6
6
  function anonymous(
7
7
  ) {
8
8
 
9
- var o = [];
10
- _.each(Creator.Objects, function (object, object_name) {
11
- return o.push(object.name);
9
+ try{
10
+ let objects = [];
11
+ var queryResult = Steedos.authRequest(`/graphql`, {
12
+ type: 'POST', async: false,
13
+ data: JSON.stringify({
14
+ query: `{ objects{ name } }`
15
+ })
12
16
  });
13
- return o;
17
+ objects = queryResult && queryResult.data && queryResult.data.objects;
18
+ return _.map(objects, 'name') ;
19
+ }catch(e){
20
+ return []
21
+ }
14
22
 
15
23
  }
16
24
  filterable: true
@@ -1,6 +1,10 @@
1
1
  module.exports = {
2
2
  showDesign:function (object_name, record_id) {
3
- document.location = Steedos.absoluteUrl(`/api/amisButtonDesign?id=${record_id}&object=${this.record.record.object}&assetUrls=${Builder.settings.assetUrls}&locale=${Builder.settings.locale}`);
3
+ var locale = Builder.settings.context?.user?.language || window.navigator.language;
4
+ if(locale === 'en' || locale.startsWith('en-')){
5
+ locale = 'en-US'
6
+ }
7
+ document.location = Steedos.absoluteUrl(`/api/amisButtonDesign?id=${record_id}&object=${this.record.record.object}&assetUrls=${Builder.settings.assetUrls}&locale=${locale}`);
4
8
  },
5
9
  showDesignVisible:function (object_name, record_id, record_permissions, data) {
6
10
  var perms;
@@ -1,6 +1,6 @@
1
1
  name: is_system
2
2
  type: boolean
3
- label: 系统
3
+ label: System
4
4
  readonly: true
5
5
  visible_on: '{{global.mode ===''read'' ? true : false}}'
6
6
  disabled: true
@@ -12,10 +12,14 @@ module.exports = {
12
12
  }),
13
13
  success: function(data){
14
14
  if(data.status == 1){
15
- SteedosUI.notification.error("object_fields_function_recomputeFormulaValues_error", t(data.error.reason));
15
+ SteedosUI.notification.error({
16
+ message: t('object_fields_function_recomputeFormulaValues_error')
17
+ });
16
18
  return;
17
19
  }
18
- SteedosUI.notification.success(t('object_fields_function_recomputeFormulaValues_success'))
20
+ SteedosUI.notification.success({
21
+ message: t('object_fields_function_recomputeFormulaValues_success')
22
+ });
19
23
  },
20
24
  error: function(XMLHttpRequest){
21
25
  SteedosUI.notification.error({message: XMLHttpRequest.responseJSON.msg});
@@ -13,10 +13,14 @@ module.exports = {
13
13
  }),
14
14
  success: function(data){
15
15
  if(data.status == 1){
16
- SteedosUI.notification.error("object_fields_function_recomputeSummaryValues_error", t(data.error.reason));
16
+ SteedosUI.notification.error({
17
+ message: t('object_fields_function_recomputeSummaryValues_error')
18
+ });
17
19
  return;
18
20
  }
19
- SteedosUI.notification.success(t('object_fields_function_recomputeSummaryValues_success'))
21
+ SteedosUI.notification.success({
22
+ message: t('object_fields_function_recomputeSummaryValues_success')
23
+ });
20
24
  },
21
25
  error: function(XMLHttpRequest){
22
26
  SteedosUI.notification.error({message: XMLHttpRequest.responseJSON.msg});
@@ -6,7 +6,7 @@ module.exports = {
6
6
  if(!Steedos.isSpaceAdmin()){
7
7
  return false
8
8
  }
9
- var record = data && data.record;
9
+ var record = data && data._master && data._master.record;
10
10
  if(!record){
11
11
  return false;
12
12
  }
@@ -1,6 +1,7 @@
1
1
  name: _name
2
2
  amis:
3
3
  disabledOn: '${is_system == true}'
4
+ copyable: true
4
5
  hidden: false
5
6
  index: true
6
7
  label: Field Name
@@ -21,7 +21,8 @@ filtersFunction: !<tag:yaml.org,2002:js/function> |-
21
21
  "email": ["email", "text", "textarea"]
22
22
  };
23
23
  var currentFilter = [];
24
- var referenceObject = BuilderAmisObject && BuilderAmisObject.AmisLib && BuilderAmisObject.AmisLib.getUISchemaSync(values.reference_to);
24
+ //这里调用getUISchemaSync时传入true强制抓取最新schema是因为:设置自动填充时,如果from中选择了一个刚新建的字段,下面的fromField变量会取不到刚新建的字段,造成设置to属性会报错
25
+ var referenceObject = BuilderAmisObject && BuilderAmisObject.AmisLib && BuilderAmisObject.AmisLib.getUISchemaSync(values.reference_to, true);
25
26
  var fromField = referenceObject && referenceObject.fields[values.from];
26
27
 
27
28
  if (values.multiple) {
@@ -37,20 +38,34 @@ filtersFunction: !<tag:yaml.org,2002:js/function> |-
37
38
  currentFilter.push(['multiple', '!=', true]);
38
39
  }
39
40
  }
40
- if (fromField && fromField.data_type) {
41
- currentFilter.push(['type', 'in', fieldFilters[fromField.data_type] || fromField.data_type.split()]);
42
- }else if (fromField) {
43
- currentFilter.push(['type', 'in', fieldFilters[fromField.type] || fromField.type.split()]);
44
- if (fromField.type == "lookup" || fromField.type == "master_detail") {
45
- if(fromField.reference_to === "users"){
46
- currentFilter.push([['reference_to', '=', "users"],"or", ['reference_to', '=', "space_users"]]);
41
+ if (fromField) {
42
+ if(fromField.type == "select"){
43
+ //要注意下拉框字段类型有data_type属性,可能为boolean/number/text/null,默认值为null,表示text类型
44
+ var fromFieldDataType = fromField.data_type || "text";
45
+ currentFilter.push(['type', '=', 'select']);
46
+ if (fromFieldDataType === "text") {
47
+ currentFilter.push([['data_type', '=', 'text'], 'or', ['data_type', '=', null]]);
47
48
  }
48
- else{
49
- if (fromField.reference_to) {
50
- currentFilter.push(['reference_to', '=', fromField.reference_to]);
49
+ else {
50
+ currentFilter.push(['data_type', '=', fromFieldDataType]);
51
+ }
52
+ }
53
+ else if (fromField.data_type) {
54
+ // 公式字段类型按data_type属性处理
55
+ currentFilter.push(['type', 'in', fieldFilters[fromField.data_type] || fromField.data_type.split()]);
56
+ } else {
57
+ currentFilter.push(['type', 'in', fieldFilters[fromField.type] || fromField.type.split()]);
58
+ if (fromField.type == "lookup" || fromField.type == "master_detail") {
59
+ if(fromField.reference_to === "users"){
60
+ currentFilter.push([['reference_to', '=', "users"],"or", ['reference_to', '=', "space_users"]]);
51
61
  }
52
- if (fromField.reference_to_field) {
53
- currentFilter.push(['reference_to_field', '=', fromField.reference_to_field]);
62
+ else{
63
+ if (fromField.reference_to) {
64
+ currentFilter.push(['reference_to', '=', fromField.reference_to]);
65
+ }
66
+ if (fromField.reference_to_field) {
67
+ currentFilter.push(['reference_to_field', '=', fromField.reference_to_field]);
68
+ }
54
69
  }
55
70
  }
56
71
  }
@@ -2,6 +2,15 @@ name: description
2
2
  hidden: false
3
3
  is_wide: true
4
4
  label: Description
5
- sort_no: 340
5
+ sort_no: 380
6
6
  type: textarea
7
- inlineHelpText: 在字段下方增加解释说明
7
+ inlineHelpText: 在字段下方增加解释说明
8
+ amis:
9
+ type: input-rich-text
10
+ name: rich
11
+ options:
12
+ menubar: false
13
+ height: 200
14
+ plugins:
15
+ - lists
16
+ toolbar: undo redo | formatselect | bold italic forecolor backcolor | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | removeformat
@@ -1,6 +1,7 @@
1
1
  name: name
2
2
  amis:
3
3
  disabledOn: '${is_system == true}'
4
+ copyable: true
4
5
  hidden: false
5
6
  index: true
6
7
  inlineHelpText: >-
@@ -3,6 +3,7 @@ amis:
3
3
  showIndex: true
4
4
  disabledOn: '${is_system == true}'
5
5
  enableDialog: false
6
+ draggable: true
6
7
  columns:
7
8
  - label
8
9
  - value
@@ -1,7 +1,7 @@
1
1
  name: required
2
2
  hidden: false
3
3
  label: Required
4
- sort_no: 380
4
+ sort_no: 340
5
5
  type: boolean
6
6
  visible_on: >-
7
7
  {{['autonumber','summary','formula'].indexOf(formData.type) > -1 ? false:
@@ -4,17 +4,24 @@ label: Field
4
4
  optionsFunction: !<tag:yaml.org,2002:js/function> |-
5
5
  function(values
6
6
  ) {
7
-
8
-
9
-
10
- if(values.summary_object){
11
- return Creator.getObjectFilterFieldOptions(values.summary_object)
7
+ var summaryObject = BuilderAmisObject && BuilderAmisObject.AmisLib && BuilderAmisObject.AmisLib.getUISchemaSync(values.summary_object, false);
8
+ var fields = summaryObject && summaryObject.fields;
9
+ let options = [];
10
+ if (fields) {
11
+ _.forEach(fields, function(f, k){
12
+ /*hidden,grid等类型的字段,不需要过滤*/
13
+ if(!_.includes(["grid","object", "[Object]", "[object]", "Object", "avatar", "image", "markdown", "html"], f.type) && !f.hidden){
14
+ /*filters.$.field及flow.current等子字段也不需要过滤*/
15
+ if(k.indexOf(".") < 0){
16
+ options.push({label: f.label || k, value: k})
17
+ }
18
+ }
19
+ })
12
20
  }
13
- return []
14
-
15
-
16
-
21
+ return options;
17
22
  }
23
+ depend_on:
24
+ - summary_object
18
25
  showIcon: false
19
26
  sort_no: 300
20
27
  type: lookup
@@ -4,39 +4,36 @@ label: Operator
4
4
  optionsFunction: !<tag:yaml.org,2002:js/function> |-
5
5
  function(values
6
6
  ) {
7
-
8
-
9
-
10
- if(values.summary_object){
11
- if(!this.template){
12
- let options = Steedos.ObjectFieldManager.getSummaryFiltersOperation();
13
- return options;
14
- }
15
- const filter = _.find(values.summary_filters, function (item) {
16
- return item._id === values._grid_row_id
17
- })
18
- if(filter){
19
- var field = filter.field;
20
- if(field){
21
- var object_fields = Creator.getObject(values.summary_object).fields
22
- var filter_field_type;
23
- if(object_fields[field]){
24
- if(Creator.getFieldDataType){
25
- filter_field_type = Creator.getFieldDataType(object_fields, field);
26
- }
27
- else{
28
- filter_field_type = object_fields[field].type;
29
- }
30
- return Steedos.ObjectFieldManager.getSummaryFiltersOperation(filter_field_type);
31
- }
7
+ var summaryObject = BuilderAmisObject && BuilderAmisObject.AmisLib && BuilderAmisObject.AmisLib.getUISchemaSync(values.summary_object, false);
8
+ var fields = summaryObject && summaryObject.fields;
9
+ var getFieldDataType = function(objectFields, key){
10
+ if (objectFields && key){
11
+ var currentField = objectFields[key];
12
+ var result = currentField && currentField.type;
13
+ if (["formula", "summary"].indexOf(result) > -1){
14
+ result = currentField.data_type;
32
15
  }
16
+ return result;
17
+ }
18
+ else{
19
+ return "text";
33
20
  }
34
21
  }
35
- return [];
36
-
37
-
38
-
22
+
23
+ let options = [];
24
+ if (fields) {
25
+ const field = api.context.field;
26
+ if(field){
27
+ var filter_field_type = getFieldDataType(fields, field);
28
+ options = Steedos.ObjectFieldManager.getSummaryFiltersOperation(filter_field_type);
29
+ }
30
+ }
31
+ return options;
39
32
  }
33
+
34
+ depend_on:
35
+ - summary_object
36
+ - field
40
37
  showIcon: false
41
38
  sort_no: 310
42
39
  type: lookup
@@ -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
  - group
6
8
  - type
7
9
  - object
@@ -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
@@ -6,9 +6,7 @@ amis_schema: >-
6
6
  objectApiName__expand{\n name\n }\n }\n}\n
7
7
  `\n}","adaptor":"","messages":{}}},{"ignoreError":false,"actionType":"custom","script":"const
8
8
  record =
9
- event.data.object_function;\nwindow.open(`/api/v1/${record.object.name}/functions/${record.name}`)\n"}]}},"hidden":false,"visibleOn":"${is_rest
10
- ==
11
- true}"}],"data":{"context":{},"dataComponentId":"","record_id":"","record":{},"permissions":{}},"bodyClassName":"p-0","id":"u:05f888280584","dsType":"api"}
9
+ event.data.object_function;\nwindow.open(`/api/v1/${record.object.name}/functions/${record.name}`)\n"}]}},"hidden":false,"visibleOn":"${true}"}],"data":{"context":{},"dataComponentId":"","record_id":"","record":{},"permissions":{}},"bodyClassName":"p-0","id":"u:05f888280584","dsType":"api"}
12
10
  is_enable: true
13
11
  label: 请求API
14
12
  locked: false
@@ -5,9 +5,10 @@ language: javascript
5
5
  is_wide: true
6
6
  required: true
7
7
  defaultValue: |-
8
- // global: {_:lodash, moment, validator, filters}
9
- // objects
10
8
  // ctx: {input, params, broker, getObject, getUser}
9
+ // objects: all steedos objects
10
+ // db: mongodb client instance
11
+ // npm: {_, moment, validator, filters, axios, formData, mongodb, sequelize}
11
12
  editorDidMount: >-
12
13
  if(window._registerCompletionItemProviderFunction){
13
14
  return ;
@@ -3,7 +3,6 @@ columns:
3
3
  - name
4
4
  - objectApiName
5
5
  - isEnabled
6
- - is_rest
7
6
  - is_system
8
7
  label: All
9
8
  filter_scope: space
@@ -3,7 +3,6 @@ columns:
3
3
  - name
4
4
  - objectApiName
5
5
  - isEnabled
6
- - is_rest
7
6
  - is_system
8
7
  label: 自定义
9
8
  filters:
@@ -1,5 +1,5 @@
1
1
  name: object_functions
2
- icon: code_playground
2
+ icon: formula
3
3
  label: Object Functions
4
4
  version: 2
5
5
  hidden: true
@@ -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
+