@steedos/service-pages 2.5.11 → 2.5.12-beta.10

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.
@@ -35,9 +35,6 @@ router.get('/api/pageDesign', core.requireAuthentication, async function (req, r
35
35
  const steedosBuilderUrl = process.env.STEEDOS_BUILDER_URL || 'https://builder.steedos.cn';
36
36
  const builderHost = `${steedosBuilderUrl}/amis?${assetUrl}retUrl=${retUrl}&locale=${locale}&pageType=${page.type}`;
37
37
 
38
- // let data = fs.readFileSync(__dirname+'/design.html', 'utf8');
39
- // res.send(data.replace('SteedosBuilderHost',steedosBuilderHost).replace('DataContext', JSON.stringify(dataContext)));
40
-
41
38
  const filename = __dirname+'/page_design.ejs'
42
39
  const data = {
43
40
  builderHost,
@@ -51,7 +51,7 @@
51
51
  <script src="<%=STEEDOS_UNPKG_URL%>/crypto-js@4.1.1/crypto-js.js"></script>
52
52
 
53
53
  <!-- Steedos Builder -->
54
- <script src="<%=STEEDOS_UNPKG_URL%>/@steedos-builder/sdk@0.2.36/dist/index.umd.js"></script>
54
+ <script src="<%=STEEDOS_UNPKG_URL%>/@steedos-builder/sdk@0.2.38/dist/index.umd.js"></script>
55
55
 
56
56
  <script src="<%=STEEDOS_AMIS_URL%>/sdk/sdk.js"></script>
57
57
 
@@ -1,7 +1,9 @@
1
1
  const objectql = require('@steedos/objectql');
2
2
  const metadataAPI = require('@steedos/metadata-api');
3
3
  const _ = require('lodash');
4
-
4
+ // 使用变量,存储所有资产
5
+ const ASSETS = {};
6
+ const ENV_ASSETS = process.env.STEEDOS_PUBLIC_PAGE_ASSETURLS.split(',')
5
7
  module.exports = {
6
8
  name: "page",
7
9
  mixins: [],
@@ -205,14 +207,40 @@ module.exports = {
205
207
  }
206
208
  return result;
207
209
  }
208
- }
210
+ },
211
+ addAssetUrl: {
212
+ handler: async function (ctx) {
213
+ const { name, url } = ctx.params;
214
+ console.log(`addAssetUrl`, name, url)
215
+ return broker.broadcast("page.addAssetUrl", {
216
+ name, url
217
+ });
218
+ }
219
+ },
220
+ removeAssetUrl: {
221
+ handler: async function (ctx) {
222
+ const { name } = ctx.params;
223
+ return broker.broadcast("page.removeAssetUrl", {
224
+ name
225
+ });
226
+ }
227
+ }
209
228
  },
210
229
 
211
230
  /**
212
231
  * Events
213
232
  */
214
233
  events: {
215
-
234
+ 'page.addAssetUrl': function (ctx) {
235
+ const { name, url } = ctx.params;
236
+ ASSETS[name] = url;
237
+ process.env.STEEDOS_PUBLIC_PAGE_ASSETURLS = _.compact(_.uniq(_.concat(ENV_ASSETS, _.values(ASSETS)))).join(',');
238
+ },
239
+ 'page.removeAssetUrl': function (ctx) {
240
+ const { name } = ctx.params;
241
+ delete ASSETS[name]
242
+ process.env.STEEDOS_PUBLIC_PAGE_ASSETURLS = _.compact(_.uniq(_.concat(ENV_ASSETS, _.values(ASSETS)))).join(',');
243
+ },
216
244
  },
217
245
 
218
246
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steedos/service-pages",
3
- "version": "2.5.11",
3
+ "version": "2.5.12-beta.10",
4
4
  "main": "package.service.js",
5
5
  "scripts": {},
6
6
  "license": "MIT",
@@ -8,7 +8,7 @@
8
8
  "publishConfig": {
9
9
  "access": "public"
10
10
  },
