@steedos/service-pages 2.2.9 → 2.2.12
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 +127 -10
- package/main/default/objects/page_versions/fields/description.field.yml +5 -0
- package/main/default/objects/page_versions/fields/is_active.field.yml +3 -1
- package/main/default/objects/page_versions/listviews/all.listview.yml +1 -0
- package/main/default/objects/pages/buttons/deploy.button.js +25 -0
- package/main/default/objects/pages/buttons/deploy.button.yml +5 -0
- package/main/default/objects/pages/buttons/disable.button.js +30 -0
- package/main/default/objects/pages/buttons/disable.button.yml +5 -0
- package/main/default/objects/pages/buttons/enable.button.js +30 -0
- package/main/default/objects/pages/buttons/enable.button.yml +5 -0
- package/main/default/objects/pages/fields/description.field.yml +5 -0
- package/main/default/objects/pages/fields/is_active.field.yml +2 -1
- package/main/default/objects/pages/fields/is_system.field.yml +1 -1
- package/main/default/objects/pages/fields/version.field.yml +4 -5
- package/main/default/objects/pages/listviews/all.listview.yml +2 -0
- package/main/default/objects/pages/listviews/recent.listview.yml +3 -1
- package/main/default/routes/design.html +3 -3
- package/main/default/services/page.service.js +50 -14
- package/main/default/triggers/page_versions.enable.trigger.js +3 -2
- package/main/default/triggers/page_versions_check.trigger.js +5 -3
- package/main/default/triggers/pages_check.trigger.js +1 -1
- package/package.json +2 -2
- package/public/js/requirejs/@steedos-builder/react.js +8 -0
- package/public/js/requirejs/@steedos-builder/sdk.js +8 -0
- package/public/js/requirejs/builder-react.js +4 -0
- package/public/js/requirejs/builder-sdk.js +3 -0
- package/public/js/requirejs/lodash.js +3 -0
- package/public/js/requirejs/react-dom.js +3 -0
- package/public/js/requirejs/react.js +3 -0
- package/public/js/requirejs/require.js +2147 -0
|
@@ -1,11 +1,128 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
/*
|
|
2
|
+
* @Author: baozhoutao@steedos.com
|
|
3
|
+
* @Date: 2022-03-28 09:44:02
|
|
4
|
+
* @Description:
|
|
5
|
+
*/
|
|
6
|
+
; (function () {
|
|
7
|
+
// window.SteedosMonacoEnvironment = window.MonacoEnvironment = {
|
|
8
|
+
// getWorkerUrl: function (moduleId, label) {
|
|
9
|
+
// console.log(`getWorkerUrl===`, moduleId, label)
|
|
10
|
+
// const urlPath = '/unpkg.com/monaco-editor/min/vs';
|
|
11
|
+
// let filePath = '/base/worker/workerMain.js';
|
|
12
|
+
// if (label === 'json') {
|
|
13
|
+
// file = '/language/json/jsonWorker.js';
|
|
14
|
+
// }
|
|
15
|
+
// if (label === 'css') {
|
|
16
|
+
// file = '/language/css/cssWorker.js';
|
|
17
|
+
// }
|
|
18
|
+
// if (label === 'html') {
|
|
19
|
+
// file = '/language/html/htmlWorker.js';
|
|
20
|
+
// }
|
|
21
|
+
// if (label === 'typescript' || label === 'javascript') {
|
|
22
|
+
// file = '/language/typescript/tsWorker.js';
|
|
23
|
+
// }
|
|
24
|
+
// return `${urlPath}${filePath}`;
|
|
25
|
+
// }
|
|
26
|
+
// }
|
|
27
|
+
window.SteedosMonacoEnvironment = window.MonacoEnvironment = {
|
|
28
|
+
getWorkerUrl: function(workerId, label) {
|
|
29
|
+
return `data:text/javascript;charset=utf-8,${encodeURIComponent(`
|
|
30
|
+
self.MonacoEnvironment = {
|
|
31
|
+
baseUrl: '${window.location.origin}/unpkg.com/monaco-editor/min/'
|
|
32
|
+
};
|
|
33
|
+
importScripts('${window.location.origin}/unpkg.com/monaco-editor/min/vs/base/worker/workerMain.js');`
|
|
34
|
+
)}`;
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
10
40
|
})();
|
|
11
|
-
|
|
41
|
+
|
|
42
|
+
function injectScript(src) {
|
|
43
|
+
return new Promise((resolve, reject) => {
|
|
44
|
+
const script = document.createElement('script');
|
|
45
|
+
script.src = src;
|
|
46
|
+
script.addEventListener('load', resolve);
|
|
47
|
+
script.addEventListener('error', e => reject(e.error));
|
|
48
|
+
document.head.appendChild(script);
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
injectScript('/unpkg.com/@steedos-builder/react/dist/builder-react.unpkg.js')
|
|
53
|
+
.then(() => {
|
|
54
|
+
console.log('Builder loaded!');
|
|
55
|
+
const BuilderSDK = BuilderReact;
|
|
56
|
+
|
|
57
|
+
window.BuilderReact = BuilderReact;
|
|
58
|
+
window.BuilderSDK = BuilderSDK;
|
|
59
|
+
|
|
60
|
+
window.Builder = BuilderReact.Builder;
|
|
61
|
+
window.BuilderComponent = BuilderReact.BuilderComponent;
|
|
62
|
+
window.builder = BuilderReact.builder;
|
|
63
|
+
|
|
64
|
+
Builder.set({rootUrl: __meteor_runtime_config__.ROOT_URL, unpkgUrl: Meteor.settings.public.unpkgUrl || 'https://npm.elemecdn.com'})
|
|
65
|
+
window['React'] = require('react');
|
|
66
|
+
window['ReactDOM'] = require('react-dom');
|
|
67
|
+
// window['lodash'] = require('lodash');
|
|
68
|
+
|
|
69
|
+
Builder.registerImportMap({
|
|
70
|
+
"lodash": '/js/requirejs/lodash',
|
|
71
|
+
"react": '/js/requirejs/react',
|
|
72
|
+
"react-dom": '/js/requirejs/react-dom',
|
|
73
|
+
"@steedos-builder/sdk": '/js/requirejs/builder-sdk',
|
|
74
|
+
"@steedos-builder/react": '/js/requirejs/builder-react',
|
|
75
|
+
})
|
|
76
|
+
Builder.require(['lodash',"react", "react-dom"])
|
|
77
|
+
|
|
78
|
+
Builder.requirejs.config(
|
|
79
|
+
{
|
|
80
|
+
waitSeconds: 60,
|
|
81
|
+
baseUrl: '',
|
|
82
|
+
paths: {
|
|
83
|
+
'vs': '/unpkg.com/monaco-editor/min/vs',
|
|
84
|
+
"vs/language/css/cssMode":"/unpkg.com/monaco-editor/min/vs/language/css/cssMode",
|
|
85
|
+
"vs/language/html/htmlMode":"/unpkg.com/monaco-editor/min/vs/language/html/htmlMode",
|
|
86
|
+
"vs/language/typescript/tsMode":"/unpkg.com/monaco-editor/min/vs/language/typescript/tsMode",
|
|
87
|
+
"vs/language/json/jsonMode":"/unpkg.com/monaco-editor/min/vs/language/json/jsonMode"
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
);
|
|
91
|
+
Builder.requirejs(['vs/editor/editor.main'], () => {
|
|
92
|
+
return monaco = window['monaco'];
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
}).catch(error => {
|
|
98
|
+
console.error(error);
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
// import("https://unpkg.com/@steedos-builder/react@0.2.11/dist/builder-react.umd.js").then(function(BuilderReact) {
|
|
102
|
+
|
|
103
|
+
// console.log('Builder loaded!');
|
|
104
|
+
// const BuilderSDK = BuilderReact;
|
|
105
|
+
|
|
106
|
+
// window.BuilderReact = BuilderReact;
|
|
107
|
+
// window.BuilderSDK = BuilderSDK;
|
|
108
|
+
|
|
109
|
+
// window.Builder = BuilderReact.Builder;
|
|
110
|
+
// window.BuilderComponent = BuilderReact.BuilderComponent;
|
|
111
|
+
// window.builder = BuilderReact.builder;
|
|
112
|
+
|
|
113
|
+
// Builder.set({rootUrl: __meteor_runtime_config__.ROOT_URL})
|
|
114
|
+
// window['React'] = require('react');
|
|
115
|
+
// window['ReactDOM'] = require('react-dom');
|
|
116
|
+
// // window['lodash'] = require('lodash');
|
|
117
|
+
|
|
118
|
+
// Builder.registerImportMap({
|
|
119
|
+
// // "lodash": '/requirejs/lodash',
|
|
120
|
+
// "react": '/requirejs/react',
|
|
121
|
+
// "react-dom": '/requirejs/react-dom',
|
|
122
|
+
// "@steedos-builder/sdk": '/requirejs/builder-sdk',
|
|
123
|
+
// "@steedos-builder/react": '/requirejs/builder-react',
|
|
124
|
+
// })
|
|
125
|
+
// Builder.require(['lodash',"react", "react-dom"])
|
|
126
|
+
|
|
127
|
+
// });
|
|
128
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
deploy: function (object_name, record_id) {
|
|
3
|
+
$(document.body).addClass('loading');
|
|
4
|
+
let url = `/service/api/page/deploy`;
|
|
5
|
+
let options = {
|
|
6
|
+
type: 'post',
|
|
7
|
+
async: true,
|
|
8
|
+
data: JSON.stringify({ pageId: record_id }),
|
|
9
|
+
success: function (data) {
|
|
10
|
+
toastr.success('页面已发布。');
|
|
11
|
+
SteedosUI.reloadRecord(object_name, record_id);
|
|
12
|
+
FlowRouter.reload();
|
|
13
|
+
$(document.body).removeClass('loading');
|
|
14
|
+
},
|
|
15
|
+
error: function (XMLHttpRequest, textStatus, errorThrown) {
|
|
16
|
+
toastr.error(t(XMLHttpRequest.responseJSON.error))
|
|
17
|
+
$(document.body).removeClass('loading');
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
Steedos.authRequest(url, options);
|
|
21
|
+
},
|
|
22
|
+
deployVisible: function () {
|
|
23
|
+
return true
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @Author: baozhoutao@steedos.com
|
|
3
|
+
* @Date: 2022-03-29 19:19:01
|
|
4
|
+
* @Description:
|
|
5
|
+
*/
|
|
6
|
+
module.exports = {
|
|
7
|
+
disable: function (object_name, record_id) {
|
|
8
|
+
$(document.body).addClass('loading');
|
|
9
|
+
let url = `/service/api/page/disable`;
|
|
10
|
+
let options = {
|
|
11
|
+
type: 'post',
|
|
12
|
+
async: true,
|
|
13
|
+
data: JSON.stringify({ pageId: record_id }),
|
|
14
|
+
success: function (data) {
|
|
15
|
+
toastr.success('页面已禁用。');
|
|
16
|
+
SteedosUI.reloadRecord(object_name, record_id);
|
|
17
|
+
FlowRouter.reload();
|
|
18
|
+
$(document.body).removeClass('loading');
|
|
19
|
+
},
|
|
20
|
+
error: function (XMLHttpRequest, textStatus, errorThrown) {
|
|
21
|
+
toastr.error(t(XMLHttpRequest.responseJSON.error))
|
|
22
|
+
$(document.body).removeClass('loading');
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
Steedos.authRequest(url, options);
|
|
26
|
+
},
|
|
27
|
+
disableVisible: function (object_name, record_id, permission, record) {
|
|
28
|
+
return record && record.is_active
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @Author: baozhoutao@steedos.com
|
|
3
|
+
* @Date: 2022-03-29 19:19:01
|
|
4
|
+
* @Description:
|
|
5
|
+
*/
|
|
6
|
+
module.exports = {
|
|
7
|
+
enable: function (object_name, record_id) {
|
|
8
|
+
$(document.body).addClass('loading');
|
|
9
|
+
let url = `/service/api/page/enable`;
|
|
10
|
+
let options = {
|
|
11
|
+
type: 'post',
|
|
12
|
+
async: true,
|
|
13
|
+
data: JSON.stringify({ pageId: record_id }),
|
|
14
|
+
success: function (data) {
|
|
15
|
+
toastr.success('页面已启用。');
|
|
16
|
+
SteedosUI.reloadRecord(object_name, record_id);
|
|
17
|
+
FlowRouter.reload();
|
|
18
|
+
$(document.body).removeClass('loading');
|
|
19
|
+
},
|
|
20
|
+
error: function (XMLHttpRequest, textStatus, errorThrown) {
|
|
21
|
+
toastr.error(t(XMLHttpRequest.responseJSON.error))
|
|
22
|
+
$(document.body).removeClass('loading');
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
Steedos.authRequest(url, options);
|
|
26
|
+
},
|
|
27
|
+
enableVisible: function (object_name, record_id, permission, record) {
|
|
28
|
+
return record && !record.is_active
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
var pageId = params.get("pageId");
|
|
16
16
|
// /pageVersion/:pageId/latest
|
|
17
17
|
|
|
18
|
-
axios.get(`/service/api/page/pageVersion/${params.get("pageId")}/latest
|
|
19
|
-
let schema = response.data
|
|
18
|
+
axios.get(`/service/api/page/pageVersion/${params.get("pageId")}/latest`).then(function (response) {
|
|
19
|
+
let schema = response.data?.schema;
|
|
20
20
|
if (typeof schema === "string") {
|
|
21
21
|
schema = JSON.parse(schema)
|
|
22
22
|
}
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
if (data) {
|
|
38
38
|
if (data.type === 'builder.saveContent') {
|
|
39
39
|
axios.put(`/service/api/page/pageVersion/${params.get("pageId")}`, {
|
|
40
|
-
schema: JSON.stringify(data.data.AmisSchema) //直接存储json格式会导致react form异常。
|
|
40
|
+
schema: JSON.stringify(data.data.AmisSchema, null, 4) //直接存储json格式会导致react form异常。
|
|
41
41
|
}).then(function (response) {
|
|
42
42
|
window.postMessage(
|
|
43
43
|
{
|
|
@@ -28,20 +28,54 @@ module.exports = {
|
|
|
28
28
|
return await this.getMeSchema(type, app, objectApiName, recordId, pageId, formFactor, userSession);
|
|
29
29
|
}
|
|
30
30
|
},
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
31
|
+
//发布最新版
|
|
32
|
+
deploy: {
|
|
33
|
+
rest: {
|
|
34
|
+
method: "POST",
|
|
35
|
+
path: "/deploy"
|
|
36
|
+
},
|
|
37
|
+
params: {
|
|
38
|
+
pageId: { type: 'string' }
|
|
39
|
+
},
|
|
40
|
+
handler: async function (ctx) {
|
|
41
|
+
const { pageId } = ctx.params;
|
|
42
|
+
const userSession = ctx.meta.user;
|
|
43
|
+
const lastVersion = await this.getLatestPageVersion(pageId);
|
|
44
|
+
return await objectql.getObject('page_versions').update(lastVersion._id, { is_active: true }, userSession);
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
|
|
48
|
+
// 启用Page
|
|
49
|
+
enable: {
|
|
50
|
+
rest: {
|
|
51
|
+
method: "POST",
|
|
52
|
+
path: "/enable"
|
|
53
|
+
},
|
|
54
|
+
params: {
|
|
55
|
+
pageId: { type: 'string' }
|
|
56
|
+
},
|
|
57
|
+
handler: async function (ctx) {
|
|
58
|
+
const { pageId } = ctx.params;
|
|
59
|
+
const userSession = ctx.meta.user;
|
|
60
|
+
return await objectql.getObject('pages').update(pageId, { is_active: true }, userSession)
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
|
|
64
|
+
// 禁用Page
|
|
65
|
+
disable: {
|
|
66
|
+
rest: {
|
|
67
|
+
method: "POST",
|
|
68
|
+
path: "/disable"
|
|
69
|
+
},
|
|
70
|
+
params: {
|
|
71
|
+
pageId: { type: 'string' }
|
|
72
|
+
},
|
|
73
|
+
handler: async function (ctx) {
|
|
74
|
+
const { pageId } = ctx.params;
|
|
75
|
+
const userSession = ctx.meta.user;
|
|
76
|
+
return await objectql.getObject('pages').update(pageId, { is_active: false }, userSession)
|
|
77
|
+
}
|
|
78
|
+
},
|
|
45
79
|
getLatestPageVersion:{
|
|
46
80
|
rest: {
|
|
47
81
|
method: "GET",
|
|
@@ -233,6 +267,8 @@ module.exports = {
|
|
|
233
267
|
const pageVersions = await objectql.getObject('page_versions').find({filters: filters, sort: 'version desc', top: 1});
|
|
234
268
|
if(pageVersions.length === 1){
|
|
235
269
|
return pageVersions[0]
|
|
270
|
+
}else{
|
|
271
|
+
return {}
|
|
236
272
|
}
|
|
237
273
|
}
|
|
238
274
|
},
|
|
@@ -5,10 +5,11 @@ module.exports = {
|
|
|
5
5
|
listenTo: 'page_versions',
|
|
6
6
|
afterUpdate: async function(){
|
|
7
7
|
const {id, doc, previousDoc} = this;
|
|
8
|
-
if(_.has(doc, '
|
|
8
|
+
if(_.has(doc, 'is_active') && doc.is_active && previousDoc.is_active != doc.is_active ){
|
|
9
9
|
const record = await objectql.getObject('page_versions').findOne(id)
|
|
10
10
|
await objectql.getObject('pages').directUpdate(record.page, {
|
|
11
|
-
|
|
11
|
+
is_active: true,
|
|
12
|
+
version: record.version,
|
|
12
13
|
})
|
|
13
14
|
}
|
|
14
15
|
}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @Author: baozhoutao@steedos.com
|
|
3
|
+
* @Date: 2022-03-28 09:44:02
|
|
4
|
+
* @Description:
|
|
5
|
+
*/
|
|
1
6
|
const objectql = require('@steedos/objectql');
|
|
2
7
|
const _ = require('underscore');
|
|
3
8
|
|
|
@@ -14,8 +19,5 @@ module.exports = {
|
|
|
14
19
|
throw new Error('禁止修改非最新版');
|
|
15
20
|
}
|
|
16
21
|
}
|
|
17
|
-
// if(_.has(doc, 'is_archived') && !doc.is_archived){
|
|
18
|
-
|
|
19
|
-
// }
|
|
20
22
|
}
|
|
21
23
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@steedos/service-pages",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.12",
|
|
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": "06806c509f487a82158919278c6c0b384373f8ac"
|
|
15
15
|
}
|