@steedos/service-pages 2.2.3 → 2.2.6

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 (58) hide show
  1. package/docs//350/207/252/345/256/232/344/271/211form/347/273/204/344/273/266.md +39 -0
  2. package/main/default/applications/app_charts.app.yml +1 -1
  3. package/main/default/client/builder.client.js +10 -4
  4. package/main/default/client/onWindowMessage.client.js +39 -0
  5. package/main/default/client/page.render.client.js +234 -30
  6. package/main/default/objects/page_assignments/fields/app.field.yml +8 -0
  7. package/main/default/objects/page_assignments/fields/desktop.field.yml +5 -0
  8. package/main/default/objects/page_assignments/fields/is_system.field.yml +6 -0
  9. package/main/default/objects/page_assignments/fields/mobile.field.yml +5 -0
  10. package/main/default/objects/page_assignments/fields/page.field.yml +5 -0
  11. package/main/default/objects/page_assignments/fields/profile.field.yml +8 -0
  12. package/main/default/objects/page_assignments/fields/record_type.field.yml +4 -0
  13. package/main/default/objects/page_assignments/listviews/all.listview.yml +15 -0
  14. package/main/default/objects/page_assignments/listviews/recent.listview.yml +15 -0
  15. package/main/default/objects/page_assignments/page_assignments.object.yml +20 -0
  16. package/main/default/objects/page_assignments/permissions/admin.permission.yml +10 -0
  17. package/main/default/objects/page_assignments/permissions/user.permission.yml +10 -0
  18. package/main/default/objects/page_versions/buttons/standard_delete.button.js +5 -0
  19. package/main/default/objects/page_versions/buttons/standard_delete.button.yml +4 -0
  20. package/main/default/objects/page_versions/buttons/standard_delete_many.button.js +5 -0
  21. package/main/default/objects/page_versions/buttons/standard_delete_many.button.yml +4 -0
  22. package/main/default/objects/page_versions/buttons/standard_new.button.js +5 -0
  23. package/main/default/objects/page_versions/buttons/standard_new.button.yml +5 -0
  24. package/main/default/objects/page_versions/fields/is_active.field.yml +4 -0
  25. package/main/default/objects/page_versions/fields/page.field.yml +5 -0
  26. package/main/default/objects/page_versions/fields/schema.field.yml +7 -0
  27. package/main/default/objects/page_versions/fields/version.field.yml +6 -0
  28. package/main/default/objects/page_versions/listviews/all.listview.yml +18 -0
  29. package/main/default/objects/page_versions/listviews/recent.listview.yml +15 -0
  30. package/main/default/objects/page_versions/page_versions.object.yml +20 -0
  31. package/main/default/objects/page_versions/permissions/admin.permission.yml +10 -0
  32. package/main/default/objects/page_versions/permissions/user.permission.yml +10 -0
  33. package/main/default/objects/pages/fields/is_active.field.yml +5 -0
  34. package/main/default/objects/pages/fields/is_archived.field.yml +1 -1
  35. package/main/default/objects/pages/fields/object_name.field.yml +2 -2
  36. package/main/default/objects/pages/fields/type.field.yml +4 -4
  37. package/main/default/objects/pages/listviews/all.listview.yml +1 -0
  38. package/main/default/objects/pages/listviews/recent.listview.yml +1 -0
  39. package/main/default/objects/pages/pages.object.yml +5 -1
  40. package/main/default/objects/pages/permissions/user.permission.yml +2 -2
  41. package/main/default/routes/design.html +15 -6
  42. package/main/default/routes/page_design.router.js +10 -1
  43. package/main/default/routes/page_schema.router.js +33 -0
  44. package/main/default/services/page.service.js +281 -0
  45. package/main/default/triggers/page_assignments_check.trigger.js +23 -0
  46. package/main/default/triggers/page_versions.enable.trigger.js +15 -0
  47. package/main/default/triggers/page_versions_check.trigger.js +21 -0
  48. package/main/default/triggers/pages_check.trigger.js +30 -0
  49. package/main/default/triggers/pages_metadata.trigger.js +12 -47
  50. package/package.json +2 -2
  51. package/package.service.js +18 -18
  52. package/main/default/client/amis.client.js +0 -47
  53. package/main/default/client/style.client.js +0 -12
  54. package/main/default/objects/pages/fields/is_default.field.yml +0 -5
  55. package/public/amis/amis.css +0 -29
  56. package/public/amis/sdk/sdk.css +0 -48783
  57. package/public/amis/sdk/sdk.js +0 -3467
  58. package/public/builder.io/react/dist/builder-react.browser.js +0 -21
