@steedos/service-pages 2.2.21 → 2.2.24

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.
@@ -3,6 +3,10 @@
3
3
  * @Date: 2022-03-28 09:44:02
4
4
  * @Description:
5
5
  */
6
+
7
+ //window.MonacoEnvironment 始终返回undefined
8
+ ; Object.defineProperty(window, 'MonacoEnvironment', {set: ()=>{}, get: ()=>undefined});
9
+
6
10
  ; (function () {
7
11
  function _innerWaitForThing(obj, path, func){
8
12
  const timeGap = 100;
@@ -50,47 +54,36 @@
50
54
 
51
55
  // Object.defineProperty(window, 'MonacoEnvironment', {set: ()=>{}, get: ()=>window.SteedosMonacoEnvironment})
52
56
 
57
+
58
+ if (window.define)
59
+ window.define.amd = undefined;
60
+
61
+ window.ReactDOM = ReactDom;
62
+
63
+ // const BuilderSDK = BuilderReact;
64
+
65
+ // window.BuilderReact = BuilderReact;
66
+ // window.BuilderSDK = BuilderSDK;
67
+
68
+ window.Builder = BuilderReact.Builder;
69
+
70
+ window.BuilderComponent = BuilderReact.BuilderComponent;
71
+
72
+ // window.builder = BuilderReact.builder;
73
+
74
+ Builder.set({
75
+ rootUrl: __meteor_runtime_config__.ROOT_URL,
76
+ unpkgUrl: '/unpkg.com'
77
+ })
78
+
79
+ if(Meteor.settings.public.page && Meteor.settings.public.page.assetUrls){
80
+ const defaultAssetsUrls = Meteor.settings.public.page.assetUrls.split(',')
81
+ Builder.registerRemoteAssets(defaultAssetsUrls)
82
+ }
83
+
84
+ window.postMessage({ type: "Builder.loaded" })
85
+
53
86
  })();
54
87
 
55
- function injectScript(src) {
56
- return new Promise((resolve, reject) => {
57
- const script = document.createElement('script');
58
- script.src = src;
59
- script.addEventListener('load', resolve);
60
- script.addEventListener('error', e => reject(e.error));
61
- document.head.appendChild(script);
62
- });
63
- }
64
-
65
- injectScript('/unpkg.com/@steedos-builder/react/dist/builder-react.unpkg.js')
66
- .then(() => {
67
- console.log('Builder React loaded!');
68
- if (window.define)
69
- window.define.amd = undefined;
70
- window.ReactDOM = ReactDom;
71
-
72
- const BuilderSDK = BuilderReact;
73
-
74
- window.BuilderReact = BuilderReact;
75
- window.BuilderSDK = BuilderSDK;
76
-
77
- window.Builder = BuilderReact.Builder;
78
- window.BuilderComponent = BuilderReact.BuilderComponent;
79
- window.builder = BuilderReact.builder;
80
-
81
- Builder.set({
82
- rootUrl: __meteor_runtime_config__.ROOT_URL,
83
- unpkgUrl: '/unpkg.com'
84
- })
85
-
86
- if(Meteor.settings.public.page && Meteor.settings.public.page.assetUrls){
87
- const defaultAssetsUrls = Meteor.settings.public.page.assetUrls.split(',')
88
- Builder.registerRemoteAssets(defaultAssetsUrls)
89
- }
90
-
91
- window.postMessage({ type: "Builder.loaded" })
92
-
93
- }).catch(error => {
94
- console.error(error);
95
- });
88
+
96
89
 
@@ -36,24 +36,4 @@ window.addEventListener('message', function (event) {
36
36
  }
37
37
 
38
38
  }
39
- });
40
-
41
-
42
- window.addEventListener('message', function (event) {
43
- const { data } = event;
44
- if (data.type === 'builder.assetsLoaded') {
45
- waitForThing(window, 'Builder').then(()=>{
46
- Builder.initMonaco({
47
- waitSeconds: 60,
48
- baseUrl: '',
49
- paths: {
50
- 'vs': '/unpkg.com/monaco-editor/min/vs',
51
- "vs/language/css/cssMode":"/unpkg.com/monaco-editor/min/vs/language/css/cssMode",
52
- "vs/language/html/htmlMode":"/unpkg.com/monaco-editor/min/vs/language/html/htmlMode",
53
- "vs/language/typescript/tsMode":"/unpkg.com/monaco-editor/min/vs/language/typescript/tsMode",
54
- "vs/language/json/jsonMode":"/unpkg.com/monaco-editor/min/vs/language/json/jsonMode"
55
- }
56
- })
57
- })
58
- }
59
- })
39
+ });
@@ -12,6 +12,9 @@ Steedos.Page = {
12
12
  Form: {
13
13
  StandardNew: {},
14
14
  StandardEdit: {}
15
+ },
16
+ reload: function(){
17
+ FlowRouter.reload();
15
18
  }
16
19
  };
