@steedos/service-pages 2.2.5 → 2.2.8

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 (40) 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/client/builder.client.js +11 -10
  3. package/main/default/client/onWindowMessage.client.js +39 -0
  4. package/main/default/client/page.render.client.js +86 -80
  5. package/main/default/objects/page_assignments/fields/app.field.yml +2 -0
  6. package/main/default/objects/page_assignments/fields/desktop.field.yml +1 -1
  7. package/main/default/objects/page_assignments/fields/mobile.field.yml +1 -1
  8. package/main/default/objects/page_assignments/permissions/user.permission.yml +2 -2
  9. package/main/default/objects/page_versions/buttons/standard_delete.button.js +5 -0
  10. package/main/default/objects/page_versions/buttons/standard_delete.button.yml +4 -0
  11. package/main/default/objects/page_versions/buttons/standard_delete_many.button.js +5 -0
  12. package/main/default/objects/page_versions/buttons/standard_delete_many.button.yml +4 -0
  13. package/main/default/objects/page_versions/buttons/standard_new.button.js +5 -0
  14. package/main/default/objects/page_versions/buttons/standard_new.button.yml +5 -0
  15. package/main/default/objects/page_versions/fields/is_active.field.yml +4 -0
  16. package/main/default/objects/page_versions/fields/page.field.yml +2 -1
  17. package/main/default/objects/page_versions/fields/schema.field.yml +2 -2
  18. package/main/default/objects/page_versions/fields/version.field.yml +2 -1
  19. package/main/default/objects/page_versions/listviews/all.listview.yml +1 -1
  20. package/main/default/objects/page_versions/listviews/recent.listview.yml +1 -1
  21. package/main/default/objects/page_versions/permissions/admin.permission.yml +1 -1
  22. package/main/default/objects/page_versions/permissions/user.permission.yml +2 -2
  23. package/main/default/objects/pages/fields/is_active.field.yml +5 -0
  24. package/main/default/objects/pages/fields/is_archived.field.yml +2 -2
  25. package/main/default/objects/pages/fields/type.field.yml +2 -2
  26. package/main/default/objects/pages/listviews/all.listview.yml +1 -0
  27. package/main/default/objects/pages/listviews/recent.listview.yml +1 -0
  28. package/main/default/objects/pages/pages.object.yml +5 -2
  29. package/main/default/objects/pages/permissions/user.permission.yml +2 -2
  30. package/main/default/routes/design.html +10 -1
  31. package/main/default/routes/page_design.router.js +10 -1
  32. package/main/default/routes/page_schema.router.js +2 -1
  33. package/main/default/services/page.service.js +28 -9
  34. package/main/default/triggers/page_assignments_check.trigger.js +23 -0
  35. package/main/default/triggers/page_versions_check.trigger.js +21 -0
  36. package/main/default/triggers/pages_check.trigger.js +30 -0
  37. package/package.json +2 -2
  38. package/docs/amis.md +0 -53
  39. package/main/default/objects/page_versions/fields/is_archived.field.yml +0 -4
  40. 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: 更新当前页面
