@steedos/service-pages 2.2.21 → 2.2.22
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.
- package/main/default/client/builder.client.js +34 -41
- package/main/default/client/onWindowMessage.client.js +1 -21
- package/main/default/client/page.render.client.js +22 -12
- package/main/default/objects/pages/buttons/showDesign.button.js +2 -1
- package/main/default/routes/design.html +6 -6
- package/main/default/routes/page_design.ejs +44 -0
- package/main/default/routes/page_design.router.js +26 -7
- package/package.json +2 -2
|
@@ -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
|
-
|
|
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
|
+
});
|
|
@@ -106,6 +106,18 @@ Steedos.Page.render = function (root, page, data) {
|
|
|
106
106
|
|
|
107
107
|
if (page.render_engine && page.render_engine != 'redash') {
|
|
108
108
|
|
|
109
|
+
let schema = typeof page.schema === 'string' ? JSON.parse(page.schema) : page.schema;
|
|
110
|
+
const defData = Object.assign({}, data, {
|
|
111
|
+
context: {
|
|
112
|
+
rootUrl: __meteor_runtime_config__.ROOT_URL,
|
|
113
|
+
tenantId: Creator.USER_CONTEXT.spaceId,
|
|
114
|
+
userId: Creator.USER_CONTEXT.userId,
|
|
115
|
+
authToken: Creator.USER_CONTEXT.user.authToken
|
|
116
|
+
}
|
|
117
|
+
})
|
|
118
|
+
|
|
119
|
+
schema = lodash.defaultsDeep(defData , schema);
|
|
120
|
+
|
|
109
121
|
const pageContentData = {
|
|
110
122
|
"blocks": [
|
|
111
123
|
{
|
|
@@ -115,15 +127,8 @@ Steedos.Page.render = function (root, page, data) {
|
|
|
115
127
|
"component": {
|
|
116
128
|
"name": upperFirst(page.render_engine),
|
|
117
129
|
"options": {
|
|
118
|
-
"schema":
|
|
119
|
-
"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
|
-
})
|
|
130
|
+
"schema": schema,
|
|
131
|
+
"data": data
|
|
127
132
|
}
|
|
128
133
|
},
|
|
129
134
|
}
|
|
@@ -143,7 +148,7 @@ Steedos.Page.render = function (root, page, data) {
|
|
|
143
148
|
}
|
|
144
149
|
}, root)
|
|
145
150
|
|
|
146
|
-
|
|
151
|
+
Promise.all([
|
|
147
152
|
waitForThing(window, 'BuilderComponent'),
|
|
148
153
|
waitForThing(Builder.components, upperFirst(page.render_engine), findComponent)
|
|
149
154
|
]).then(()=>{
|
|
@@ -155,6 +160,8 @@ Steedos.Page.render = function (root, page, data) {
|
|
|
155
160
|
}, root)
|
|
156
161
|
});
|
|
157
162
|
}
|
|
163
|
+
|
|
164
|
+
return root;
|
|
158
165
|
};
|
|
159
166
|
|
|
160
167
|
Steedos.Page.App.render = function (template, pageName, app_id) {
|
|
@@ -172,10 +179,12 @@ Steedos.Page.App.render = function (template, pageName, app_id) {
|
|
|
172
179
|
$(".page-template-root")[0].appendChild(modalRoot);
|
|
173
180
|
}
|
|
174
181
|
|
|
182
|
+
const container = $("#" + rootId)[0];
|
|
183
|
+
|
|
175
184
|
const page = Steedos.Page.getPage('app', app_id, null, null, pageName);
|
|
176
185
|
if (page) {
|
|
177
186
|
if (page.render_engine && page.render_engine != 'redash') {
|
|
178
|
-
return Steedos.Page.render(
|
|
187
|
+
return Steedos.Page.render(container, page, {
|
|
179
188
|
appId: app_id
|
|
180
189
|
});
|
|
181
190
|
}
|
|
@@ -183,7 +192,8 @@ Steedos.Page.App.render = function (template, pageName, app_id) {
|
|
|
183
192
|
|
|
184
193
|
SteedosUI.render(stores.ComponentRegistry.components.PublicPage, {
|
|
185
194
|
token: pageName
|
|
186
|
-
},
|
|
195
|
+
}, container);
|
|
196
|
+
return container
|
|
187
197
|
};
|
|
188
198
|
|
|
189
199
|
Steedos.Page.Listview.render = function (template, objectApiName) {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
module.exports = {
|
|
2
2
|
showDesign: function (object_name, record_id) {
|
|
3
|
-
Steedos.openWindow(
|
|
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;
|
|
@@ -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=
|
|
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
|
-
|
|
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.
|
|
3
|
+
"version": "2.2.22",
|
|
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": "
|
|
14
|
+
"gitHead": "af4ea8ed034854c8de1ff8b9d5db241183524417"
|
|
15
15
|
}
|