@steedos/service-core-objects 3.0.0-beta.13 → 3.0.0-beta.132

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 (195) hide show
  1. package/main/default/applications/.gitkeep +0 -0
  2. package/main/default/applications/admin.app.yml +179 -0
  3. package/main/default/client/{topic.client.js → css.client.js} +2 -1
  4. package/main/default/client/socket.client.js +118 -0
  5. package/main/default/objectTranslations/announcements.en/announcements.en.objectTranslation.yml +37 -0
  6. package/main/default/objectTranslations/announcements.zh-CN/announcements.zh-CN.objectTranslation.yml +37 -0
  7. package/main/default/objectTranslations/audit_records.en/audit_records.en.objectTranslation.yml +1 -1
  8. package/main/default/objectTranslations/base.en/base.en.objectTranslation.yml +6 -0
  9. package/main/default/objectTranslations/base.zh-CN/base.zh-CN.objectTranslation.yml +6 -0
  10. package/main/default/objectTranslations/cms_files.en/cms_files.en.objectTranslation.yml +7 -1
  11. package/main/default/objectTranslations/cms_files.zh-CN/cms_files.zh-CN.objectTranslation.yml +7 -1
  12. package/main/default/objectTranslations/company.en/company.en.objectTranslation.yml +6 -1
  13. package/main/default/objectTranslations/company.zh-CN/company.zh-CN.objectTranslation.yml +5 -0
  14. package/main/default/objectTranslations/datasources.zh-CN/datasources.zh-CN.objectTranslation.yml +1 -1
  15. package/main/default/objectTranslations/license.en/license.en.objectTranslation.yml +1 -1
  16. package/main/default/objectTranslations/logs.en/logs.en.objectTranslation.yml +1 -1
  17. package/main/default/objectTranslations/object_actions.en/object_actions.en.objectTranslation.yml +5 -0
  18. package/main/default/objectTranslations/object_actions.zh-CN/object_actions.zh-CN.objectTranslation.yml +6 -1
  19. package/main/default/objectTranslations/object_fields.en/object_fields.en.objectTranslation.yml +4 -8
  20. package/main/default/objectTranslations/object_fields.zh-CN/object_fields.zh-CN.objectTranslation.yml +4 -4
  21. package/main/default/objectTranslations/object_functions.en/object_functions.en.objectTranslation.yml +1 -5
  22. package/main/default/objectTranslations/object_functions.zh-CN/object_functions.zh-CN.objectTranslation.yml +2 -6
  23. package/main/default/objectTranslations/object_layouts.zh-CN/object_layouts.zh-CN.objectTranslation.yml +1 -1
  24. package/main/default/objectTranslations/object_listviews.en/object_listviews.en.objectTranslation.yml +3 -1
  25. package/main/default/objectTranslations/object_listviews.zh-CN/object_listviews.zh-CN.objectTranslation.yml +5 -3
  26. package/main/default/objectTranslations/object_triggers.en/object_triggers.en.objectTranslation.yml +9 -0
  27. package/main/default/objectTranslations/object_triggers.zh-CN/object_triggers.zh-CN.objectTranslation.yml +9 -0
  28. package/main/default/objectTranslations/object_validation_rules.en/object_validation_rules.en.objectTranslation.yml +3 -3
  29. package/main/default/objectTranslations/object_webhooks.en/object_webhooks.en.objectTranslation.yml +12 -6
  30. package/main/default/objectTranslations/object_webhooks.zh-CN/object_webhooks.zh-CN.objectTranslation.yml +12 -6
  31. package/main/default/objectTranslations/objects.en/objects.en.objectTranslation.yml +44 -19
  32. package/main/default/objectTranslations/objects.zh-CN/objects.zh-CN.objectTranslation.yml +59 -25
  33. package/main/default/objectTranslations/operation_logs.en/operation_logs.en.objectTranslation.yml +66 -0
  34. package/main/default/objectTranslations/operation_logs.zh-CN/operation_logs.zh-CN.objectTranslation.yml +66 -0
  35. package/main/default/objectTranslations/organizations.en/organizations.en.objectTranslation.yml +1 -1
  36. package/main/default/objectTranslations/process_delegation_rules.en/process_delegation_rules.en.objectTranslation.yml +1 -1
  37. package/main/default/objectTranslations/sessions.en/sessions.en.objectTranslation.yml +1 -1
  38. package/main/default/objectTranslations/settings.en/settings.en.objectTranslation.yml +10 -1
  39. package/main/default/objectTranslations/settings.zh-CN/settings.zh-CN.objectTranslation.yml +9 -0
  40. package/main/default/objectTranslations/space_users.en/space_users.en.objectTranslation.yml +18 -1
  41. package/main/default/objectTranslations/space_users.zh-CN/space_users.zh-CN.objectTranslation.yml +17 -1
  42. package/main/default/objects/_base/base.client.js +124 -124
  43. package/main/default/objects/_base/base.object.js +502 -320
  44. package/main/default/objects/_base/base.object.yml +8 -0
  45. package/main/default/objects/_base/base.recordFieldAudit.trigger.js +3 -0
  46. package/main/default/objects/announcements.object.yml +68 -0
  47. package/main/default/objects/api_keys/buttons/copy.button.yml +1 -1
  48. package/main/default/objects/apps/apps.object.yml +25 -69
  49. package/main/default/objects/apps/buttons/disable.button.js +9 -7
  50. package/main/default/objects/apps/buttons/enable.button.js +9 -7
  51. package/main/default/objects/audit_records.object.yml +2 -2
  52. package/main/default/objects/cms_files/buttons/download.button.yml +1 -1
  53. package/main/default/objects/cms_files/cms_files.object.yml +7 -6
  54. package/main/default/objects/company/buttons/updateOrgs.button.yml +3 -6
  55. package/main/default/objects/company/company.object.yml +1 -1
  56. package/main/default/objects/favorites.object.yml +65 -0
  57. package/main/default/objects/keyvalue/keyvalue.object.yml +1 -0
  58. package/main/default/objects/logs/logs.object.yml +2 -1
  59. package/main/default/objects/object_actions/buttons/showDesign.button.js +5 -1
  60. package/main/default/objects/object_actions/fields/is_system.field.yml +1 -1
  61. package/main/default/objects/object_fields/buttons/recomputeFormulaValues.button.js +6 -2
  62. package/main/default/objects/object_fields/buttons/recomputeSummaryValues.button.js +6 -2
  63. package/main/default/objects/object_fields/buttons/standard_new.button.js +1 -1
  64. package/main/default/objects/object_fields/fields/_name.field.yml +1 -0
  65. package/main/default/objects/object_fields/fields/auto_fill_mapping.$.to.field.yml +28 -13
  66. package/main/default/objects/object_fields/fields/description.field.yml +11 -2
  67. package/main/default/objects/object_fields/fields/name.field.yml +1 -0
  68. package/main/default/objects/object_fields/fields/options.field.yml +1 -0
  69. package/main/default/objects/object_fields/fields/required.field.yml +1 -1
  70. package/main/default/objects/object_fields/fields/summary_filters.$.field.field.yml +16 -9
  71. package/main/default/objects/object_fields/fields/summary_filters.$.operation.field.yml +26 -29
  72. package/main/default/objects/object_fields/listviews/all.listview.yml +3 -1
  73. package/main/default/objects/object_fields/listviews/customize.listview.yml +3 -1
  74. package/main/default/objects/object_functions/buttons/open_api.button.yml +1 -3
  75. package/main/default/objects/object_functions/fields/script.field.yml +3 -2
  76. package/main/default/objects/object_functions/listviews/all.listview.yml +0 -1
  77. package/main/default/objects/object_functions/listviews/customize.listview.yml +0 -1
  78. package/main/default/objects/object_functions/object_functions.object.yml +1 -1
  79. package/main/default/objects/object_listviews/buttons/customize.button.js +36 -30
  80. package/main/default/objects/object_listviews/buttons/showDesign.button.js +6 -6
  81. package/main/default/objects/object_listviews/fields/adaptor.field.yml +2 -2
  82. package/main/default/objects/object_listviews/fields/crudDataFilter.field.yml +10 -0
  83. package/main/default/objects/object_listviews/fields/enable_amis_schema.field.yml +1 -0
  84. package/main/default/objects/object_listviews/fields/extra_columns.field.yml +18 -0
  85. package/main/default/objects/object_listviews/fields/requestAdaptor.field.yml +2 -2
  86. package/main/default/objects/object_listviews/object_listviews.object.yml +1 -1
  87. package/main/default/objects/object_triggers/fields/handler.field.yml +3 -2
  88. package/main/default/objects/object_webhooks/fields/fields.field.yml +1 -1
  89. package/main/default/objects/object_webhooks/object_webhooks.object.yml +2 -1
  90. package/main/default/objects/objects/buttons/custom.button.js +6 -35
  91. package/main/default/objects/objects/buttons/custom.button.yml +81 -1
  92. package/main/default/objects/objects/buttons/delete_object.button.yml +5 -4
  93. package/main/default/objects/objects/buttons/design_fields_layout.button.js +5 -2
  94. package/main/default/objects/objects/buttons/design_fields_layout.button.yml +1 -1
  95. package/main/default/objects/objects/buttons/reset.button.yml +6 -5
  96. package/main/default/objects/objects/buttons/show_object.button.js +2 -29
  97. package/main/default/objects/objects/fields/compactLayouts.field.yml +2 -2
  98. package/main/default/objects/objects/fields/enable_audit.field.yml +5 -0
  99. package/main/default/objects/objects/fields/enable_chatter.field.yml +5 -4
  100. package/main/default/objects/objects/fields/enable_dataloader.field.yml +0 -1
  101. package/main/default/objects/objects/fields/enable_enhanced_lookup.field.yml +0 -4
  102. package/main/default/objects/objects/fields/enable_events.field.yml +2 -2
  103. package/main/default/objects/objects/fields/enable_files.field.yml +1 -1
  104. package/main/default/objects/objects/fields/enable_form_tabs.field.yml +1 -2
  105. package/main/default/objects/objects/fields/enable_inline_edit.field.yml +1 -1
  106. package/main/default/objects/objects/fields/enable_instances.field.yml +2 -2
  107. package/main/default/objects/objects/fields/enable_lock_detail.field.yml +0 -1
  108. package/main/default/objects/objects/fields/enable_notes.field.yml +2 -2
  109. package/main/default/objects/objects/fields/enable_tasks.field.yml +1 -1
  110. package/main/default/objects/objects/fields/enable_tree.field.yml +0 -1
  111. package/main/default/objects/objects/fields/field_groups.field.yml +1 -1
  112. package/main/default/objects/objects/fields/in_development.field.yml +0 -1
  113. package/main/default/objects/objects/fields/is_deleted.field.yml +1 -0
  114. package/main/default/objects/objects/fields/name.field.yml +1 -4
  115. package/main/default/objects/objects/fields/table_name.field.yml +0 -1
  116. package/main/default/objects/objects/listviews/all.listview.yml +4 -1
  117. package/main/default/objects/objects/listviews/customize.listview.yml +3 -1
  118. package/main/default/objects/objects/listviews/deleted.listview.yml +3 -1
  119. package/main/default/objects/objects/listviews/metadata.listview.yml +3 -1
  120. package/main/default/objects/objects/listviews/system.listview.yml +3 -1
  121. package/main/default/objects/objects/objects.object.yml +1 -1
  122. package/main/default/objects/permission_set/buttons/copy.button.yml +114 -0
  123. package/main/default/objects/permission_set/buttons/set_permission_tabs.button.yml +166 -0
  124. package/main/default/objects/{permission_set.object.yml → permission_set/permission_set.object.yml} +1 -5
  125. package/main/default/objects/queue_import.object.yml +16 -1
  126. package/main/default/objects/roles.object.yml +1 -5
  127. package/main/default/objects/sessions.object.yml +1 -1
  128. package/main/default/objects/space_users/buttons/clear_login_tokens.button.yml +4 -7
  129. package/main/default/objects/space_users/buttons/disable.button.yml +3 -7
  130. package/main/default/objects/space_users/buttons/enable.button.yml +3 -7
  131. package/main/default/objects/space_users/buttons/lockout.button.yml +3 -7
  132. package/main/default/objects/space_users/buttons/standard_edit.button.js +0 -1
  133. package/main/default/objects/space_users/buttons/unlock.button.yml +3 -7
  134. package/main/default/objects/space_users/fields/locale.field.yml +2 -1
  135. package/main/default/objects/space_users/fields/password_expired.field.yml +1 -1
  136. package/main/default/pages/about.page.amis.json +21 -4
  137. package/main/default/pages/ai_chatbots_detail.page.amis.json +393 -0
  138. package/main/default/pages/ai_chatbots_detail.page.yml +13 -0
  139. package/main/default/pages/apps_form.page.amis.json +334 -0
  140. package/main/default/pages/apps_form.page.yml +12 -0
  141. package/main/default/pages/cfs_files_record_preview.page.amis.json +4 -4
  142. package/main/default/pages/cms_files_preview.page.amis.json +25 -6
  143. package/main/default/pages/object_detail.page.amis.json +17 -11
  144. package/main/default/pages/object_fields_form.page.amis.json +1 -12
  145. package/main/default/pages/object_form.page.amis.json +1 -1
  146. package/main/default/pages/object_validation_rules_form.page.amis.json +38 -0
  147. package/main/default/pages/object_validation_rules_form.page.yml +13 -0
  148. package/main/default/pages/object_webhooks_form.page.amis.json +1 -1
  149. package/main/default/pages/organizations.page.amis.json +0 -4
  150. package/main/default/pages/space_users_list.page.amis.json +134 -19
  151. package/main/default/routes/amis_button_design.ejs +4 -1
  152. package/main/default/routes/amis_button_design.router.js +4 -3
  153. package/main/default/routes/importRecords.router.js +87 -0
  154. package/main/default/routes/notifications.router.js +113 -0
  155. package/main/default/routes/object_fields_design.ejs +23 -9
  156. package/main/default/routes/object_fields_design.router.js +5 -4
  157. package/main/default/services/app-design.service.js +2 -1
  158. package/main/default/services/notifications.service.js +190 -0
  159. package/main/default/services/spaces.service.js +1 -1
  160. package/main/default/services/users.service.js +6 -3
  161. package/main/default/tabs/admin_bull_dashboard.tab.yml +22 -0
  162. package/main/default/tabs/{admin_process_delegation_rules.tab.yml → admin_object_functions.tab.yml} +5 -8
  163. package/main/default/tabs/admin_swagger.tab.yml +22 -0
  164. package/main/default/translations/en.translation.yml +5 -4
  165. package/main/default/translations/zh-CN.translation.yml +3 -2
  166. package/main/default/triggers/objects_set_default_object_properties_trigger.trigger.yml +9 -6
  167. package/main/default/triggers/queue_import.trigger.js +16 -0
  168. package/main/default/triggers/space_users.trigger.js +3 -3
  169. package/package.json +4 -4
  170. package/package.service.js +3 -2
  171. package/public/platform.css +67 -0
  172. package/public/topic.css +17 -37
  173. package/main/default/objectTranslations/flow_positions.en/flow_positions.en.objectTranslation.yml +0 -19
  174. package/main/default/objectTranslations/flow_positions.zh-CN/flow_positions.zh-CN.objectTranslation.yml +0 -19
  175. package/main/default/objectTranslations/flow_roles.en/flow_roles.en.objectTranslation.yml +0 -11
  176. package/main/default/objectTranslations/flow_roles.zh-CN/flow_roles.zh-CN.objectTranslation.yml +0 -14
  177. package/main/default/objectTranslations/flows.en/flows.en.objectTranslation.yml +0 -317
  178. package/main/default/objectTranslations/flows.zh-CN/flows.zh-CN.objectTranslation.yml +0 -314
  179. package/main/default/objectTranslations/forms.en/forms.en.objectTranslation.yml +0 -191
  180. package/main/default/objectTranslations/forms.zh-CN/forms.zh-CN.objectTranslation.yml +0 -194
  181. package/main/default/objectTranslations/instances.en/instances.en.objectTranslation.yml +0 -155
  182. package/main/default/objectTranslations/instances.zh-CN/instances.zh-CN.objectTranslation.yml +0 -155
  183. package/main/default/objects/apps/buttons/amis_edit.button.yml +0 -39
  184. package/main/default/objects/apps/buttons/amis_new.button.yml +0 -43
  185. package/main/default/objects/flows/flows.object.yml +0 -1089
  186. package/main/default/objects/object_actions/buttons/customize.button.js +0 -33
  187. package/main/default/objects/object_actions/buttons/customize.button.yml +0 -3
  188. package/main/default/objects/object_functions/fields/is_rest.field.yml +0 -5
  189. package/main/default/objects/object_listviews/buttons/copy.button.js +0 -58
  190. package/main/default/objects/object_listviews/buttons/copy.button.yml +0 -3
  191. package/main/default/objects/object_listviews/buttons/customize.button.yml +0 -3
  192. package/main/default/objects/objects/buttons/design_field_layout.button.js +0 -28
  193. package/main/default/objects/objects/buttons/design_field_layout.button.yml +0 -5
  194. package/main/default/objects/process_definition.object.yml +0 -323
  195. package/main/default/objects/space_users/fields/zoom.field.yml +0 -16