@@ -0,0 +1,39 @@
1
+ ## 自定义Form组件(新增、编辑)
2
+
3
+ - Form 组件需要自带弹出层
4
+ - Form 组件内部处理数据接口问题
5
+
6
+ ### 渲染Form组件时, 传入的data为
7
+ ```
8
+ data: {
9
+ appId: appId,
10
+ objectName: objectName,
11
+ recordId: record._id // 新增时为null
12
+ title: title,
13
+ initialValues: initialValues,
14
+
15
+ context: {
16
+ rootUrl: ROOT URL,
17
+ tenantId: 魔方Id,
18
+ userId: 用户Id,
19
+ authToken: 用户认证authToken
20
+ }
21
+ }
22
+ ```
23
+
24
+ ### Form组件数据处理完后,需要发出消息:
25
+
26
+ - 新增记录事件
27
+ ```
28
+ window.postMessage(Object.assign({type: "record.created"}, data, {record: record}), "*")
29
+ ```
30
+
31
+ - 编辑记录事件
32
+ ```
33
+ window.postMessage(Object.assign({type: "record.edited"}, data, {record: record}), "*")
34
+ ```
35
+ ### Platform 消费record.created、record.edited 消息
36
+
37
+ - record.created: 新建的对象名称等于当前对象名称, 则进入详细页面, 否则更新当前route
38
+
39
+ - record.edited: 更新当前页面
@@ -7,7 +7,7 @@ admin_menus:
7
7
  # permission_sets:
8
8
  # - admin
9
9
  - _id: user_interface
10
- name: 用户页面
10
+ name: 用户界面
11
11
  sort: 350
12
12
  permission_sets:
13
13
  - admin
@@ -1,5 +1,11 @@
1
1
  ;(function() {
2
- import("/builder.io/react/dist/builder-react.browser.js").then(()=>{
3
- BuilderReact.builder.init("builder-token");
4
- });
5
- })();
2
+ try {
3
+ var hm = document.createElement("script");
4
+ hm.src = "/requirejs/require.js";
5
+ var s = document.getElementsByTagName("script")[0];
6
+ s.parentNode.insertBefore(hm, s);
7
+ } catch (error) {
8
+ console.log(error);
9
+ }
10
+ })();
11
+ Builder.set({rootUrl: __meteor_runtime_config__.ROOT_URL})
@@ -0,0 +1,39 @@
1
+ /*
2
+ * @Author: steedos
3
+ * @Date: 2022-03-24 14:39:44
4
+ * @Description: 监听window message , 主要处理新增、编辑记录后的路由处理.
5
+ */
6
+
7
+ const listenerMessageType = ['record.created', 'record.edited'];
8
+
9
+ window.addEventListener('message', function (event) {
10
+ const { data } = event;
11
+ if (data && listenerMessageType.includes(data.type)) {
12
+ const {objectName, record} = data;
13
+ const {app_id: appId, object_name: routeObjectName} = FlowRouter.current().params;
14
+
15
+ switch (data.type) {
16
+ case 'record.created':
17
+ if(objectName === routeObjectName){
18
+ var url = `/app/${appId}/${objectName}/view/${record._id}`
19
+ FlowRouter.go(url)
20
+ }else{
21
+ FlowRouter.current()
22
+ }
23
+ break;
24
+ case 'record.edited':
25
+ if (FlowRouter.current().route.path.endsWith("/:record_id")) {
26
+ FlowRouter.reload()
27
+ // ObjectForm有缓存,修改子表记录可能会有主表记录的汇总字段变更,需要刷新表单数据
28
+ SteedosUI.reloadRecord(objectName, record._id)
29
+ } else {
30
+ window.refreshDxSchedulerInstance()
31
+ window.refreshGrid();
32
+ }
33
+ break;
34
+ default:
35
+ break;
36
+ }
37
+
38
+ }
39
+ });
@@ -1,12 +1,88 @@
1
- Steedos.Pages = {};
1
+ /*
2
+ * @Author: steedos
3
+ * @Date: 2022-03-22 19:13:57
4
+ * @Description: 提供自定义page渲染能力, 供内部使用, 内容会迭代调整, 不对用户开放.
5
+ */
6
+
7
+ Steedos.Page = {
8
+ App: {},
9
+ Record: {},
10
+ Listview: {},
11
+ RelatedListview: {},
12
+ Form: {
13
+ StandardNew: {},
14
+ StandardEdit: {}
15
+ }
16
+ };
2
17
 
