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

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,9 +1,8 @@
1
1
  {
2
- "type": "service",
2
+ "type": "page",
3
3
  "body": [
4
4
  {
5
5
  "type": "service",
6
- "messages": {},
7
6
  "className": "h-full",
8
7
  "body": [
9
8
  {
@@ -14,12 +13,12 @@
14
13
  {
15
14
  "type": "wrapper",
16
15
  "size": "none",
17
- "className": "flex-shrink-0 min-w-[200px] overflow-y-auto border-r border-gray-200 lg:order-first lg:flex lg:flex-col hidden",
16
+ "className": "space-users-list-sidebar-wrapper flex-shrink-0 min-w-[220px] overflow-y-auto sm:rounded shadow bg-white my-4 ml-4 mr-1 lg:order-first lg:flex lg:flex-col ",
18
17
  "body": [
19
18
  {
20
19
  "type": "input-tree",
21
20
  "id": "u:7fd77b7915b0",
22
- "className": "",
21
+ "className": "bg-none",
23
22
  "source": {
24
23
  "method": "post",
25
24
  "url": "${context.rootUrl}/graphql",
@@ -37,6 +36,21 @@
37
36
  "onEvent": {
38
37
  "change": {
39
38
  "actions": [
39
+ {
40
+ "actionType": "custom",
41
+ "script": "document.querySelector('.space-users-list-custom-page').classList.toggle('space-users-list-sidebar-open');",
42
+ "expression": "${isMobile}"
43
+ },
44
+ {
45
+ "actionType": "setValue",
46
+ "componentId": "u:f6a209c8cf61",
47
+ "args": {
48
+ "value": {
49
+ "isVisible": "${!isVisible}"
50
+ }
51
+ },
52
+ "expression": "${isMobile}"
53
+ },
40
54
  {
41
55
  "actionType": "setValue",
42
56
  "componentId": "u:f6a209c8cf61",
@@ -64,7 +78,7 @@
64
78
  "initiallyOpen": false,
65
79
  "extractValue": true,
66
80
  "onlyChildren": true,
67
- "treeContainerClassName": "no-border",
81
+ "treeContainerClassName": "no-border h-full",
68
82
  "showIcon": false,
69
83
  "enableNodePath": false,
70
84
  "autoCheckChildren": false,
@@ -83,12 +97,46 @@
83
97
  }
84
98
  ],
85
99
  "id": "u:fd659f5c3657",
86
- "visibleOn": "${isVisible}"
100
+ "visibleOn": "${isVisible}",
101
+ "isFixedHeight": false,
102
+ "isFixedWidth": false
103
+ },
104
+ {
105
+ "type": "button",
106
+ "className": "space-users-sidebar-overlay",
107
+ "id": "u:773b1d00aab2",
108
+ "visibleOn": "${isVisible && isMobile}",
109
+ "body": [],
110
+ "onEvent": {
111
+ "click": {
112
+ "actions": [
113
+ {
114
+ "actionType": "custom",
115
+ "script": "document.querySelector('.space-users-list-custom-page').classList.toggle('space-users-list-sidebar-open');"
116
+ },
117
+ {
118
+ "actionType": "wait",
119
+ "args": {
120
+ "time": 500
121
+ }
122
+ },
123
+ {
124
+ "actionType": "setValue",
125
+ "componentId": "u:f6a209c8cf61",
126
+ "args": {
127
+ "value": {
128
+ "isVisible": "${!isVisible}"
129
+ }
130
+ }
131
+ }
132
+ ]
133
+ }
134
+ }
87
135
  },
88
136
  {
89
137
  "type": "wrapper",
90
138
  "size": "none",
91
- "className": "flex-1 overflow-y-auto focus:outline-none lg:order-last w-96",
139
+ "className": "flex-1 focus:outline-none lg:order-last w-96",
92
140
  "body": [
93
141
  {
94
142
  "type": "steedos-object-listview",
@@ -101,29 +149,40 @@
101
149
  {
102
150
  "type": "button",
103
151
  "label": "",
104
- "align": "right",
152
+ "align": "left",
105
153
  "icon": "fa fa-bars",
106
154
  "className": "bg-white p-2 rounded border-gray-300 text-gray-500",
107
- "hiddenOn": "${window:innerWidth < 768}",
108
155
  "onEvent": {
109
156
  "click": {
110
157
  "actions": [
111
158
  {
112
159
  "actionType": "setValue",
113
- "componentId": "u:f6a209c8cf61",
114
160
  "args": {
115
161
  "value": {
116
162
  "isVisible": "${!isVisible}"
117
163
  }
118
- }
164
+ },
165
+ "componentId": "u:f6a209c8cf61"
166
+ },
167
+ {
168
+ "actionType": "wait",
169
+ "args": {
170
+ "time": 50
171
+ },
172
+ "expression": "${!isMobile}"
173
+ },
174
+ {
175
+ "actionType": "custom",
176
+ "script": "document.querySelector('.space-users-list-custom-page').classList.toggle('space-users-list-sidebar-open');"
119
177
  }
120
178
  ]
121
179
  }
122
180
  },
123
- "id": "u:6f237cc36419"
181
+ "id": "u:6f237cc36419",
182
+ "hiddenOn": "${window:innerWidth < 768 && false}"
124
183
  }
125
184
  ],
126
- "className": "bg-gray-100",
185
+ "className": "",
127
186
  "style": {
128
187
  "border": 0,
129
188
  "border-radius": 0
@@ -143,9 +202,11 @@
143
202
  }
144
203
  ],
145
204
  "data": {
146
- "isVisible": true
205
+ "isVisible": "${window:innerWidth > 768}",
206
+ "isMobile": "${window:innerWidth <= 768}"
147
207
  },
148
- "id": "u:f6a209c8cf61"
208
+ "id": "u:f6a209c8cf61",
209
+ "dsType": "api"
149
210
  }
150
211
  ],
151
212
  "regions": [
@@ -155,15 +216,69 @@
155
216
  "objectName": "space_users",
156
217
  "context": {}
157
218
  },
219
+ "id": "u:b7167e2fcaf0",
158
220
  "name": "page_space_users_list",
159
221
  "bodyClassName": "p-0",
160
- "id": "u:b7167e2fcaf0",
161
222
  "asideResizor": false,
162
223
  "pullRefresh": {
163
224
  "disabled": true
164
225
  },
165
- "className": "space-users-list h-full",
166
- "style": {
167
- "padding": "${displayAs == 'grid'?'':'0px'}"
226
+ "className": {
227
+ "space-users-list-custom-page h-full": true,
228
+ "space-users-list-mobile": "${window:innerWidth < 768}",
229
+ "space-users-list-pc space-users-list-sidebar-open": "${window:innerWidth > 768}"
230
+ },
231
+ "style": {},
232
+ "dsType": "api",
233
+ "themeCss": {
234
+ "baseControlClassName": {
235
+ "padding-and-margin:default": {
236
+ "padding": "${displayAs == 'grid'?'':'0px'}"
237
+ }
238
+ }
239
+ },
240
+ "css": {
241
+ ".space-users-list-custom-page.space-users-list-mobile .space-users-list-sidebar-wrapper": {
242
+ "z-index": "601",
243
+ "top": "50px",
244
+ "left": "0px",
245
+ "bottom": "0px",
246
+ "position": "fixed",
247
+ "margin": "0px"
248
+ },
249
+ ".space-users-list-custom-page.space-users-list-mobile .space-users-sidebar-overlay": {
250
+ "z-index": "600",
251
+ "position": "fixed",
252
+ "bottom": "0px",
253
+ "right": "0px",
254
+ "left": "0px",
255
+ "top": "50px"
256
+ },
257
+ ".space-users-list-custom-page .space-users-list-sidebar-wrapper": {
258
+ "transition": "0.5s ease transform",
259
+ "will-change": "transform",
260
+ "transform": "translate(-100%,0)",
261
+ "-webkit-transform": "translate(-100%,0)",
262
+ "-moz-transform": "translate(-100%,0)",
263
+ "-ms-transform": "translate(-100%,0)",
264
+ "-o-transform": "translate(-100%,0)"
265
+ },
266
+ ".space-users-list-custom-page.space-users-list-sidebar-open .space-users-list-sidebar-wrapper": {
267
+ "transform": "translate(0,0)",
268
+ "-webkit-transform": "translate(0,0)",
269
+ "-moz-transform": "translate(0,0)",
270
+ "-ms-transform": "translate(0,0)",
271
+ "-o-transform": "translate(0,0)"
272
+ },
273
+ ".space-users-list-custom-page.space-users-list-pc .space-users-list-sidebar-wrapper": {
274
+ "min-width": "0px",
275
+ "width": "0px"
276
+ },
277
+ ".space-users-list-custom-page.space-users-list-pc.space-users-list-sidebar-open .space-users-list-sidebar-wrapper": {
278
+ "min-width": "220px"
279
+ },
280
+ ".space-users-list-custom-page.space-users-list-pc .space-users-list-sidebar-wrapper .antd-Form-item .antd-Tree": {
281
+ "max-height": "none"
282
+ }
168
283
  }
169
284
  }
@@ -16,7 +16,10 @@
16
16
  id: "<%=id%>",
17
17
  pageId: "<%=id%>",
18
18
  messageOnly: true,
19
- hiddenDeploy: true
19
+ hiddenDeploy: true,
20
+ title: "<%=locale%>" === 'zh-CN' ? '按钮设计器': 'Button Designer',
21
+ saveText: "<%=locale%>" === 'zh-CN' ? '保存': 'Save',
22
+ deployText: "<%=locale%>" === 'zh-CN' ? '发布': 'Deploy',
20
23
  };
21
24
 
22
25
  let comp = document.querySelector("builder-fiddle");
@@ -34,8 +34,8 @@ router.get('/api/amisButtonDesign', auth.requireAuthentication, async function (
34
34
  // authToken: userSession.authToken
35
35
  // }
36
36
 
37
- let locale = "zh-CN";
38
- if (req.query.locale == "en-us") {
37
+ let locale = userSession.language || process.env.STEEDOS_DEFAULT_LANGUAGE || "zh-CN";
38
+ if (req.query.locale?.startsWith('en')) {
39
39
  locale = "en-US";
40
40
  } else if (req.query.locale == "zh-cn") {
41
41
  locale = "zh-CN";
@@ -56,7 +56,8 @@ router.get('/api/amisButtonDesign', auth.requireAuthentication, async function (
56
56
  userId: userSession.userId,
57
57
  authToken: userSession.authToken,
58
58
  id: req.query.id,
59
- userSession: userSession
59
+ userSession: userSession,
60
+ locale
60
61
  }
61
62
  const options = {}
62
63
  ejs.renderFile(filename, data, options, function(err, str){
@@ -0,0 +1,87 @@
1
+
2
+ const { requireAuthentication } = require('@steedos/auth');
3
+ const { importWithCmsFile } = require('@steedos/data-import/lib/index')
4
+ const express = require('express');
5
+ const router = express.Router();
6
+
7
+ const json2xls = require('json2xls');
8
+ const { getObject } = require('@steedos/objectql');
9
+ const _ = require('lodash');
10
+
11
+ const initiateImport = async function (req, res) {
12
+ try {
13
+ const userSession = req.user;
14
+ // const spaceId = userSession.spaceId;
15
+ let { importObjId, importObjectHistoryId } = req.body;
16
+ let fileId = null;
17
+ const isSpaceAdmin = req.user.is_space_admin;
18
+ //传入了importObjId参数,必须是工作区管理员权限
19
+ if (importObjId && !isSpaceAdmin) {
20
+ return res
21
+ .status(401)
22
+ .send({ status: "error", message: "Permission denied" });
23
+ }
24
+
25
+ if (importObjectHistoryId) {
26
+ const record = await getObject('queue_import_history').findOne(importObjectHistoryId);
27
+ if (!record) {
28
+ throw new Error(
29
+ `can not find queue_import_history record with given id "${importObjectHistoryId}"`
30
+ );
31
+ }
32
+ if (!record.file) {
33
+ throw new Error(`Upload excel file, please.`);
34
+ }
35
+ fileId = record.file
36
+ importObjId = record.queue_import
37
+ }
38
+
39
+ // if (!Steedos.hasFeature('metadata_api', spaceId)) {
40
+ // return res.status(403).send({ status: 'error', message: 'Please upgrade the platform license to Enterprise Edition' });
41
+ // }
42
+
43
+ try {
44
+ let result = await importWithCmsFile(importObjId, userSession, importObjectHistoryId, fileId);
45
+ return res.status(200).send({ status: "success", result });
46
+ } catch (error) {
47
+ console.log(error)
48
+ return res
49
+ .status(500)
50
+ .send({ status: "failed", message: error.message });
51
+ }
52
+ } catch (error) {
53
+ console.log(error)
54
+ return res.status(500).send({ status: "failed", error: error.message });
55
+ }
56
+ }
57
+
58
+ router.post('/api/data/initiateImport', requireAuthentication, initiateImport);
59
+
60
+ router.get('/api/data/download/template/:record_id', requireAuthentication, async function (req, res) {
61
+ try {
62
+ const { record_id } = req.params;
63
+ let queueImportDoc = await getObject("queue_import").findOne(record_id);
64
+ let fieldMaps = queueImportDoc.field_mappings;
65
+ if (_.isEmpty(fieldMaps)) {
66
+ return;
67
+ }
68
+ let json = {};
69
+ for (const fMap of fieldMaps) {
70
+ json[fMap.header] = null;
71
+ }
72
+ let xls = json2xls([json]);
73
+ res.writeHead(200, {
74
+ 'Content-Type': 'application/octet-stream',
75
+ 'Content-Disposition': 'attachment;filename=' + encodeURI(queueImportDoc.description + '.xlsx'),
76
+ 'Access-Control-Expose-Headers': 'Content-Disposition'
77
+ });
78
+ res.end(xls, 'binary');
79
+ } catch (error) {
80
+ console.error(error);
81
+ res.status(500).send({ error: error.message });
82
+ }
83
+
84
+ });
85
+
86
+ exports.default = router;
87
+
@@ -0,0 +1,113 @@
1
+ /*
2
+ * @Author: 殷亮辉 yinlianghui@hotoa.com
3
+ * @Date: 2025-05-27 14:51:49
4
+ * @LastEditors: 殷亮辉 yinlianghui@hotoa.com
5
+ * @LastEditTime: 2025-05-27 15:48:42
6
+ */
7
+ const { requireAuthentication } = require("@steedos/auth");
8
+ const { getSteedosSchema, getObject } = require("@steedos/objectql");
9
+ const express = require("express");
10
+ const router = express.Router();
11
+ const _ = require("lodash");
12
+
13
+ const util = {
14
+ /**
15
+ * Returns the object record Relative url
16
+ */
17
+ getObjectRecordRelativeUrl: (objectName, recordId, spaceId = null, options = {}) => {
18
+ let appId = '-';
19
+ if (options.appId) {
20
+ appId = options.appId;
21
+ }
22
+ let url = `/app/${appId}/${objectName}/view/${recordId}`;
23
+ if (objectName === "instances") {
24
+ url = `/api/workflow/instances/redirect/${recordId}`
25
+ }
26
+ return url;
27
+ }
28
+ }
29
+
30
+ router.get(
31
+ "/api/v4/notifications/:_id/read",
32
+ requireAuthentication,
33
+ async function (req, res) {
34
+ let { _id: record_id } = req.params;
35
+ let { rootUrl, appId } = req.query;
36
+ const userSession = req.user;
37
+ let req_async = _.has(req.query, 'async');
38
+ if (userSession.userId) {
39
+ let record = await getSteedosSchema().getObject("notifications").findOne(record_id, { fields: ['owner', 'is_read', 'related_to', 'space', 'url'] });
40
+ if (!record) {
41
+ // 跳转到通知记录界面会显示为404效果
42
+ let redirectUrl = util.getObjectRecordRelativeUrl("notifications", record_id);
43
+ if (req.get("X-Requested-With") === 'XMLHttpRequest') {
44
+ return res.status(200).send({
45
+ "status": 404,
46
+ "redirect": redirectUrl
47
+ });
48
+ } else {
49
+ return res.redirect(redirectUrl);
50
+ }
51
+ }
52
+ if (!record.related_to && !record.url) {
53
+ return res.status(401).send({
54
+ "error": "Validate Request -- Missing related_to or url",
55
+ "success": false
56
+ });
57
+ }
58
+ if (!record.is_read && record.owner === userSession.userId) {
59
+ // 没有权限时,只是不修改is_read值,但是允许跳转到相关记录查看
60
+ await getSteedosSchema().getObject('notifications').update(record_id, { 'is_read': true, modified: new Date() })
61
+ }
62
+ let redirectUrl = record.url ? record.url : util.getObjectRecordRelativeUrl(record.related_to.o, record.related_to.ids[0], record.space, {
63
+ rootUrl, appId
64
+ });
65
+ if (req_async) { // || req.get("X-Requested-With") === 'XMLHttpRequest'
66
+ return res.status(200).send({
67
+ "status": 200,
68
+ "redirect": redirectUrl
69
+ });
70
+ } else {
71
+ return res.redirect(redirectUrl);
72
+ }
73
+ }
74
+ return res.status(401).send({
75
+ "error": "Validate Request -- Missing X-Auth-Token",
76
+ "success": false
77
+ })
78
+ }
79
+ );
80
+
81
+ router.post(
82
+ "/api/v4/notifications/all/markReadAll",
83
+ requireAuthentication,
84
+ async function (req, res) {
85
+ let userSession = req.user;
86
+ let error;
87
+ let updatedCount = await getObject("notifications").directUpdateMany([
88
+ ["space", "=", userSession.spaceId],
89
+ ["owner", "=", userSession.userId],
90
+ [["is_read", "=", null], 'or', ["is_read", "=", false]]
91
+ ], {
92
+ is_read: true
93
+ }).catch((ex) => {
94
+ console.error(ex);
95
+ error = ex;
96
+ return 0;
97
+ });
98
+ if (error) {
99
+ res.status(500).send({
100
+ "error": error,
101
+ "success": false
102
+ });
103
+ }
104
+ else {
105
+ return res.send({
106
+ markedCount: updatedCount,
107
+ "success": true
108
+ });
109
+ }
110
+ }
111
+ );
112
+
113
+ exports.default = router;
@@ -1,10 +1,3 @@
1
- <!--
2
- * @Author: baozhoutao@steedos.com
3
- * @Date: 2022-06-02 17:45:15
4
- * @LastEditors: baozhoutao@steedos.com
5
- * @LastEditTime: 2024-10-17 12:02:21
6
- * @Description:
7
- -->
8
1
  <html>
9
2
  <head>
10
3
  <script src="/unpkg.com/@steedos-builder/fiddle@0.0.5/dist/builder-fiddle.umd.js"></script>
@@ -14,6 +7,11 @@
14
7
  <link href="/toast/toastr.min.css" rel="stylesheet" />
15
8
  <script src="/jquery.min.js" ></script>
16
9
  <script src="/toast/toastr.min.js"></script>
10
+ <script>
11
+ window._disabledFields = [
12
+ 'table'
13
+ ]
14
+ </script>
17
15
  <style>
18
16
  #toast-container.toast-bottom-center>div, #toast-container.toast-top-center>div {
19
17
  width: 450px;
@@ -61,7 +59,10 @@
61
59
  useOpenAPI: useOpenAPI,
62
60
  oid: "<%=id%>",
63
61
  pageId: "<%=id%>",
64
- hiddenDeploy: true
62
+ hiddenDeploy: true,
63
+ title: "<%=locale%>" === 'zh-CN' ? '对象设计器': 'Object Designer',
64
+ saveText: "<%=locale%>" === 'zh-CN' ? '保存': 'Save',
65
+ deployText: "<%=locale%>" === 'zh-CN' ? '发布': 'Deploy',
65
66
  };
66
67
 
67
68
  let comp = document.querySelector("builder-fiddle");
@@ -115,6 +116,12 @@
115
116
  tenantId,
116
117
  authToken,
117
118
  },
119
+ global: {
120
+ userId: userId,
121
+ spaceId: tenantId,
122
+ user: <%- JSON.stringify(userSession) %>,
123
+ now: new Date(),
124
+ }
118
125
  },
119
126
  };
120
127
 
@@ -150,7 +157,12 @@
150
157
  schema.data.context.userId = userId;
151
158
  schema.data.context.authToken = authToken;
152
159
  schema.data.context.user = <%- JSON.stringify(userSession) %>;
153
-
160
+ schema.data.global = {
161
+ userId: userId,
162
+ spaceId: tenantId,
163
+ user: <%- JSON.stringify(userSession) %>,
164
+ now: new Date(),
165
+ }
154
166
  // if (objectName && pageType === "record") {
155
167
  // const record = await axios.get(
156
168
  // `${rootUrl}/api/v4/${objectName}?$orderby=modified&$top=1`,
@@ -185,11 +197,13 @@
185
197
  );
186
198
  if (schema.data && typeof schema.data.context === 'object' ) {
187
199
  delete schema.data.context
200
+ delete schema.data.global
188
201
  }
189
202
 
190
203
  try {
191
204
  delete schema.data.recordId;
192
205
  delete schema.data.objectName;
206
+ delete schema.data.global
193
207
  } catch (error) {
194
208
 
195
209
  }
@@ -36,10 +36,10 @@ router.get('/api/amisObjectFieldsDesign', auth.requireAuthentication, async func
36
36
  // userId: userSession.userId,
37
37
  // authToken: userSession.authToken
38
38
  // }
39
- let locale = "zh-CN";
40
- if (req.query.locale == "en-us") {
39
+ let locale = userSession.language || process.env.STEEDOS_DEFAULT_LANGUAGE || "zh-CN";
40
+ if (req.query.locale?.startsWith('en')) {
41
41
  locale = "en-US";
42
- } else if (req.query.locale == "zh-cn") {
42
+ } else if (req.query?.locale == "zh-cn") {
43
43
  locale = "zh-CN";
44
44
  }
45
45
  const retUrl = req.query.retUrl || process.env.ROOT_URL + '/app/admin/objects/view/' + req.query.oid
@@ -56,7 +56,8 @@ router.get('/api/amisObjectFieldsDesign', auth.requireAuthentication, async func
56
56
  authToken: userSession.authToken,
57
57
  userSession: userSession,
58
58
  id: req.query.oid,
59
- useOpenAPI: process.env.STEEDOS_PUBLIC_USE_OPEN_API
59
+ useOpenAPI: process.env.STEEDOS_PUBLIC_USE_OPEN_API,
60
+ locale: locale
60
61
  }
61
62
  const options = {}
62
63
  ejs.renderFile(filename, data, options, function(err, str){
@@ -76,7 +76,8 @@ module.exports = {
76
76
 
77
77
  return obj;
78
78
  } catch (error) {
79
- console.log(error)
79
+ console.log(error);
80
+ throw error
80
81
  }
81
82
  }
82
83
  },