17
20
 
@@ -106,6 +109,20 @@ Steedos.Page.render = function (root, page, data) {
106
109
 
107
110
  if (page.render_engine && page.render_engine != 'redash') {
108
111
 
112
+ let schema = typeof page.schema === 'string' ? JSON.parse(page.schema) : page.schema;
113
+ const defData = Object.assign({}, data, {
114
+ data: {
115
+ context: {
116
+ rootUrl: __meteor_runtime_config__.ROOT_URL,
117
+ tenantId: Creator.USER_CONTEXT.spaceId,
118
+ userId: Creator.USER_CONTEXT.userId,
119
+ authToken: Creator.USER_CONTEXT.user.authToken
120
+ }
121
+ }
122
+ })
123
+
124
+ schema = lodash.defaultsDeep(defData , schema);
125
+
109
126
  const pageContentData = {
110
127
  "blocks": [
111
128
  {
@@ -115,15 +132,9 @@ Steedos.Page.render = function (root, page, data) {
115
132
  "component": {
116
133
  "name": upperFirst(page.render_engine),
117
134
  "options": {
118
- "schema": typeof page.schema === 'string' ? JSON.parse(page.schema) : page.schema,
119
- "data": Object.assign({}, data, {
120
- context: {
121
- rootUrl: __meteor_runtime_config__.ROOT_URL,
122
- tenantId: Creator.USER_CONTEXT.spaceId,
123
- userId: Creator.USER_CONTEXT.userId,
124
- authToken: Creator.USER_CONTEXT.user.authToken
125
- }
126
- })
135
+ "schema": schema,
136
+ "data": data,
137
+ "name": page.name
127
138
  }
128
139
  },
129
140
  }
@@ -143,7 +154,7 @@ Steedos.Page.render = function (root, page, data) {
143
154
  }
144
155
  }, root)
145
156
 
146
- return Promise.all([
157
+ Promise.all([
147
158
  waitForThing(window, 'BuilderComponent'),
148
159
  waitForThing(Builder.components, upperFirst(page.render_engine), findComponent)
149
160
  ]).then(()=>{
@@ -155,9 +166,11 @@ Steedos.Page.render = function (root, page, data) {
155
166
  }, root)
156
167
  });
157
168
  }
169
+
170
+ return root;
158
171
  };
159
172
 
160
- Steedos.Page.App.render = function (template, pageName, app_id) {
173
+ Steedos.Page.App.render = function (template, pageName, app_id, options) {
161
174
  if (!pageName) {
162
175
  return;
163
176
  }
@@ -172,21 +185,28 @@ Steedos.Page.App.render = function (template, pageName, app_id) {
172
185
  $(".page-template-root")[0].appendChild(modalRoot);
173
186
  }
174
187
 
188
+ const container = $("#" + rootId)[0];
189
+
175
190
  const page = Steedos.Page.getPage('app', app_id, null, null, pageName);
176
191
  if (page) {
177
192
  if (page.render_engine && page.render_engine != 'redash') {
178
- return Steedos.Page.render($("#" + rootId)[0], page, {
193
+ return Steedos.Page.render(container, page, Object.assign({}, options, {
179
194
  appId: app_id
180
- });
195
+ }));
181
196
  }
182
197
  }
183
198
 
184
199
  SteedosUI.render(stores.ComponentRegistry.components.PublicPage, {
185
200
  token: pageName
186
- }, $("#" + rootId)[0]);
201
+ }, container);
202
+ return container
187
203
  };
188
204
 
189
- Steedos.Page.Listview.render = function (template, objectApiName) {
205
+ Steedos.Page.Listview.getDefaultName = function (objectApiName, listViewName) {
206
+ return `listview_${objectApiName}_${listViewName}`;
207
+ };
208
+
209
+ Steedos.Page.Listview.render = function (template, objectApiName, options) {
190
210
  try {
191
211
  if (!template.data.regions || !objectApiName) {
192
212
  return;
@@ -205,14 +225,14 @@ Steedos.Page.Listview.render = function (template, objectApiName) {
205
225
  }
206
226
 
207
227
  if (page.render_engine && page.render_engine != 'redash') {
208
- return Steedos.Page.render($("#" + rootId)[0], page, data);
228
+ return Steedos.Page.render($("#" + rootId)[0], page, Object.assign({}, options, data));
209
229
  }
210
230
  } catch (error) {
211
231
 
212
232
  }
213
233
  };
214
234
 
215
- Steedos.Page.Record.render = function (template, objectApiName, recordId) {
235
+ Steedos.Page.Record.render = function (template, objectApiName, recordId, options) {
216
236
  try {
217
237
  if (!template.data.regions || !objectApiName || !recordId) {
218
238
  return;
@@ -230,14 +250,14 @@ Steedos.Page.Record.render = function (template, objectApiName, recordId) {
230
250
  }
231
251
 
232
252
  if (page.render_engine && page.render_engine != 'redash') {
233
- return Steedos.Page.render($("#" + rootId)[0], page, data);
253
+ return Steedos.Page.render($("#" + rootId)[0], page, Object.assign({}, options, data));
234
254
  }
235
255
  } catch (error) {
236
256
 
237
257
  }
238
258
  };
239
259
 
240
- Steedos.Page.RelatedListview.render = function (template, objectApiName) {
260
+ Steedos.Page.RelatedListview.render = function (template, objectApiName, options) {
241
261
  try {
242
262
  if (!template.data.regions || !objectApiName) {
243
263
  return;
@@ -256,23 +276,23 @@ Steedos.Page.RelatedListview.render = function (template, objectApiName) {
256
276
  }
257
277
 
258
278
  if (page.render_engine && page.render_engine != 'redash') {
259
- return Steedos.Page.render($("#" + rootId)[0], page, data);
279
+ return Steedos.Page.render($("#" + rootId)[0], page, Object.assign({}, options, data));
260
280
  }
261
281
  } catch (error) {
262
282
 
263
283
  }
264
284
  };
265
285
 
266
- Steedos.Page.Form.StandardNew.render = function (appId, objectApiName, title, initialValues) {
286
+ Steedos.Page.Form.StandardNew.render = function (appId, objectApiName, title, initialValues, options) {
267
287
  const page = Steedos.Page.getPage('form', appId, objectApiName);
268
288
  if (page && page.schema) {
269
289
  const elementId = getModalElement(`${objectApiName}-standard_new`);
270
- return Steedos.Page.render(elementId, page, {
290
+ return Steedos.Page.render(elementId, page, Object.assign({}, options, {
271
291
  appId: appId,
272
292
  objectName: objectApiName,
273
293
  title: title,
274
- initialValues: initialValues
275
- });
294
+ initialValues: initialValues,
295
+ }));
276
296
  }
277
297
 
278
298
  SteedosUI.showModal(stores.ComponentRegistry.components.ObjectForm, {
@@ -294,17 +314,16 @@ Steedos.Page.Form.StandardNew.render = function (appId, objectApiName, title, in
294
314
  }, null, { iconPath: '/assets/icons' });
295
315
  };
296
316
 
297
- Steedos.Page.Form.StandardEdit.render = function (appId, objectApiName, title, recordId) {
298
-
317
+ Steedos.Page.Form.StandardEdit.render = function (appId, objectApiName, title, recordId, options) {
299
318
  const page = Steedos.Page.getPage('form', appId, objectApiName, recordId);
300
319
  if (page && page.schema) {
301
320
  const elementId = getModalElement(`${objectApiName}-standard_edit`);
302
- return Steedos.Page.render(elementId, page, {
321
+ return Steedos.Page.render(elementId, page, Object.assign({}, options, {
303
322
  appId: appId,
304
323
  objectName: objectApiName,
305
324
  title: title,
306
325
  recordId: recordId
307
- });
326
+ }));
308
327
  }
309
328
 
310
329
  return SteedosUI.showModal(stores.ComponentRegistry.components.ObjectForm, {
@@ -320,7 +339,7 @@ Steedos.Page.Form.StandardEdit.render = function (appId, objectApiName, title, r
320
339
  SteedosUI.reloadRecord(objectApiName, recordId)
321
340
  } else {
322
341
  window.refreshDxSchedulerInstance()
323
- window.refreshGrid();
342
+ window.refreshGrid(options.gridName);
324
343
  }
325
344
  }, 1);
326
345
  return true;
@@ -1,6 +1,7 @@
1
1
  name: is_system
2
2
  type: boolean
3
3
  label: System
4
- omit: true
4
+ visible_on: "{{global.mode ==='read' ? true : false}}"
5
5
  readonly: true
6
- disabled: true
6
+ disabled: true
7
+ sort_no: 999
@@ -2,5 +2,4 @@ name: is_active
2
2
  label: 已发布
3
3
  sort_no: 130
4
4
  readonly: true
5
- omit: true
6
5
  type: boolean
@@ -2,5 +2,4 @@ name: version
2
2
  type: number
3
3
  label: 版本号
4
4
  scale: 0
5
- omit: true
6
5
  readonly: true
@@ -1,6 +1,7 @@
1
1
  module.exports = {
2
2
  showDesign: function (object_name, record_id) {
3
- Steedos.openWindow(Steedos.absoluteUrl(`/api/pageDesign?pageId=${record_id}`));
3
+ // Steedos.openWindow();
4
+ document.location = Steedos.absoluteUrl(`/api/pageDesign?pageId=${record_id}`);
4
5
  },
5
6
  showDesignVisible: function (object_name, record_id, record_permissions) {
6
7
  var perms, record;
@@ -1,6 +1,7 @@
1
1
  name: is_system
2
2
  type: boolean
3
3
  label: 系统
4
- omit: true
4
+ visible_on: "{{global.mode ==='read' ? true : false}}"
5
5
  readonly: true
6
- disabled: true
6
+ disabled: true
7
+ sort_no: 999
@@ -50,17 +50,17 @@
50
50
  schema.data.context.authToken = dataContext.authToken;
51
51
 
52
52
  if(objectName && pageType === 'record'){
53
- axios.get(`/api/v4/${objectName}?$orderby=modified&$top=1`).then(function (response) {
53
+ axios.get(`/api/v4/${objectName}?$orderby=created desc&$top=1`).then(function (response) {
54
54
  const value = response.data?.value;
55
55
  if(value.length > 0){
56
56
  schema.data.recordId = value[0]._id;
57
57
  }
58
+ const data = {
59
+ AmisSchema: schema
60
+ };
61
+ console.log("record data", data)
62
+ comp.data = data;
58
63
  });
59
- const data = {
60
- AmisSchema: schema
61
- };
62
- console.log("record data", data)
63
- comp.data = data;
64
64
  }else{
65
65
  const data = {
66
66
  AmisSchema: schema
@@ -0,0 +1,44 @@
1
+ <html>
2
+ <head>
3
+ <script src="https://npm.elemecdn.com/@steedos-builder/fiddle@0.0.5/dist/builder-fiddle.umd.js"></script>
4
+ </head>
5
+
6
+ <body>
7
+
8
+ <builder-fiddle host="<%=builderHost%>"></builder-fiddle>
9
+
10
+ <script>
11
+ let comp = document.querySelector( 'builder-fiddle' )
12
+ const data = {
13
+ AmisSchema: {
14
+ "type": "page",
15
+ "title": "Steedos Form Page",
16
+ "body": [
17
+ {
18
+ "type": "form",
19
+ "body": [
20
+ {
21
+ "type": "input-text",
22
+ "name": "a",
23
+ "label": "Name"
24
+ }
25
+ ]
26
+ }
27
+ ]
28
+ }
29
+ };
30
+ // comp.data = data;
31
+
32
+ const settings = {
33
+ assetUrls: '<%=assetUrls%>',
34
+ rootUrl: '<%=rootUrl%>',
35
+ userId: '<%=userId%>',
36
+ tenantId: '<%=tenantId%>',
37
+ authToken: '<%=authToken%>',
38
+ pageId: '<%=pageId%>',
39
+ }
40
+ console.log(settings)
41
+ comp.settings = settings
42
+ </script>
43
+ </body>
44
+ </html>
@@ -6,6 +6,7 @@
6
6
  const express = require("express");
7
7
  const router = express.Router();
8
8
  const core = require('@steedos/core');
9
+ const ejs = require('ejs');
9
10
  const fs = require('fs');
10
11
  const _ = require('lodash');
11
12
  router.get('/api/pageDesign', core.requireAuthentication, async function (req, res) {
@@ -14,21 +15,39 @@ router.get('/api/pageDesign', core.requireAuthentication, async function (req, r
14
15
  const userSession = req.user;
15
16
  let assetUrl = "";
16
17
  if(process.env.STEEDOS_PUBLIC_PAGE_ASSETURLS && _.isString(process.env.STEEDOS_PUBLIC_PAGE_ASSETURLS)){
17
- const assetUrls = process.env.STEEDOS_PUBLIC_PAGE_ASSETURLS.split(',');
18
+ assetUrls = process.env.STEEDOS_PUBLIC_PAGE_ASSETURLS.split(',');
18
19
  assetUrl = `assetUrl=${assetUrls.join("&assetUrl=")}&`;
19
20
  }
20
21
 
21
- const dataContext = {
22
+ // const dataContext = {
23
+ // rootUrl: __meteor_runtime_config__.ROOT_URL,
24
+ // tenantId: userSession.spaceId,
25
+ // userId: userSession.userId,
26
+ // authToken: userSession.authToken
27
+ // }
28
+
29
+ const retUrl = __meteor_runtime_config__.ROOT_URL + '/app/admin/pages/view/' + req.query.pageId
30
+ const builderHost = `https://builder.steedos.com/amis?${assetUrl}&retUrl=${retUrl}`;
31
+
32
+ // let data = fs.readFileSync(__dirname+'/design.html', 'utf8');
33
+ // res.send(data.replace('SteedosBuilderHost',steedosBuilderHost).replace('DataContext', JSON.stringify(dataContext)));
34
+
35
+ const filename = __dirname+'/page_design.ejs'
36
+ const data = {
37
+ builderHost,
38
+ assetUrls,
22
39
  rootUrl: __meteor_runtime_config__.ROOT_URL,
23
40
  tenantId: userSession.spaceId,
24
41
  userId: userSession.userId,
25
- authToken: userSession.authToken
42
+ authToken: userSession.authToken,
43
+ pageId: req.query.pageId,
26
44
  }
45
+ const options = {}
46
+ ejs.renderFile(filename, data, options, function(err, str){
47
+ // str => Rendered HTML string
48
+ res.send(str);
49
+ });
27
50
 
28
- const steedosBuilderHost = `https://builder.steedos.com/amis?${assetUrl}rootUrl=${__meteor_runtime_config__.ROOT_URL}&authToken=${userSession.authToken}&userId=${userSession.userId}&tenantId=${userSession.spaceId}&__q=`;
29
-
30
- let data = fs.readFileSync(__dirname+'/design.html', 'utf8');
31
- res.send(data.replace('SteedosBuilderHost',steedosBuilderHost).replace('DataContext', JSON.stringify(dataContext)));
32
51
  } catch (error) {
33
52
  res.status(500).send({ message: error.message });
34
53
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steedos/service-pages",
3
- "version": "2.2.21",
3
+ "version": "2.2.24",
4
4
  "main": "package.service.js",
5
5
  "scripts": {},
6
6
  "license": "MIT",
@@ -11,5 +11,5 @@
11
11
  "dependencies": {
12
12
  "@builder.io/react": "^1.1.50"
13
13
  },
14
- "gitHead": "39204e6e65ded584d76363cebfdcbcb061238d38"
14
+ "gitHead": "4650f826343d41eb0ccafabc73c721e24b04f50f"
15
15
  }