3
18
  function upperFirst(str) {
4
- return str.toLowerCase().replace(/( |^)[a-z]/g, (L) => L.toUpperCase());
19
+ return str.toLowerCase().replace(/( |^)[a-z]/g, (L) => L.toUpperCase());
20
+ };
21
+
22
+ function getModalElement(name){
23
+ let modalRoot = document.getElementById(`steedos-page-modal-root-${name}`);
24
+ if (!modalRoot) {
25
+ modalRoot = document.createElement('div');
26
+ modalRoot.setAttribute('id', `steedos-page-modal-root-${name}`);
27
+ document.body.appendChild(modalRoot)
28
+ }
29
+ return modalRoot;
30
+ }
31
+
32
+
33
+ Steedos.Page.getPage = function (type, appId, objectApiName, recordId, pageId) {
34
+ if (type != 'list' && objectApiName) {
35
+ const objectInfo = Creator.getObject(objectApiName);
36
+ if (objectInfo && objectInfo.version < 2) {
37
+ return;
38
+ }
39
+ }
40
+ const formFactor = Steedos.isMobile() ? "SMALL" : "LARGE";
41
+ const page = Steedos.authRequest(`/api/pageSchema/${type}?app=${appId}&objectApiName=${objectApiName}&recordId=${recordId}&pageId=${pageId}&formFactor=${formFactor}`, { async: false });
42
+ if (page && page.schema) {
43
+ return page;
44
+ }
45
+ }
46
+
47
+ Steedos.Page.render = function (root, page, data) {
48
+ if (page.render_engine && page.render_engine != 'redash') {
49
+ const options = {
50
+ model: "page", content: {
51
+ "data": {
52
+ "blocks": [
53
+ {
54
+ "@type": "@builder.io/sdk:Element",
55
+ "@version": 2,
56
+ "id": `builder-${page._id}`,
57
+ "component": {
58
+ "name": upperFirst(page.render_engine),
59
+ "options": {
60
+ "schema": typeof page.schema === 'string' ? JSON.parse(page.schema) : page.schema,
61
+ "data": Object.assign({}, data, {
62
+ context: {
63
+ rootUrl: __meteor_runtime_config__.ROOT_URL,
64
+ tenantId: Creator.USER_CONTEXT.spaceId,
65
+ userId: Creator.USER_CONTEXT.userId,
66
+ authToken: Creator.USER_CONTEXT.user.authToken
67
+ }
68
+ })
69
+ }
70
+ },
71
+ }
72
+ ],
73
+ "inputs": [
74
+ ]
75
+ }
76
+ }
77
+ };
78
+ console.debug('render data', options)
79
+ return SteedosUI.render(BuilderComponent, options, root);
80
+ }
5
81
  };