@@ -1,3 +1,60 @@
1
+ var standardCustomizeSaveRequestAdaptor = `
2
+ var uiSchema = context.uiSchema;
3
+ var objectFields = uiSchema.fields;
4
+ var objectName = context.objectName;
5
+ var doc = context.docForStandardCustomize;
6
+ var newDoc = {}
7
+ if(objectName === "apps"){
8
+ newDoc = doc;//应用中有隐藏字段,uiSchema中没有这些字段,比如字段tab_items
9
+ newDoc.from_code_id = doc._id;
10
+ delete newDoc._id;
11
+ delete newDoc.record_permissions;
12
+ delete newDoc.__filename;
13
+ delete newDoc.responseData;
14
+ delete newDoc.responseStatus;
15
+ }
16
+ else if(objectName === "permission_set"){
17
+ objectFields = ['name', 'label', 'type', 'license', 'lockout_interval', 'max_login_attempts', 'password_history', 'default_standard_buttons', 'assigned_apps'];
18
+ _.each(objectFields, function(v, k){
19
+ if(_.has(doc, v)){
20
+ newDoc[v] = doc[v];
21
+ }
22
+ });
23
+ }
24
+ else if(objectName === "object_listviews"){
25
+ _.each(objectFields, function(v, k){
26
+ if(_.has(doc, k)){
27
+ newDoc[k] = doc[k];
28
+ }
29
+ });
30
+
31
+ if(!newDoc.columns || !newDoc.columns.length){
32
+ newDoc.columns = [];
33
+ }
34
+ newDoc.columns = newDoc.columns.map((item)=>{
35
+ if(typeof item === 'string'){
36
+ return { field: item }
37
+ }
38
+ return item;
39
+ });
40
+ newDoc.from_code_id = doc._id;
41
+ }
42
+ else{
43
+ _.each(objectFields, function(v, k){
44
+ if(_.has(doc, k)){
45
+ newDoc[k] = doc[k];
46
+ }
47
+ });
48
+ }
49
+ delete newDoc.is_system;
50
+ return {
51
+ ...api,
52
+ data: {
53
+ doc: newDoc
54
+ }
55
+ };
56
+ `;
57
+
1
58
  module.exports = {
2
59
  extend: 'base',
3
60
  actions: {
@@ -53,324 +110,327 @@ module.exports = {
53
110
  return Steedos.StandardObjects.Base.Actions.standard_delete_many.todo.apply(this, arguments)
54
111
  }
55
112
  },
56
- // standard_approve: {
57
- // label: "Initiate Approval",
58
- // visible: function (object_name, record_id, record_permissions) {
59
- // return Steedos.StandardObjects.Base.Actions.standard_approve.visible.apply(this, arguments)
60
- // },
61
- // on: "record_only",
62
- // type: "amis_button",
63
- // amis_schema: {
64
- // "type": "service",
65
- // "body": [
66
- // {
67
- // "type": "button",
68
- // "label": "发起审批",
69
- // "id": "u:6887f3ab860a",
70
- // "editorState": "default",
71
- // "onEvent": {
72
- // "click": {
73
- // "weight": 0,
74
- // "actions": [
75
- // {
76
- // "actionType": "steedos_actions_standard_approve",
77
- // }
78
- // ]
79
- // }
80
- // }
81
- // }
82
- // ],
83
- // "regions": [
84
- // "body"
85
- // ],
86
- // "data": {
87
- // "context": {},
88
- // "dataComponentId": "",
89
- // "record_id": "",
90
- // "record": {},
91
- // "permissions": {}
92
- // },
93
- // "bodyClassName": "p-0",
94
- // "id": "u:5dd49d3a508c"
95
- // }
96
- // },
97
- // standard_create_instance: {
98
- // label: "Create Approval",
99
- // sort: -1,
100
- // on: "list",
101
- // type: "amis_button",
102
- // visible: function(object_name, record_id, record_permissions, data){
103
- // if (data._isRelated) return false;
104
- // return false;
105
- // // return lodash.filter(Creator.object_workflows, (item)=>{return item.object_name == object_name && (!item.sync_direction || item.sync_direction == 'both' || item.sync_direction == 'ins_to_obj') && true !== item.forbid_initiate_instance}).length > 0
106
- // },
107
- // amis_schema: {
108
- // "type": "service",
109
- // "body": [
110
- // {
111
- // "type": "button",
112
- // "label": "申请",
113
- // "id": "u:standard_create_instance",
114
- // "editorState": "default",
115
- // "onEvent": {
116
- // "click": {
117
- // "weight": 0,
118
- // "actions": [
119
- // {
120
- // "actionType": "custom",
121
- // "script": "// 编写判断,当前可发起的流程是单个还是多个. 并返回数据用于控制下个事件是直接新建申请单草稿还是弹出流程让选择\n\nconst flows = lodash.filter(Creator.object_workflows, (item) => { return item.object_name == event.data.object_name && (!item.sync_direction || item.sync_direction == 'both' || item.sync_direction == 'ins_to_obj') && true !== item.forbid_initiate_instance })\n\nevent.setData({ ...event.data, ...{ flows: flows, flowCount: flows.length } })\n\n"
122
- // },
123
- // {
124
- // "actionType": "ajax",
125
- // "outputVar": "responseResult",
126
- // "args": {
127
- // "options": {},
128
- // "api": {
129
- // "url": "${context.rootUrl}/api/workflow/v2/draft",
130
- // "method": "post",
131
- // "requestAdaptor":"api.data = {\n \'instance\': {\n \'flow\': api.body.flows[0].flow_id,\n \'applicant\': api.body.context.userId,\n \'space\': api.body.context.tenantId\n \n}}\n\nreturn api;",
132
- // "adaptor":"\nif (payload.error) { \n return {\n status: 2,\n msg: payload.error\n }\n}\nconst instance = payload.instance;\nSteedos.openWindow(Steedos.absoluteUrl(\'/app/\' + FlowRouter.current().params.app_id + \'/instances/view/\' + instance._id + \'?display=\' + (Steedos.Page.getDisplay('instances') || '') + \'&side_object=instances&side_listview_id=draft\'))\nreturn payload;",
133
- // "messages": {},
134
- // "headers": {
135
- // "Authorization": "Bearer ${context.tenantId},${context.authToken}"
136
- // },
137
- // "data": {
138
- // "&": "$$",
139
- // "context": "${context}",
140
- // "objectName": "${objectName}",
141
- // "recordId": "${recordId}"
142
- // }
143
- // }
144
- // },
145
- // "expression": "${event.data.flowCount == 1}"
146
- // },
147
- // {
148
- // "actionType": "dialog",
149
- // "expression": "${event.data.flowCount > 1}",
150
- // "dialog": {
151
- // "type": "dialog",
152
- // "title": "选择流程发起审批",
153
- // "body": [
154
- // {
155
- // "type": "form",
156
- // "id": "u:f78efaa51a4f",
157
- // "body": [
158
- // {
159
- // "type": "input-tree",
160
- // "name": "flowId",
161
- // "label": false,
162
- // "clearable": true,
163
- // "id": "u:025b991fd40b",
164
- // "multiple": false,
165
- // "treeContainerClassName": "no-border m-none p-none",
166
- // "source": {
167
- // "method": "get",
168
- // "url": "${context.rootUrl}/api/workflow/v2/get_object_workflows",
169
- // "requestAdaptor": "api.data = {};return api;",
170
- // "adaptor":"return { data: _.filter(payload, (item) => { return item.object_name == api.body.objectName && item.can_add && (!item.sync_direction || item.sync_direction == 'both' || item.sync_direction == 'ins_to_obj') && true !== item.forbid_initiate_instance })};",
171
- // "messages": {},
172
- // "dataType": "json",
173
- // "headers": {
174
- // "Authorization": "Bearer ${context.tenantId},${context.authToken}"
175
- // },
176
- // "data": {
177
- // "objectName": "${objectName}",
178
- // "spaceId": "${context.tenantId}"
179
- // }
180
- // },
181
- // "value": "",
182
- // "labelField": "flow_name",
183
- // "valueField": "flow_id",
184
- // "onEvent": {
185
- // "change": {
186
- // "weight": 0,
187
- // "actions": [
188
- // {
189
- // "actionType": "ajax",
190
- // "outputVar": "responseResult",
191
- // "args": {
192
- // "options": {},
193
- // "api": {
194
- // "url": "${context.rootUrl}/api/workflow/v2/draft",
195
- // "method": "post",
196
- // "requestAdaptor":"api.data = {\n \'instance\': {\n \'flow\': api.body.flowId,\n \'applicant\': api.body.context.userId,\n \'space\': api.body.context.tenantId\n \n}}\n\nreturn api;",
197
- // "adaptor":"\nif (payload.error) { \n return {\n status: 2,\n msg: payload.error\n }\n}\nconst instance = payload.instance;\nSteedos.openWindow(Steedos.absoluteUrl(\'/app/\' + FlowRouter.current().params.app_id + \'/instances/view/\' + instance._id + \'?display=\' + (Steedos.Page.getDisplay('instances') || '') + \'&side_object=instances&side_listview_id=draft\'))\nreturn payload;",
198
- // "messages": {},
199
- // "headers": {
200
- // "Authorization": "Bearer ${context.tenantId},${context.authToken}"
201
- // },
202
- // "data": {
203
- // "&": "$$",
204
- // "context": "${context}",
205
- // "objectName": "${objectName}",
206
- // "recordId": "${recordId}"
207
- // }
208
- // }
209
- // },
210
- // "expression": "${event.data.value}"
211
- // },
212
- // {
213
- // "actionType": "closeDialog"
214
- // }
215
- // ]
216
- // }
217
- // }
218
- // }
219
- // ],
220
- // "wrapWithPanel": false
221
- // }
222
- // ],
223
- // "showCloseButton": true,
224
- // "showErrorMsg": true,
225
- // "showLoading": true,
226
- // "className": "",
227
- // "id": "u:ba79188bbf7e",
228
- // "closeOnEsc": true,
229
- // "actions": [],
230
- // "size": "md",
231
- // "data": {
232
- // "&": "$$"
233
- // },
234
- // "dataMap": {},
235
- // "withDefaultData": true,
236
- // "dataMapSwitch": true,
237
- // "bodyClassName": "overflow-hidden"
238
- // }
239
- // }
240
- // ]
241
- // }
242
- // }
243
- // }
244
- // ],
245
- // "regions": [
246
- // "body"
247
- // ],
248
- // "data": {
249
- // "context": {},
250
- // "dataComponentId": "",
251
- // "record_id": "",
252
- // "record": {},
253
- // "permissions": {}
254
- // },
255
- // "bodyClassName": "p-0",
256
- // "id": "u:6ac1032391f4"
257
- // }
258
- // },
259
- // standard_view_instance: {
260
- // label: "View Instance",
261
- // visible: function (object_name, record_id, record_permissions) {
262
- // return Steedos.StandardObjects.Base.Actions.standard_view_instance.visible.apply(this, arguments)
263
- // },
264
- // on: "record_only",
265
- // todo: function () {
266
- // return Steedos.StandardObjects.Base.Actions.standard_view_instance.todo.apply(this, arguments)
267
- // }
268
- // },
269
- // standard_submit_for_approval: {
270
- // visible: function (object_name, record_id) {
271
- // return Steedos.StandardObjects.Base.Actions.standard_submit_for_approval.visible.apply(this, arguments)
272
- // },
273
- // on: "record_only",
274
- // type: 'amis_button',
275
- // amis_schema: {
276
- // "type": "service",
277
- // "body": [
278
- // {
279
- // "type": "button",
280
- // "label": "提请审批",
281
- // "id": "u:standard_submit_for_approval",
282
- // "onEvent": {
283
- // "click": {
284
- // "actions": [
285
- // {
286
- // "actionType": "dialog",
287
- // "dialog": {
288
- // "type": "dialog",
289
- // "title": "提交待审核",
290
- // "body": [
291
- // {
292
- // "type": "form",
293
- // "id": "u:1eb06e6962d8",
294
- // "title": "表单",
295
- // "body": [
296
- // {
297
- // "type": "steedos-field",
298
- // "id": "u:9f4486c22f52",
299
- // "field": "{\n \"label\": \"意见\",\n \"name\": \"comment\",\n \"type\": \"textarea\",\n \"rows\": 3,\n \"is_wide\": true\n}",
300
- // "name": "comment"
301
- // },
302
- // {
303
- // "type": "steedos-field",
304
- // "id": "u:9f4486c22f52",
305
- // "field": "{\n \"label\": \"选择下一位批准人\",\n \"name\": \"approver\",\n \"type\": \"lookup\",\n \"reference_to\": \"space_users\",\n \"reference_to_field\": \"user\",\n \"required\": true,\n \"is_wide\": true\n}",
306
- // "name": "approver",
307
- // "placeholder": "",
308
- // "visibleOn": "${showApprover === true}"
309
- // }
310
- // ],
311
- // "wrapWithPanel": false,
312
- // "mode": "normal",
313
- // "api": {
314
- // "method": "post",
315
- // "url": "${context.rootUrl}/api/v4/process/submit/${objectName}/${recordId}",
316
- // "data": {
317
- // "&": "$$"
318
- // },
319
- // "requestAdaptor": "\napi.data = {\n comment: api.body.comment\n};\n\nif (api.body.approver) {\n api.data.approver = api.body.approver;\n}\n\nreturn api;",
320
- // "adaptor": "\npayload.data = {};\npayload.data.showApprover = payload.error === 'process_approval_error_needToChooseApprover'\n\nif (payload.state === 'FAILURE') {\n if (payload.data.showApprover) {\n payload.msg = \"请选择下一位批准人\";\n } else { \n payload.msg = window.t(payload.error)\n }\n}\n\n\nreturn payload;",
321
- // "responseData": {
322
- // "&": "$$"
323
- // },
324
- // "headers": {
325
- // "Authorization": "Bearer ${context.tenantId},${context.authToken}"
326
- // }
327
- // },
328
- // "debug": false,
329
- // "onEvent": {
330
- // "submitSucc": {
331
- // "weight": 0,
332
- // "actions": [
333
- // {
334
- // "actionType": "custom",
335
- // "script": `
336
- // doAction({
337
- // "actionType": "broadcast",
338
- // "args": {
339
- // "eventName": \`@data.changed.\${event.data.objectName}\`
340
- // },
341
- // "data": {
342
- // "objectName": \`\${event.data.objectName}\`
343
- // }
344
- // });
345
- // `
346
- // }
347
- // ]
348
- // }
349
- // }
350
- // }
351
- // ],
352
- // "id": "u:7a3f92e56805",
353
- // "closeOnEsc": false,
354
- // "closeOnOutside": false,
355
- // "showCloseButton": true,
356
- // "size": "md"
357
- // }
358
- // }
359
- // ],
360
- // "weight": 0
361
- // }
362
- // }
363
- // }
364
- // ],
365
- // "regions": [
366
- // "body"
367
- // ],
368
- // "data": {
369
- // },
370
- // "bodyClassName": "p-0",
371
- // "id": "u:50444554a302"
372
- // }
373
- // },
113
+ standard_approve: {
114
+ label: "Initiate Approval",
115
+ visible: function (object_name, record_id, record_permissions) {
116
+ return Steedos.StandardObjects.Base.Actions.standard_approve.visible.apply(this, arguments)
117
+ },
118
+ on: "record_only",
119
+ type: "amis_button",
120
+ amis_schema: {
121
+ "type": "service",
122
+ "body": [
123
+ {
124
+ "type": "button",
125
+ "label": "发起审批",
126
+ "id": "u:6887f3ab860a",
127
+ "editorState": "default",
128
+ "onEvent": {
129
+ "click": {
130
+ "weight": 0,
131
+ "actions": [
132
+ {
133
+ "actionType": "steedos_actions_standard_approve",
134
+ }
135
+ ]
136
+ }
137
+ }
138
+ }
139
+ ],
140
+ "regions": [
141
+ "body"
142
+ ],
143
+ "data": {
144
+ "context": {},
145
+ "dataComponentId": "",
146
+ "record_id": "",
147
+ "record": {},
148
+ "permissions": {}
149
+ },
150
+ "bodyClassName": "p-0",
151
+ "id": "u:5dd49d3a508c"
152
+ }
153
+ },
154
+ standard_create_instance: {
155
+ label: "Create Approval",
156
+ sort: -1,
157
+ on: "list",
158
+ type: "amis_button",
159
+ visible: function(object_name, record_id, record_permissions, data){
160
+ if (data._isRelated) return false;
161
+ return false;
162
+ // return lodash.filter(Steedos.object_workflows, (item)=>{return item.object_name == object_name && (!item.sync_direction || item.sync_direction == 'both' || item.sync_direction == 'ins_to_obj') && true !== item.forbid_initiate_instance}).length > 0
163
+ },
164
+ amis_schema: {
165
+ "type": "service",
166
+ "body": [
167
+ {
168
+ "type": "button",
169
+ "label": "申请",
170
+ "id": "u:standard_create_instance",
171
+ "editorState": "default",
172
+ "onEvent": {
173
+ "click": {
174
+ "weight": 0,
175
+ "actions": [
176
+ {
177
+ "actionType": "custom",
178
+ "script": "// 编写判断,当前可发起的流程是单个还是多个. 并返回数据用于控制下个事件是直接新建申请单草稿还是弹出流程让选择\n\nconst flows = lodash.filter(Steedos.object_workflows, (item) => { return item.object_name == event.data.object_name && (!item.sync_direction || item.sync_direction == 'both' || item.sync_direction == 'ins_to_obj') && true !== item.forbid_initiate_instance })\n\nevent.setData({ ...event.data, ...{ flows: flows, flowCount: flows.length } })\n\n"
179
+ },
180
+ {
181
+ "actionType": "ajax",
182
+ "outputVar": "responseResult",
183
+ "args": {
184
+ "options": {},
185
+ "api": {
186
+ "url": "${context.rootUrl}/api/workflow/v2/draft",
187
+ "method": "post",
188
+ "requestAdaptor":"api.data = {\n \'instance\': {\n \'flow\': api.body.flows[0].flow_id,\n \'applicant\': api.body.context.userId,\n \'space\': api.body.context.tenantId\n \n}}\n\nreturn api;",
189
+ "adaptor":"\nif (payload.error) { \n return {\n status: 2,\n msg: payload.error\n }\n}\nconst instance = payload.instance;\nSteedos.openWindow(Steedos.absoluteUrl(\'/app/\' + context.app_id + \'/instances/view/\' + instance._id + \'?display=\' + (Steedos.Page.getDisplay('instances') || '') + \'&side_object=instances&side_listview_id=draft\'))\nreturn payload;",
190
+ "messages": {},
191
+ "headers": {
192
+ "Authorization": "Bearer ${context.tenantId},${context.authToken}"
193
+ },
194
+ "data": {
195
+ "&": "$$",
196
+ "context": "${context}",
197
+ "objectName": "${objectName}",
198
+ "recordId": "${recordId}"
199
+ }
200
+ }
201
+ },
202
+ "expression": "${event.data.flowCount == 1}"
203
+ },
204
+ {
205
+ "actionType": "dialog",
206
+ "expression": "${event.data.flowCount > 1}",
207
+ "dialog": {
208
+ "type": "dialog",
209
+ "title": "选择流程发起审批",
210
+ "body": [
211
+ {
212
+ "type": "form",
213
+ "id": "u:f78efaa51a4f",
214
+ "body": [
215
+ {
216
+ "type": "input-tree",
217
+ "name": "flowId",
218
+ "label": false,
219
+ "clearable": true,
220
+ "id": "u:025b991fd40b",
221
+ "multiple": false,
222
+ "treeContainerClassName": "no-border m-none p-none",
223
+ "source": {
224
+ "method": "get",
225
+ "url": "${context.rootUrl}/api/workflow/v2/get_object_workflows",
226
+ "requestAdaptor": "api.data = {};return api;",
227
+ "adaptor":"return { data: _.filter(payload, (item) => { return item.object_name == api.body.objectName && item.can_add && (!item.sync_direction || item.sync_direction == 'both' || item.sync_direction == 'ins_to_obj') && true !== item.forbid_initiate_instance })};",
228
+ "messages": {},
229
+ "dataType": "json",
230
+ "headers": {
231
+ "Authorization": "Bearer ${context.tenantId},${context.authToken}"
232
+ },
233
+ "data": {
234
+ "objectName": "${objectName}",
235
+ "spaceId": "${context.tenantId}"
236
+ }
237
+ },
238
+ "value": "",
239
+ "labelField": "flow_name",
240
+ "valueField": "flow_id",
241
+ "onEvent": {
242
+ "change": {
243
+ "weight": 0,
244
+ "actions": [
245
+ {
246
+ "actionType": "ajax",
247
+ "outputVar": "responseResult",
248
+ "args": {
249
+ "options": {},
250
+ "api": {
251
+ "url": "${context.rootUrl}/api/workflow/v2/draft",
252
+ "method": "post",
253
+ "requestAdaptor":"api.data = {\n \'instance\': {\n \'flow\': api.body.flowId,\n \'applicant\': api.body.context.userId,\n \'space\': api.body.context.tenantId\n \n}}\n\nreturn api;",
254
+ "adaptor":"\nif (payload.error) { \n return {\n status: 2,\n msg: payload.error\n }\n}\nconst instance = payload.instance;\nSteedos.openWindow(Steedos.absoluteUrl(\'/app/\' + FlowRouter.current().params.app_id + \'/instances/view/\' + instance._id + \'?display=\' + (Steedos.Page.getDisplay('instances') || '') + \'&side_object=instances&side_listview_id=draft\'))\nreturn payload;",
255
+ "messages": {},
256
+ "headers": {
257
+ "Authorization": "Bearer ${context.tenantId},${context.authToken}"
258
+ },
259
+ "data": {
260
+ "&": "$$",
261
+ "context": "${context}",
262
+ "objectName": "${objectName}",
263
+ "recordId": "${recordId}"
264
+ }
265
+ }
266
+ },
267
+ "expression": "${event.data.value}"
268
+ },
269
+ {
270
+ "actionType": "closeDialog"
271
+ }
272
+ ]
273
+ }
274
+ }
275
+ }
276
+ ],
277
+ "wrapWithPanel": false
278
+ }
279
+ ],
280
+ "showCloseButton": true,
281
+ "showErrorMsg": true,
282
+ "showLoading": true,
283
+ "className": "",
284
+ "id": "u:ba79188bbf7e",
285
+ "closeOnEsc": true,
286
+ "actions": [],
287
+ "size": "md",
288
+ "data": {
289
+ "&": "$$"
290
+ },
291
+ "dataMap": {},
292
+ "withDefaultData": true,
293
+ "dataMapSwitch": true,
294
+ "bodyClassName": "overflow-hidden"
295
+ }
296
+ }
297
+ ]
298
+ }
299
+ }
300
+ }
301
+ ],
302
+ "regions": [
303
+ "body"
304
+ ],
305
+ "data": {
306
+ "context": {},
307
+ "dataComponentId": "",
308
+ "record_id": "",
309
+ "record": {},
310
+ "permissions": {}
311
+ },
312
+ "bodyClassName": "p-0",
313
+ "id": "u:6ac1032391f4"
314
+ }
315
+ },
316
+ standard_view_instance: {
317
+ label: "View Instance",
318
+ visible: function (object_name, record_id, record_permissions) {
319
+ return Steedos.StandardObjects.Base.Actions.standard_view_instance.visible.apply(this, arguments)
320
+ },
321
+ on: "record_only",
322
+ todo: function () {
323
+ return Steedos.StandardObjects.Base.Actions.standard_view_instance.todo.apply(this, arguments)
324
+ }
325
+ },
326
+ standard_submit_for_approval: {
327
+ visible: function (object_name, record_id, record_permissions, data) {
328
+ if (data && data.uiSchema && data.uiSchema.enable_process){
329
+ return Steedos.StandardObjects.Base.Actions.standard_submit_for_approval.visible.apply(this, arguments)
330
+ }
331
+ return false;
332
+ },
333
+ on: "record_only",
334
+ type: 'amis_button',
335
+ amis_schema: {
336
+ "type": "service",
337
+ "body": [
338
+ {
339
+ "type": "button",
340
+ "label": "提请审批",
341
+ "id": "u:standard_submit_for_approval",
342
+ "onEvent": {
343
+ "click": {
344
+ "actions": [
345
+ {
346
+ "actionType": "dialog",
347
+ "dialog": {
348
+ "type": "dialog",
349
+ "title": "提交待审核",
350
+ "body": [
351
+ {
352
+ "type": "form",
353
+ "id": "u:1eb06e6962d8",
354
+ "title": "表单",
355
+ "body": [
356
+ {
357
+ "type": "steedos-field",
358
+ "id": "u:9f4486c22f52",
359
+ "field": "{\n \"label\": \"意见\",\n \"name\": \"comment\",\n \"type\": \"textarea\",\n \"rows\": 3,\n \"is_wide\": true\n}",
360
+ "name": "comment"
361
+ },
362
+ {
363
+ "type": "steedos-field",
364
+ "id": "u:9f4486c22f52",
365
+ "field": "{\n \"label\": \"选择下一位批准人\",\n \"name\": \"approver\",\n \"type\": \"lookup\",\n \"reference_to\": \"space_users\",\n \"reference_to_field\": \"user\",\n \"required\": true,\n \"is_wide\": true\n}",
366
+ "name": "approver",
367
+ "placeholder": "",
368
+ "visibleOn": "${showApprover === true}"
369
+ }
370
+ ],
371
+ "wrapWithPanel": false,
372
+ "mode": "normal",
373
+ "api": {
374
+ "method": "post",
375
+ "url": "${context.rootUrl}/api/v4/process/submit/${objectName}/${recordId}",
376
+ "data": {
377
+ "&": "$$"
378
+ },
379
+ "requestAdaptor": "\napi.data = {\n comment: api.body.comment\n};\n\nif (api.body.approver) {\n api.data.approver = api.body.approver;\n}\n\nreturn api;",
380
+ "adaptor": "\npayload.data = {};\npayload.data.showApprover = payload.error === 'process_approval_error_needToChooseApprover'\n\nif (payload.state === 'FAILURE') {\n if (payload.data.showApprover) {\n payload.msg = \"请选择下一位批准人\";\n } else { \n payload.msg = window.t(payload.error)\n }\n}\n\n\nreturn payload;",
381
+ "responseData": {
382
+ "&": "$$"
383
+ },
384
+ "headers": {
385
+ "Authorization": "Bearer ${context.tenantId},${context.authToken}"
386
+ }
387
+ },
388
+ "debug": false,
389
+ "onEvent": {
390
+ "submitSucc": {
391
+ "weight": 0,
392
+ "actions": [
393
+ {
394
+ "actionType": "custom",
395
+ "script": `
396
+ doAction({
397
+ "actionType": "broadcast",
398
+ "args": {
399
+ "eventName": \`@data.changed.\${event.data.objectName}\`
400
+ },
401
+ "data": {
402
+ "objectName": \`\${event.data.objectName}\`
403
+ }
404
+ });
405
+ `
406
+ }
407
+ ]
408
+ }
409
+ }
410
+ }
411
+ ],
412
+ "id": "u:7a3f92e56805",
413
+ "closeOnEsc": false,
414
+ "closeOnOutside": false,
415
+ "showCloseButton": true,
416
+ "size": "md"
417
+ }
418
+ }
419
+ ],
420
+ "weight": 0
421
+ }
422
+ }
423
+ }
424
+ ],
425
+ "regions": [
426
+ "body"
427
+ ],
428
+ "data": {
429
+ },
430
+ "bodyClassName": "p-0",
431
+ "id": "u:50444554a302"
432
+ }
433
+ },
374
434
  standard_export_excel: {
375
435
  label: "Export Excel",
376
436
  visible: function (object_name, record_id, record_permissions) {
@@ -383,7 +443,14 @@ module.exports = {
383
443
  },
384
444
  standard_print: {
385
445
  label: "Print",
386
- visible: false,
446
+ visible: function (object_name, record_id, record_permissions, data) {
447
+ var uiSchema = data.uiSchema;
448
+ // 记录详细页面中如果有相关子记录,用RecordService组件显示子记录的话,子记录中打印按钮取的uiSchema是父记录的uiSchema,造成子记录详细界面也显示了打印按钮,这里判断下对象名称不一致时重新取uiSchema变量
449
+ if (!uiSchema || uiSchema.name !== object_name){
450
+ uiSchema = window.getUISchemaSync(object_name);
451
+ }
452
+ return uiSchema && uiSchema.enable_print;
453
+ },
387
454
  on: "record_only",
388
455
  type: 'amis_button',
389
456
  amis_schema: {
@@ -396,6 +463,7 @@ module.exports = {
396
463
  "type": "dropdown-button",
397
464
  "label": "打印",
398
465
  "buttons": "${buttonOptions}",
466
+ "className": "steedos-DropDown--show-label",
399
467
  "id": "u:8cd2cefcaf9b",
400
468
  "disabled": false,
401
469
  "hidden": false
@@ -410,7 +478,7 @@ module.exports = {
410
478
  "failed": "打印功能需要企业许可证"
411
479
  },
412
480
  "requestAdaptor": "",
413
- "adaptor": "const buttonOptions = [];\nfor (const row of payload.data.rows) {\n buttonOptions.push({\n \"type\": \"button\",\n \"label\": row.label,\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"url\",\n \"args\": {\n \"url\": \"${context.rootUrl}/api/page/render\",\n \"blank\": true,\n \"params\": {\n \"schemaApi\": \"${context.rootUrl}/service/api/@steedos/print-template/getPrintSchema/\" + row._id,\n \"data\": {\n \"filters\": [\"_id\", \"=\", \"${recordId}\"]\n } \n }\n }\n }\n ]\n }\n }\n })\n}\n\npayload.data = {\n buttonOptions: buttonOptions \n}\nreturn payload",
481
+ "adaptor": "const buttonOptions = [];\nfor (const row of payload.data.rows) {\n buttonOptions.push({\n \"type\": \"button\",\n \"label\": row.label,\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"url\",\n \"args\": {\n \"url\": \"${context.rootUrl}/api/page/render\",\n \"blank\": true,\n \"params\": {\n \"schemaApi\": \"${context.rootUrl}/service/api/print-template/getPrintSchema/\" + row._id,\n \"data\": JSON.stringify({\n \"filters\": [\"_id\", \"=\", \"${recordId}\"]\n })\n }\n }\n }\n ]\n }\n }\n })\n}\n\npayload.data = {\n buttonOptions: buttonOptions \n}\nreturn payload",
414
482
  "headers": {
415
483
  "Authorization": "Bearer ${context.tenantId},${context.authToken}"
416
484
  },
@@ -443,5 +511,119 @@ module.exports = {
443
511
  "bodyClassName": "p-0"
444
512
  }
445
513
  },
514
+ standard_customize: {
515
+ label: "Customize",
516
+ visible: function (object_name, record_id, record_permissions, data) {
517
+ if(object_name == "objects" || object_name == "object_fields"){
518
+ return false;
519
+ }
520
+ var record = data && data.record;
521
+ if(!record){
522
+ record = {}
523
+ }
524
+ var isVisible = Steedos.Object.base.actions.standard_new.visible() && record.is_system && data.uiSchema.isMetadata;
525
+ if (isVisible){
526
+ if(object_name == "apps"){
527
+ if(record_id === 'admin'){return false;}
528
+ isVisible = !record.from_code_id;
529
+ }
530
+ else if (object_name == "object_actions"){
531
+ isVisible = record.type == 'amis_button';
532
+ }
533
+ }
534
+ return isVisible;
535
+ },
536
+ on: "record_only",
537
+ type: 'amis_button',
538
+ amis_schema: {
539
+ "type": "service",
540
+ "body": [
541
+ {
542
+ "type": "button",
543
+ "label": "${'CustomAction.base.standard_customize' | t}",
544
+ "id": "u:standard_customize",
545
+ "onEvent": {
546
+ "click": {
547
+ "weight": 0,
548
+ "actions": [
549
+ {
550
+ "ignoreError": false,
551
+ "actionType": "ajax",
552
+ "outputVar": "docForStandardCustomize",
553
+ "options": {},
554
+ "api": {
555
+ "url": "${context.rootUrl}/api/v1/${objectName}/${recordId}",
556
+ "method": "get",
557
+ "adaptor": "",
558
+ "messages": {}
559
+ }
560
+ },
561
+ {
562
+ "ignoreError": false,
563
+ "actionType": "ajax",
564
+ "outputVar": "standardCustomizeResponseResult",
565
+ "options": {},
566
+ "api": {
567
+ "url": "${context.rootUrl}/api/v1/${objectName}",
568
+ "method": "post",
569
+ "sendOn": "docForStandardCustomize",
570
+ "requestAdaptor": standardCustomizeSaveRequestAdaptor,
571
+ "adaptor": "",
572
+ "messages": {}
573
+ }
574
+ },
575
+ {
576
+ "actionType": "link",
577
+ "args": {
578
+ "link": "/app/${appId}/${objectName}/view/${standardCustomizeResponseResult._id}"
579
+ },
580
+ "expression": "${_inDrawer != true}"
581
+ },
582
+ {
583
+ "actionType": "url",
584
+ "args": {
585
+ "link": "${context.rootUrl}/app/${appId}/${objectName}/view/${standardCustomizeResponseResult._id}",
586
+ "blank": true
587
+ },
588
+ "expression": "${_inDrawer == true}"
589
+ },
590
+ {
591
+ "actionType": "closeDrawer",
592
+ "expression": "${_inDrawer == true}"
593
+ },
594
+ {
595
+ "actionType": "broadcast",
596
+ "args": {
597
+ "eventName": "@data.changed.${objectName}"
598
+ },
599
+ "data": {
600
+ "objectName": "${objectName}"
601
+ },
602
+ "expression": "${_inDrawer == true}"
603
+ }
604
+ ]
605
+ }
606
+ }
607
+ }
608
+ ],
609
+ "regions": [
610
+ "body"
611
+ ],
612
+ "data": {
613
+ "context": {},
614
+ "dataComponentId": "",
615
+ "record_id": "",
616
+ "record": {},
617
+ "permissions": {}
618
+ },
619
+ "bodyClassName": "p-0",
620
+ "dsType": "api",
621
+ "asideResizor": false,
622
+ "editorState": "default",
623
+ "pullRefresh": {
624
+ "disabled": true
625
+ }
626
+ }
627
+ },
446
628
  }
447
629
  };