@@ -1,10 +1,11 @@
1
- // ;(function() {
2
- // Builder.registryChange.subscribe(function(registry){
3
- // _.each(registry, function(value, key){
4
- // _.each(value, function(item){
5
- // const {component, ...options} = item
6
- // Builder.registerComponent(component, options)
7
- // })
8
- // })
9
- // })
10
- // })();
1
+ ;(function() {
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,36 +1,52 @@
1
+ /*
2
+ * @Author: steedos
3
+ * @Date: 2022-03-22 19:13:57
4
+ * @Description: 提供自定义page渲染能力, 供内部使用, 内容会迭代调整, 不对用户开放.
5
+ */
6
+
1
7
  Steedos.Page = {
2
8
  App: {},
3
9
  Record: {},
4
10
  Listview: {},
5
11
  RelatedListview: {},
6
- Form:{
12
+ Form: {
7
13
  StandardNew: {},
8
14
  StandardEdit: {}
9
15
  }
10
16
  };
11
17
 
12
18
  function upperFirst(str) {
13
- return str.toLowerCase().replace(/( |^)[a-z]/g, (L) => L.toUpperCase());
19
+ return str.toLowerCase().replace(/( |^)[a-z]/g, (L) => L.toUpperCase());
14
20
  };
15
21
 
16
- Steedos.Page.getPage = function(type, appId, objectApiName, recordId){
17
- if(type != 'list' && objectApiName){
18
- const objectInfo = Creator.getObject(Session.get("object_name"));
19
- if(objectInfo.version < 2){
20
- return ;
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;
21
38
  }
22
39
  }
23
40
  const formFactor = Steedos.isMobile() ? "SMALL" : "LARGE";
24
- const page = Steedos.authRequest(`/api/pageSchema/${type}?app=${appId}&objectApiName=${objectApiName}&recordId=${recordId}&formFactor=${formFactor}`, {async:false});
25
- if(page && page.schema){
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) {
26
43
  return page;
27
44
  }
28
45
  }
29
46
 
30
47
  Steedos.Page.render = function (root, page, data) {
31
- console.log(`render======>data`, data)
32
48
  if (page.render_engine && page.render_engine != 'redash') {
33
- return SteedosUI.render(BuilderComponent, {
49
+ const options = {
34
50
  model: "page", content: {
35
51
  "data": {
36
52
  "blocks": [
@@ -42,13 +58,14 @@ Steedos.Page.render = function (root, page, data) {
42
58
  "name": upperFirst(page.render_engine),
43
59
  "options": {
44
60
  "schema": typeof page.schema === 'string' ? JSON.parse(page.schema) : page.schema,
45
- "data": Object.assign({}, data,{
61
+ "data": Object.assign({}, data, {
62
+ context: {
46
63
  rootUrl: __meteor_runtime_config__.ROOT_URL,
47
64
  tenantId: Creator.USER_CONTEXT.spaceId,
48
65
  userId: Creator.USER_CONTEXT.userId,
49
- authToken: Creator.USER_CONTEXT.user.authToken,
50
- user: Creator.USER_CONTEXT.user
51
- })
66
+ authToken: Creator.USER_CONTEXT.user.authToken
67
+ }
68
+ })
52
69
  }
53
70
  },
54
71
  }
@@ -57,13 +74,15 @@ Steedos.Page.render = function (root, page, data) {
57
74
  ]
58
75
  }
59
76
  }
60
- }, root);
77
+ };
78
+ console.debug('render data', options)
79
+ return SteedosUI.render(BuilderComponent, options, root);
61
80
  }
62
81
  };
63
82
 
64
83
  Steedos.Page.App.render = function (template, pageName, app_id) {
65
- if(!pageName){
66
- return ;
84
+ if (!pageName) {
85
+ return;
67
86
  }
68
87
  var rootId = "steedosPageRoot";
69
88
  var modalRoot = document.getElementById(rootId);
@@ -76,9 +95,9 @@ Steedos.Page.App.render = function (template, pageName, app_id) {
76
95
  $(".page-template-root")[0].appendChild(modalRoot);
77
96
  }
78
97
 
79
- const page = Steedos.Page.getPage('app', app_id);
80
- if(page){
81
- if(page.render_engine && page.render_engine != 'redash'){
98
+ const page = Steedos.Page.getPage('app', app_id, null, null, pageName);
99
+ if (page) {
100
+ if (page.render_engine && page.render_engine != 'redash') {
82
101
  return Steedos.Page.render($("#" + rootId)[0], page, {
83
102
  appId: app_id
84
103
  });
@@ -90,12 +109,12 @@ Steedos.Page.App.render = function (template, pageName, app_id) {
90
109
  }, $("#" + rootId)[0]);
91
110
  };
92
111
 
93
- Steedos.Page.Listview.render = function(template, objectApiName){
112
+ Steedos.Page.Listview.render = function (template, objectApiName) {
94
113
  try {
95
- if(!template.data.regions || !objectApiName){
96
- return ;
114
+ if (!template.data.regions || !objectApiName) {
115
+ return;
97
116
  }
98
- const page = template.data.regions().page;
117
+ const { page, ...data } = template.data.regions();
99
118
 
100
119
  var rootId = "steedosPageRecordRoot";
101
120
  var modalRoot = document.getElementById(rootId);
@@ -108,22 +127,20 @@ Steedos.Page.Listview.render = function(template, objectApiName){
108
127
  $(".page-list-view-root")[0].appendChild(modalRoot);
109
128
  }
110
129
 
111
- if(page.render_engine && page.render_engine != 'redash'){
112
- return Steedos.Page.render($("#" + rootId)[0], page, template.data.regions());
130
+ if (page.render_engine && page.render_engine != 'redash') {
131
+ return Steedos.Page.render($("#" + rootId)[0], page, data);
113
132
  }
114
133
  } catch (error) {
115
-
134
+
116
135
  }
117
136
  };
118
137
 
119
- Steedos.Page.Record.render = function(template, objectApiName, recordId){
138
+ Steedos.Page.Record.render = function (template, objectApiName, recordId) {
120
139
  try {
121
- if(!template.data.regions || !objectApiName || !recordId){
122
- return ;
140
+ if (!template.data.regions || !objectApiName || !recordId) {
141
+ return;
123
142
  }
124
- console.log(`Steedos.Page.Record.render...`, template.data.regions(), objectApiName, recordId);
125
- const page = template.data.regions().page;
126
-
143
+ const { page, ...data } = template.data.regions();
127
144
  var rootId = "steedosPageRecordRoot";
128
145
  var modalRoot = document.getElementById(rootId);
129
146
  // if(modalRoot){
@@ -135,20 +152,20 @@ Steedos.Page.Record.render = function(template, objectApiName, recordId){
135
152
  $(".page-record-view-root")[0].appendChild(modalRoot);
136
153
  }
137
154
 
138
- if(page.render_engine && page.render_engine != 'redash'){
139
- return Steedos.Page.render($("#" + rootId)[0], page, template.data.regions());
155
+ if (page.render_engine && page.render_engine != 'redash') {
156
+ return Steedos.Page.render($("#" + rootId)[0], page, data);
140
157
  }
141
158
  } catch (error) {
142
-
159
+
143
160
  }
144
161
  };
145
162
 
146
- Steedos.Page.RelatedListview.render = function(template, objectApiName){
163
+ Steedos.Page.RelatedListview.render = function (template, objectApiName) {
147
164
  try {
148
- if(!template.data.regions || !objectApiName){
149
- return ;
165
+ if (!template.data.regions || !objectApiName) {
166
+ return;
150
167
  }
151
- const page = template.data.regions().page;
168
+ const { page, ...data } = template.data.regions();
152
169
 
153
170
  var rootId = "steedosPageRecordRoot";
154
171
  var modalRoot = document.getElementById(rootId);
@@ -161,66 +178,55 @@ Steedos.Page.RelatedListview.render = function(template, objectApiName){
161
178
  $(".page-related-list-view-root")[0].appendChild(modalRoot);
162
179
  }
163
180
 
164
- if(page.render_engine && page.render_engine != 'redash'){
165
- return Steedos.Page.render($("#" + rootId)[0], page, template.data.regions());
181
+ if (page.render_engine && page.render_engine != 'redash') {
182
+ return Steedos.Page.render($("#" + rootId)[0], page, data);
166
183
  }
167
184
  } catch (error) {
168
-
185
+
169
186
  }
170
187
  };
171
188
 
172
- Steedos.Page.Form.StandardNew.render = function(appId, objectApiName, tilte, initialValues){
173
-
189
+ Steedos.Page.Form.StandardNew.render = function (appId, objectApiName, title, initialValues) {
174
190
  const page = Steedos.Page.getPage('form', appId, objectApiName);
175
- if(page && page.schema){
176
- const elementId = `list-action-custom-${objectApiName}-standard_new`;
177
- if($(`#${elementId}`).length === 0){
178
- const listActionsElements = $(".grid-info-actions");
179
- listActionsElements.prepend(`<div id="${elementId}"></div>`)
180
- }
181
- return Steedos.Page.render($(`#${elementId}`)[0], page, {
191
+ if (page && page.schema) {
192
+ const elementId = getModalElement(`${objectApiName}-standard_new`);
193
+ return Steedos.Page.render(elementId, page, {
182
194
  appId: appId,
183
195
  objectName: objectApiName,
184
- tilte: tilte,
185
- initialValues: initialValues,
186
- page: page
196
+ title: title,
197
+ initialValues: initialValues
187
198
  });
188
199
  }
189
200
 
190
201
  SteedosUI.showModal(stores.ComponentRegistry.components.ObjectForm, {
191
202
  name: `${objectApiName}_standard_new_form`,
192
203
  objectApiName: objectApiName,
193
- title: tilte,
204
+ title: title,
194
205
  initialValues: initialValues,
195
- afterInsert: function(result){
196
- if(result.length > 0){
206
+ afterInsert: function (result) {
207
+ if (result.length > 0) {
197
208
  var record = result[0];
198
- setTimeout(function(){
209
+ setTimeout(function () {
199
210
  var url = `/app/${appId}/${objectApiName}/view/${record._id}`
200
211
  FlowRouter.go(url)
201
212
  }
202
- , 1);
213
+ , 1);
203
214
  return true;
204
215
  }
205
216
  }
206
- }, null, {iconPath: '/assets/icons'});
217
+ }, null, { iconPath: '/assets/icons' });
207
218
  };
208
219
 
209
- Steedos.Page.Form.StandardEdit.render = function(appId, objectApiName, tilte, recordId){
220
+ Steedos.Page.Form.StandardEdit.render = function (appId, objectApiName, title, recordId) {
210
221
 
211
222
  const page = Steedos.Page.getPage('form', appId, objectApiName, recordId);
212
- if(page && page.schema){
213
- const elementId = `list-action-custom-${objectApiName}-standard_edit`;
214
- if($(`#${elementId}`).length === 0){
215
- const listActionsElements = $(".grid-info-actions");
216
- listActionsElements.prepend(`<div id="${elementId}"></div>`)
217
- }
218
- return Steedos.Page.render($(`#${elementId}`)[0], page, {
223
+ if (page && page.schema) {
224
+ const elementId = getModalElement(`${objectApiName}-standard_edit`);
225
+ return Steedos.Page.render(elementId, page, {
219
226
  appId: appId,
220
227
  objectName: objectApiName,
221
- tilte: tilte,
222
- recordId: recordId,
223
- page: page
228
+ title: title,
229
+ recordId: recordId
224
230
  });
225
231
  }
226
232
 
@@ -228,21 +234,21 @@ Steedos.Page.Form.StandardEdit.render = function(appId, objectApiName, tilte, re
228
234
  name: `${objectApiName}_standard_edit_form`,
229
235
  objectApiName: objectApiName,
230
236
  recordId: recordId,
231
- title: tilte,
232
- afterUpdate: function(){
233
- setTimeout(function(){
234
- if(FlowRouter.current().route.path.endsWith("/:record_id")){
237
+ title: title,
238
+ afterUpdate: function () {
239
+ setTimeout(function () {
240
+ if (FlowRouter.current().route.path.endsWith("/:record_id")) {
235
241
  FlowRouter.reload()
236
242
  // ObjectForm有缓存,修改子表记录可能会有主表记录的汇总字段变更,需要刷新表单数据
237
243
  SteedosUI.reloadRecord(objectApiName, recordId)
238
- }else{
244
+ } else {
239
245
  window.refreshDxSchedulerInstance()
240
246
  window.refreshGrid();
241
247
  }
242
- }, 1);
248
+ }, 1);
243
249
  return true;
244
250
  }
245
- }, null, {iconPath: '/assets/icons'})
251
+ }, null, { iconPath: '/assets/icons' })
246
252
  };
247
253
 
248
254
  // Steedos.Page.Form.StandardDelete.render = function(){
@@ -3,4 +3,6 @@ label: 应用
3
3
  type: lookup
4
4
  reference_to: apps
5
5
  reference_to_field: code
6
+ filters:
7
+ - ['code','!=','admin']
6
8
  sort_no: 120
@@ -1,5 +1,5 @@
1
1
  name: desktop
2
2
  type: boolean
3
- label: 台式机
3
+ label: 桌面端
4
4
  sort_no: 130
5
5
  defaultValue: true
@@ -1,5 +1,5 @@
1
1
  name: mobile
2
2
  type: boolean
3
- label: 手机
3
+ label: 移动端
4
4
  sort_no: 140
5
5
  defaultValue: true
@@ -6,5 +6,5 @@ allowRead: true
6
6
  modifyAllRecords: false
7
7
  modifyCompanyRecords: false
8
8
  permission_set_id: user
9
- viewAllRecords: true
10
- viewCompanyRecords: true
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
@@ -1,4 +1,5 @@
1
1
  name: page
2
2
  label: 页面
3
3
  type: master_detail
4
- reference_to: pages
4
+ reference_to: pages
5
+ readonly: true
@@ -3,5 +3,5 @@ type: code
3
3
  language: json
4
4
  is_wide: true
5
5
  sort_no: 300
6
- omit: true
7
- hidden: true
6
+ omit: false
7
+ hidden: false
@@ -2,4 +2,5 @@ name: version
2
2
  type: number
3
3
  label: 版本号
4
4
  scale: 0
5
- omit: true
5
+ omit: true
6
+ readonly: true
@@ -2,7 +2,7 @@ name: all
2
2
  columns:
3
3
  - field: page
4
4
  - field: version
5
- - field: is_archived
5
+ - field: is_active
6
6
  - field: created
7
7
  - field: modified
8
8
  - field: is_system
@@ -2,7 +2,7 @@ name: recent
2
2
  columns:
3
3
  - field: page
4
4
  - field: version
5
- - field: is_archived
5
+ - field: is_active
6
6
  - field: created
7
7
  - field: modified
8
8
  - field: is_system
@@ -1,6 +1,6 @@
1
1
  name: 管理员
2
2
  allowCreate: true
3
- allowDelete: true
3
+ allowDelete: false
4
4
  allowEdit: true
5
5
  allowRead: true
6
6
  modifyAllRecords: true
@@ -6,5 +6,5 @@ allowRead: true
6
6
  modifyAllRecords: false
7
7
  modifyCompanyRecords: false
8
8
  permission_set_id: user
9
- viewAllRecords: true
10
- viewCompanyRecords: true
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}}"
@@ -1,5 +1,5 @@
1
1
  name: is_archived
2
- label: 启用
2
+ label: 已归档
3
3
  sort_no: 130
4
4
  type: toggle
5
- visible_on: "{{'redash' != formData.render_engine ? true: false}}"
5
+ hidden: true
@@ -4,9 +4,9 @@ type: select
4
4
  defaultValue: app
5
5
  required: true
6
6
  options:
7
- - label: 自定义应用
7
+ - label: 应用程序页面
8
8
  value: app
9
- - label: 详细页面
9
+ - label: 记录页面
10
10
  value: record
11
11
  - label: 列表页面
12
12
  value: list
@@ -2,6 +2,7 @@ name: all
2
2
  columns:
3
3
  - field: name
4
4
  - field: label
5
+ - field: render_engine
5
6
  - field: type
6
7
  - field: is_system
7
8
  wrap: false
@@ -3,6 +3,7 @@ columns:
3
3
  - field: name
4
4
  - field: label
5
5
  - field: type
6
+ - field: render_engine
6
7
  - field: is_system
7
8
  wrap: false
8
9
  filter_scope: space
@@ -21,8 +21,11 @@ version: 2
21
21
  form:
22
22
  afterView: !!js/function |
23
23
  function(){
24
- console.log(`afterView`, this.doc)
25
24
  if(this.doc.name && (this.doc.render_engine === 'redash' || !this.doc.render_engine)){
26
- SteedosUI.render(stores.ComponentRegistry.components.Page, { pageId: this.doc.name }, $(".slds-template__container")[0])
25
+ return SteedosUI.render(stores.ComponentRegistry.components.Page, { pageId: this.doc.name }, $(".slds-template__container")[0])
27
26
  }
27
+ if(this.doc.type === 'app'){
28
+ $('[data-object-name="page_assignments"]').hide()
29
+ }
30
+ $('[data-object-name="page_versions"]').hide()
28
31
  }
@@ -6,5 +6,5 @@ allowRead: true
6
6
  modifyAllRecords: false
7
7
  modifyCompanyRecords: false
8
8
  permission_set_id: user
9
- viewAllRecords: true
10
- viewCompanyRecords: true
9
+ viewAllRecords: false
10
+ viewCompanyRecords: false
@@ -7,7 +7,7 @@
7
7
 
8
8
  <body style="margin: 0;padding: 0;">
9
9
 
10
- <builder-fiddle host="https://builder.steedos.com/amis"></builder-fiddle>
10
+ <builder-fiddle host="SteedosBuilderHost"></builder-fiddle>
11
11
 
12
12
  <script>
13
13
  let comp = document.querySelector('builder-fiddle')
@@ -45,6 +45,15 @@
45
45
  },
46
46
  '*'
47
47
  );
48
+
49
+ try {
50
+ //保存时, 刷新父页面
51
+ if(window.opener){
52
+ window.opener.postMessage(Object.assign({type: "record.edited"}, {objectName: 'pages'}, {record: {}}), "*")
53
+ }
54
+ } catch (error) {
55
+ console.error(error)
56
+ }
48
57
  }).catch(function (error) {
49
58
  // handle error
50
59
  console.log(error);