11
- "gitHead": "fa315255231ac336e95125366f6c4362a1a3200e",
11
+ "gitHead": "ea690212bfbdc054bbea946e547b876658a0af4e",
12
12
  "dependencies": {
13
13
  "ejs": "^3.1.8"
14
14
  }
@@ -1,117 +0,0 @@
1
- <html>
2
-
3
- <head>
4
- <script src="https://builder.steedos.cn/js/axios/axios.min.js"></script>
5
- <script src="https://builder.steedos.cn/js/builder-fiddle/builder-fiddle.umd.js"></script>
6
- </head>
7
-
8
- <body style="margin: 0;padding: 0;">
9
-
10
- <builder-fiddle host="SteedosBuilderHost"></builder-fiddle>
11
-
12
- <script>
13
- let comp = document.querySelector('builder-fiddle')
14
- var params = new URLSearchParams(location.search);
15
- var pageId = params.get("pageId");
16
- // /pageVersion/:pageId/latest
17
- const dataContext = DataContext;
18
- axios.get(`/service/api/page/pageVersion/${params.get("pageId")}/latest`).then(function (response) {
19
- let result = response.data;
20
-
21
- let schema = result?.schema;
22
- let objectName = result?.object_name;
23
- let pageType = result?.type;
24
- if (typeof schema === "string") {
25
- schema = JSON.parse(schema)
26
- }
27
- if(!schema){
28
- schema = {
29
- "type": "page",
30
- "body": [],
31
- "regions": [
32
- "body"
33
- ]
34
- };
35
- }
36
-
37
- if(!schema.data){
38
- schema.data = {}
39
- }
40
-
41
- if(!schema.data.context){
42
- schema.data.context = {}
43
- }
44
-
45
- schema.data.objectName = objectName;
46
-
47
- schema.data.context.rootUrl = dataContext.rootUrl;
48
- schema.data.context.tenantId = dataContext.tenantId;
49
- schema.data.context.userId = dataContext.userId;
50
- schema.data.context.authToken = dataContext.authToken;
51
-
52
- if(objectName && pageType === 'record'){
53
- axios.get(`/api/v4/${objectName}?$orderby=created desc&$top=1`).then(function (response) {
54
- const value = response.data?.value;
55
- if(value.length > 0){
56
- schema.data.recordId = value[0]._id;
57
- }
58
- const data = {
59
- AmisSchema: schema
60
- };
61
- console.log("record data", data)
62
- comp.data = data;
63
- });
64
- }else{
65
- const data = {
66
- AmisSchema: schema
67
- };
68
- console.log("record data", data)
69
- comp.data = data;
70
- }
71
-
72
-
73
- }).catch(function (error) {
74
- // handle error
75
- console.log(error);
76
- }).then(function () {
77
- // always executed
78
- });
79
-
80
- const onWindowMessage = function (event) {
81
- const { data } = event;
82
- if (data) {
83
- if (data.type === 'builder.saveContent') {
84
- axios.put(`/service/api/page/pageVersion/${params.get("pageId")}`, {
85
- schema: JSON.stringify(data.data.AmisSchema, null, 4) //直接存储json格式会导致react form异常。
86
- }).then(function (response) {
87
- window.postMessage(
88
- {
89
- type: 'builder.contentSaved',
90
- },
91
- '*'
92
- );
93
-
94
- try {
95
- //保存时, 刷新父页面
96
- if(window.opener){
97
- window.opener.postMessage(Object.assign({type: "record.edited"}, {objectName: 'pages'}, {record: {}}), "*")
98
- }
99
- } catch (error) {
100
- console.error(error)
101
- }
102
- }).catch(function (error) {
103
- // handle error
104
- console.log(error);
105
- }).then(function () {
106
- // always executed
107
- })
108
- }
109
- }
110
- }
111
-
112
- window.addEventListener('message', onWindowMessage);
113
-
114
- </script>
115
- </body>
116
-
117
- </html>