6
82
 
7
- Steedos.Pages.Render = function (pageName) {
8
- if(!pageName){
9
- return ;
83
+ Steedos.Page.App.render = function (template, pageName, app_id) {
84
+ if (!pageName) {
85
+ return;
10
86
  }
11
87
  var rootId = "steedosPageRoot";
12
88
  var modalRoot = document.getElementById(rootId);
@@ -19,34 +95,162 @@ Steedos.Pages.Render = function (pageName) {
19
95
  $(".page-template-root")[0].appendChild(modalRoot);
20
96
  }
21
97
 
22
- const pages = Creator.odata.query("pages", {$filter:`(name eq '${pageName}')`}, true);
23
- if(pages.length > 0){
24
- const page = pages[0];
25
- if(page.render_engine && page.render_engine != 'redash'){
26
- return SteedosUI.render(BuilderReact.BuilderComponent, {model:"page",content:{
27
- "data":{
28
- "blocks":[
29
- {
30
- "@type":"@builder.io/sdk:Element",
31
- "@version":2,
32
- "id":"builder-2b290abc4e4042498645863f53ee6815",
33
- "component":{
34
- "name": upperFirst(page.render_engine), //_.upperFirst
35
- "options":{
36
- "schema": typeof page.schema === 'string' ? JSON.parse(page.schema) : page.schema
37
- }
38
- },
39
- }
40
- ],
41
- "inputs":[
42
-
43
- ]
44
- }
45
- }}, $("#" + rootId)[0]);
98
+ const page = Steedos.Page.getPage('app', app_id, null, null, pageName);
99
+ if (page) {
100
+ if (page.render_engine && page.render_engine != 'redash') {
101
+ return Steedos.Page.render($("#" + rootId)[0], page, {
102
+ appId: app_id
103
+ });
46
104
  }
47
105
  }
48
106
 
49
107
  SteedosUI.render(stores.ComponentRegistry.components.PublicPage, {
50
108
  token: pageName
51
109
  }, $("#" + rootId)[0]);
52
- };
110
+ };
111
+
112
+ Steedos.Page.Listview.render = function (template, objectApiName) {
113
+ try {
114
+ if (!template.data.regions || !objectApiName) {
115
+ return;
116
+ }
117
+ const { page, ...data } = template.data.regions();
118
+
119
+ var rootId = "steedosPageRecordRoot";
120
+ var modalRoot = document.getElementById(rootId);
121
+ // if(modalRoot){
122
+ // modalRoot.remove();
123
+ // }
124
+ if (!modalRoot) {
125
+ modalRoot = document.createElement('div');
126
+ modalRoot.setAttribute('id', rootId);
127
+ $(".page-list-view-root")[0].appendChild(modalRoot);
128
+ }
129
+
130
+ if (page.render_engine && page.render_engine != 'redash') {
131
+ return Steedos.Page.render($("#" + rootId)[0], page, data);
132
+ }
133
+ } catch (error) {
134
+
135
+ }
136
+ };
137
+
138
+ Steedos.Page.Record.render = function (template, objectApiName, recordId) {
139
+ try {
140
+ if (!template.data.regions || !objectApiName || !recordId) {
141
+ return;
142
+ }
143
+ const { page, ...data } = template.data.regions();
144
+ var rootId = "steedosPageRecordRoot";
145
+ var modalRoot = document.getElementById(rootId);
146
+ // if(modalRoot){
147
+ // modalRoot.remove();
148
+ // }
149
+ if (!modalRoot) {
150
+ modalRoot = document.createElement('div');
151
+ modalRoot.setAttribute('id', rootId);
152
+ $(".page-record-view-root")[0].appendChild(modalRoot);
153
+ }
154
+
155
+ if (page.render_engine && page.render_engine != 'redash') {
156
+ return Steedos.Page.render($("#" + rootId)[0], page, data);
157
+ }
158
+ } catch (error) {
159
+
160
+ }
161
+ };
162
+
163
+ Steedos.Page.RelatedListview.render = function (template, objectApiName) {
164
+ try {
165
+ if (!template.data.regions || !objectApiName) {
166
+ return;
167
+ }
168
+ const { page, ...data } = template.data.regions();
169
+
170
+ var rootId = "steedosPageRecordRoot";
171
+ var modalRoot = document.getElementById(rootId);
172
+ // if(modalRoot){
173
+ // modalRoot.remove();
174
+ // }
175
+ if (!modalRoot) {
176
+ modalRoot = document.createElement('div');
177
+ modalRoot.setAttribute('id', rootId);
178
+ $(".page-related-list-view-root")[0].appendChild(modalRoot);
179
+ }
180
+
181
+ if (page.render_engine && page.render_engine != 'redash') {
182
+ return Steedos.Page.render($("#" + rootId)[0], page, data);
183
+ }
184
+ } catch (error) {
185
+
186
+ }
187
+ };
188
+
189
+ Steedos.Page.Form.StandardNew.render = function (appId, objectApiName, title, initialValues) {
190
+ const page = Steedos.Page.getPage('form', appId, objectApiName);
191
+ if (page && page.schema) {
192
+ const elementId = getModalElement(`${objectApiName}-standard_new`);
193
+ return Steedos.Page.render(elementId, page, {
194
+ appId: appId,
195
+ objectName: objectApiName,
196
+ title: title,
197
+ initialValues: initialValues
198
+ });
199
+ }
200
+
201
+ SteedosUI.showModal(stores.ComponentRegistry.components.ObjectForm, {
202
+ name: `${objectApiName}_standard_new_form`,
203
+ objectApiName: objectApiName,
204
+ title: title,
205
+ initialValues: initialValues,
206
+ afterInsert: function (result) {
207
+ if (result.length > 0) {
208
+ var record = result[0];
209
+ setTimeout(function () {
210
+ var url = `/app/${appId}/${objectApiName}/view/${record._id}`
211
+ FlowRouter.go(url)
212
+ }
213
+ , 1);
214
+ return true;
215
+ }
216
+ }
217
+ }, null, { iconPath: '/assets/icons' });
218
+ };
219
+
220
+ Steedos.Page.Form.StandardEdit.render = function (appId, objectApiName, title, recordId) {
221
+
222
+ const page = Steedos.Page.getPage('form', appId, objectApiName, recordId);
223
+ if (page && page.schema) {
224
+ const elementId = getModalElement(`${objectApiName}-standard_edit`);
225
+ return Steedos.Page.render(elementId, page, {
226
+ appId: appId,
227
+ objectName: objectApiName,
228
+ title: title,
229
+ recordId: recordId
230
+ });
231
+ }
232
+
233
+ return SteedosUI.showModal(stores.ComponentRegistry.components.ObjectForm, {
234
+ name: `${objectApiName}_standard_edit_form`,
235
+ objectApiName: objectApiName,
236
+ recordId: recordId,
237
+ title: title,
238
+ afterUpdate: function () {
239
+ setTimeout(function () {
240
+ if (FlowRouter.current().route.path.endsWith("/:record_id")) {
241
+ FlowRouter.reload()
242
+ // ObjectForm有缓存,修改子表记录可能会有主表记录的汇总字段变更,需要刷新表单数据
243
+ SteedosUI.reloadRecord(objectApiName, recordId)
244
+ } else {
245
+ window.refreshDxSchedulerInstance()
246
+ window.refreshGrid();
247
+ }
248
+ }, 1);
249
+ return true;
250
+ }
251
+ }, null, { iconPath: '/assets/icons' })
252
+ };
253
+
254
+ // Steedos.Page.Form.StandardDelete.render = function(){
255
+
256
+ // };
@@ -0,0 +1,8 @@
1
+ name: app
2
+ label: 应用
3
+ type: lookup
4
+ reference_to: apps
5
+ reference_to_field: code
6
+ filters:
7
+ - ['code','!=','admin']
8
+ sort_no: 120
@@ -0,0 +1,5 @@
1
+ name: desktop
2
+ type: boolean
3
+ label: 桌面端
4
+ sort_no: 130
5
+ defaultValue: true
@@ -0,0 +1,6 @@
1
+ name: is_system
2
+ type: boolean
3
+ label: System
4
+ omit: true
5
+ hidden: true
6
+ disabled: true
@@ -0,0 +1,5 @@
1
+ name: mobile
2
+ type: boolean
3
+ label: 移动端
4
+ sort_no: 140
5
+ defaultValue: true
@@ -0,0 +1,5 @@
1
+ name: page
2
+ label: 页面
3
+ type: master_detail
4
+ reference_to: pages
5
+ sort_no: 110
@@ -0,0 +1,8 @@
1
+ name: profile
2
+ type: lookup
3
+ label: 简档
4
+ reference_to: permission_set
5
+ filters:
6
+ - ["type","=","profile"]
7
+ visible_on: "{{formData.app ? true: false}}"
8
+ sort_no: 125
@@ -0,0 +1,4 @@
1
+ name: record_type
2
+ type: text
3
+ label: 记录类型
4
+ hidden: true
@@ -0,0 +1,15 @@
1
+ name: all
2
+ columns:
3
+ - field: app
4
+ - field: profile
5
+ - field: record_type
6
+ - field: mobile
7
+ - field: desktop
8
+ - field: is_system
9
+ filter_scope: space
10
+ filters: []
11
+ label: 所有
12
+ scrolling_mode: standard
13
+ shared: true
14
+ sort_no: 100
15
+ type: grid
@@ -0,0 +1,15 @@
1
+ name: recent
2
+ columns:
3
+ - field: app
4
+ - field: profile
5
+ - field: record_type
6
+ - field: mobile
7
+ - field: desktop
8
+ - field: is_system
9
+ filter_scope: space
10
+ filters: []
11
+ label: 最近查看
12
+ scrolling_mode: standard
13
+ shared: true
14
+ sort_no: 100
15
+ type: grid
@@ -0,0 +1,20 @@
1
+ name: page_assignments
2
+ label: 页面分配
3
+ custom: true
4
+ enable_api: true
5
+ enable_audit: false
6
+ enable_chatter: false
7
+ enable_enhanced_lookup: false
8
+ enable_events: false
9
+ enable_files: false
10
+ enable_inline_edit: true
11
+ enable_instances: false
12
+ enable_notes: false
13
+ enable_search: false
14
+ enable_share: false
15
+ enable_tasks: false
16
+ enable_workflow: false
17
+ hidden: true
18
+ icon: contract
19
+ is_enable: true
20
+ version: 2
@@ -0,0 +1,10 @@
1
+ name: 管理员
2
+ allowCreate: true
3
+ allowDelete: true
4
+ allowEdit: true
5
+ allowRead: true
6
+ modifyAllRecords: true
7
+ modifyCompanyRecords: true
8
+ permission_set_id: admin
9
+ viewAllRecords: true
10
+ viewCompanyRecords: true
@@ -0,0 +1,10 @@
1
+ name: 用户
2
+ allowCreate: false
3
+ allowDelete: false
4
+ allowEdit: false
5
+ allowRead: true
6
+ modifyAllRecords: false
7
+ modifyCompanyRecords: false
8
+ permission_set_id: user
9
+ viewAllRecords: false
10
+ viewCompanyRecords: false
@@ -0,0 +1,5 @@
1
+ module.exports = {
2
+ standard_deleteVisible: function () {
3
+ return false
4
+ }
5
+ }
@@ -0,0 +1,4 @@
1
+ name: standard_delete
2
+ is_enable: true
3
+ label: standard_delete
4
+ visible: false
@@ -0,0 +1,5 @@
1
+ module.exports = {
2
+ standard_delete_manyVisible: function () {
3
+ return false
4
+ }
5
+ }
@@ -0,0 +1,4 @@
1
+ name: standard_delete_many
2
+ is_enable: true
3
+ label: standard_delete_many
4
+ visible: false
@@ -0,0 +1,5 @@
1
+ module.exports = {
2
+ standard_newVisible: function () {
3
+ return false
4
+ }
5
+ }
@@ -0,0 +1,5 @@
1
+ name: standard_new
2
+ is_enable: true
3
+ label: standard_new
4
+ 'on': record_only
5
+ visible: false
@@ -0,0 +1,4 @@
1
+ name: is_active
2
+ label: 已发布
3
+ sort_no: 130
4
+ type: toggle
@@ -0,0 +1,5 @@
1
+ name: page
2
+ label: 页面
3
+ type: master_detail
4
+ reference_to: pages
5
+ readonly: true
@@ -0,0 +1,7 @@
1
+ name: schema
2
+ type: code
3
+ language: json
4
+ is_wide: true
5
+ sort_no: 300
6
+ omit: false
7
+ hidden: false
@@ -0,0 +1,6 @@
1
+ name: version
2
+ type: number
3
+ label: 版本号
4
+ scale: 0
5
+ omit: true
6
+ readonly: true
@@ -0,0 +1,18 @@
1
+ name: all
2
+ columns:
3
+ - field: page
4
+ - field: version
5
+ - field: is_active
6
+ - field: created
7
+ - field: modified
8
+ - field: is_system
9
+ filter_scope: space
10
+ filters: []
11
+ label: 所有
12
+ scrolling_mode: standard
13
+ shared: true
14
+ sort_no: 100
15
+ type: grid
16
+ sort:
17
+ - field_name: 'version'
18
+ order: desc
@@ -0,0 +1,15 @@
1
+ name: recent
2
+ columns:
3
+ - field: page
4
+ - field: version
5
+ - field: is_active
6
+ - field: created
7
+ - field: modified
8
+ - field: is_system
9
+ filter_scope: space
10
+ filters: []
11
+ label: 最近查看
12
+ scrolling_mode: standard
13
+ shared: true
14
+ sort_no: 100
15
+ type: grid
@@ -0,0 +1,20 @@
1
+ name: page_versions
2
+ label: 页面版本
3
+ custom: true
4
+ enable_api: true
5
+ enable_audit: false
6
+ enable_chatter: false
7
+ enable_enhanced_lookup: false
8
+ enable_events: false
9
+ enable_files: false
10
+ enable_inline_edit: true
11
+ enable_instances: false
12
+ enable_notes: false
13
+ enable_search: false
14
+ enable_share: false
15
+ enable_tasks: false
16
+ enable_workflow: false
17
+ hidden: false
18
+ icon: contract
19
+ is_enable: true
20
+ version: 2
@@ -0,0 +1,10 @@
1
+ name: 管理员
2
+ allowCreate: true
3
+ allowDelete: false
4
+ allowEdit: true
5
+ allowRead: true
6
+ modifyAllRecords: true
7
+ modifyCompanyRecords: true
8
+ permission_set_id: admin
9
+ viewAllRecords: true
10
+ viewCompanyRecords: true
@@ -0,0 +1,10 @@
1
+ name: 用户
2
+ allowCreate: false
3
+ allowDelete: false
4
+ allowEdit: false
5
+ allowRead: true
6
+ modifyAllRecords: false
7
+ modifyCompanyRecords: false
8
+ permission_set_id: user
9
+ viewAllRecords: false
10
+ viewCompanyRecords: false
@@ -0,0 +1,5 @@
1
+ name: is_active
2
+ label: 启用
3
+ sort_no: 130
4
+ type: toggle
5
+ visible_on: "{{'redash' != formData.render_engine ? true: false}}"