@steedos/service-pages 2.1.92 → 2.2.4
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/docs/amis.md +53 -0
- package/main/default/applications/app_charts.app.yml +13 -1
- package/main/default/client/builder.client.js +10 -0
- package/main/default/client/page.render.client.js +213 -0
- package/main/default/objects/page_assignments/fields/app.field.yml +6 -0
- package/main/default/objects/page_assignments/fields/desktop.field.yml +5 -0
- package/main/default/objects/page_assignments/fields/is_system.field.yml +6 -0
- package/main/default/objects/page_assignments/fields/mobile.field.yml +5 -0
- package/main/default/objects/page_assignments/fields/page.field.yml +5 -0
- package/main/default/objects/page_assignments/fields/profile.field.yml +8 -0
- package/main/default/objects/page_assignments/fields/record_type.field.yml +4 -0
- package/main/default/objects/page_assignments/listviews/all.listview.yml +15 -0
- package/main/default/objects/page_assignments/listviews/recent.listview.yml +15 -0
- package/main/default/objects/page_assignments/page_assignments.object.yml +20 -0
- package/main/default/objects/page_assignments/permissions/admin.permission.yml +10 -0
- package/main/default/objects/page_assignments/permissions/user.permission.yml +10 -0
- package/main/default/objects/page_versions/fields/is_archived.field.yml +4 -0
- package/main/default/objects/page_versions/fields/page.field.yml +4 -0
- package/main/default/objects/page_versions/fields/schema.field.yml +7 -0
- package/main/default/objects/page_versions/fields/version.field.yml +5 -0
- package/main/default/objects/page_versions/listviews/all.listview.yml +18 -0
- package/main/default/objects/page_versions/listviews/recent.listview.yml +15 -0
- package/main/default/objects/page_versions/page_versions.object.yml +20 -0
- package/main/default/objects/page_versions/permissions/admin.permission.yml +10 -0
- package/main/default/objects/page_versions/permissions/user.permission.yml +10 -0
- package/main/default/objects/pages/buttons/showDesign.button.js +19 -0
- package/main/default/objects/pages/buttons/showDesign.button.yml +5 -0
- package/main/default/objects/pages/fields/is_archived.field.yml +2 -2
- package/main/default/objects/pages/fields/object_name.field.yml +13 -0
- package/main/default/objects/pages/fields/render_engine.field.yml +11 -0
- package/main/default/objects/pages/fields/schema.field.yml +7 -0
- package/main/default/objects/pages/fields/type.field.yml +16 -0
- package/main/default/objects/pages/listviews/all.listview.yml +1 -0
- package/main/default/objects/pages/listviews/recent.listview.yml +1 -0
- package/main/default/objects/pages/pages.object.yml +2 -1
- package/main/default/routes/design.html +63 -0
- package/main/default/routes/page_design.router.js +13 -0
- package/main/default/routes/page_schema.router.js +32 -0
- package/main/default/services/page.service.js +264 -0
- package/main/default/triggers/page_versions.enable.trigger.js +15 -0
- package/main/default/triggers/pages_metadata.trigger.js +12 -47
- package/package.json +5 -2
- package/package.service.js +30 -4
- package/public/builder.io/react/dist/builder-react.browser.js +21 -0
- package/main/default/client/style.client.js +0 -12
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
<html>
|
|
2
|
+
|
|
3
|
+
<head>
|
|
4
|
+
<script src="https://builder.steedos.com/js/axios/axios.min.js"></script>
|
|
5
|
+
<script src="https://builder.steedos.com/js/builder-fiddle/builder-fiddle.umd.js"></script>
|
|
6
|
+
</head>
|
|
7
|
+
|
|
8
|
+
<body style="margin: 0;padding: 0;">
|
|
9
|
+
|
|
10
|
+
<builder-fiddle host="https://builder.steedos.com/amis"></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
|
+
|
|
18
|
+
axios.get(`/service/api/page/pageVersion/${params.get("pageId")}/latest/`).then(function (response) {
|
|
19
|
+
let schema = response.data.schema;
|
|
20
|
+
if (typeof schema === "string") {
|
|
21
|
+
schema = JSON.parse(schema)
|
|
22
|
+
}
|
|
23
|
+
const data = {
|
|
24
|
+
AmisSchema: schema || {}
|
|
25
|
+
};
|
|
26
|
+
console.log("record data", data)
|
|
27
|
+
comp.data = data;
|
|
28
|
+
}).catch(function (error) {
|
|
29
|
+
// handle error
|
|
30
|
+
console.log(error);
|
|
31
|
+
}).then(function () {
|
|
32
|
+
// always executed
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
const onWindowMessage = function (event) {
|
|
36
|
+
const { data } = event;
|
|
37
|
+
if (data) {
|
|
38
|
+
if (data.type === 'builder.saveContent') {
|
|
39
|
+
axios.put(`/service/api/page/pageVersion/${params.get("pageId")}`, {
|
|
40
|
+
schema: JSON.stringify(data.data.AmisSchema) //直接存储json格式会导致react form异常。
|
|
41
|
+
}).then(function (response) {
|
|
42
|
+
window.postMessage(
|
|
43
|
+
{
|
|
44
|
+
type: 'builder.contentSaved',
|
|
45
|
+
},
|
|
46
|
+
'*'
|
|
47
|
+
);
|
|
48
|
+
}).catch(function (error) {
|
|
49
|
+
// handle error
|
|
50
|
+
console.log(error);
|
|
51
|
+
}).then(function () {
|
|
52
|
+
// always executed
|
|
53
|
+
})
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
window.addEventListener('message', onWindowMessage);
|
|
59
|
+
|
|
60
|
+
</script>
|
|
61
|
+
</body>
|
|
62
|
+
|
|
63
|
+
</html>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const express = require("express");
|
|
2
|
+
const router = express.Router();
|
|
3
|
+
|
|
4
|
+
router.get('/api/pageDesign', async function (req, res) {
|
|
5
|
+
try {
|
|
6
|
+
res.set('Content-Type', 'text/html');
|
|
7
|
+
res.sendFile(__dirname+'/design.html')
|
|
8
|
+
} catch (error) {
|
|
9
|
+
res.status(500).send({ message: error.message });
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
});
|
|
13
|
+
exports.default = router;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
const express = require("express");
|
|
2
|
+
const router = express.Router();
|
|
3
|
+
const objectql = require('@steedos/objectql');
|
|
4
|
+
const core = require('@steedos/core');
|
|
5
|
+
|
|
6
|
+
router.get('/api/pageSchema/:type', core.requireAuthentication, async function (req, res) {
|
|
7
|
+
try {
|
|
8
|
+
|
|
9
|
+
const userSession = req.user;
|
|
10
|
+
|
|
11
|
+
const { app, objectApiName, recordId, formFactor} = req.query;
|
|
12
|
+
const { type } = req.params;
|
|
13
|
+
|
|
14
|
+
const pageSchema = await objectql.getSteedosSchema().broker.call(`page.getMeSchema`, {
|
|
15
|
+
type,
|
|
16
|
+
app,
|
|
17
|
+
objectApiName,
|
|
18
|
+
recordId,
|
|
19
|
+
formFactor
|
|
20
|
+
}, {
|
|
21
|
+
meta: {
|
|
22
|
+
user: userSession
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
res.send(pageSchema || {});
|
|
27
|
+
} catch (error) {
|
|
28
|
+
res.status(500).send({ message: error.message });
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
});
|
|
32
|
+
exports.default = router;
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
const objectql = require('@steedos/objectql');
|
|
2
|
+
|
|
3
|
+
const _ = require('lodash');
|
|
4
|
+
|
|
5
|
+
module.exports = {
|
|
6
|
+
name: "page",
|
|
7
|
+
mixins: [],
|
|
8
|
+
/**
|
|
9
|
+
* Settings
|
|
10
|
+
*/
|
|
11
|
+
settings: {
|
|
12
|
+
|
|
13
|
+
},
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Dependencies
|
|
17
|
+
*/
|
|
18
|
+
dependencies: [],
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Actions
|
|
22
|
+
*/
|
|
23
|
+
actions: {
|
|
24
|
+
getMeSchema: {
|
|
25
|
+
async handler(ctx) {
|
|
26
|
+
const userSession = ctx.meta.user;
|
|
27
|
+
const { type, app, objectApiName, recordId, formFactor } = ctx.params;
|
|
28
|
+
return await this.getMeSchema(type, app, objectApiName, recordId, formFactor, userSession);
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
// enablePageVersion:{
|
|
32
|
+
// rest: {
|
|
33
|
+
// method: "GET",
|
|
34
|
+
// path: "/pageSchema/enable/:pageVersionId"
|
|
35
|
+
// },
|
|
36
|
+
// params: {
|
|
37
|
+
// pageVersionId: { type: "any" }
|
|
38
|
+
// },
|
|
39
|
+
// async handler(ctx) {
|
|
40
|
+
// const userSession = ctx.meta.user;
|
|
41
|
+
// const { pageVersionId } = ctx.params;
|
|
42
|
+
// return await this.enablePageVersion(pageVersionId, userSession);
|
|
43
|
+
// }
|
|
44
|
+
// },
|
|
45
|
+
getLatestPageVersion:{
|
|
46
|
+
rest: {
|
|
47
|
+
method: "GET",
|
|
48
|
+
path: "/pageVersion/:pageId/latest"
|
|
49
|
+
},
|
|
50
|
+
params: {
|
|
51
|
+
pageId: { type: "any" }
|
|
52
|
+
},
|
|
53
|
+
async handler(ctx){
|
|
54
|
+
const userSession = ctx.meta.user;
|
|
55
|
+
const { pageId } = ctx.params;
|
|
56
|
+
return await this.getLatestPageVersion(pageId, userSession);
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
changePageVersion:{
|
|
60
|
+
rest: {
|
|
61
|
+
method: "PUT",
|
|
62
|
+
path: "/pageVersion/:pageId"
|
|
63
|
+
},
|
|
64
|
+
params: {
|
|
65
|
+
pageId: { type: "any" },
|
|
66
|
+
schema: { type: "any" }
|
|
67
|
+
},
|
|
68
|
+
async handler(ctx){
|
|
69
|
+
const userSession = ctx.meta.user;
|
|
70
|
+
const { pageId, schema } = ctx.params;
|
|
71
|
+
return await this.changePageVersion(pageId, schema, userSession);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Events
|
|
78
|
+
*/
|
|
79
|
+
events: {
|
|
80
|
+
|
|
81
|
+
},
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Methods
|
|
85
|
+
*/
|
|
86
|
+
methods: {
|
|
87
|
+
getDefaultSchema: {
|
|
88
|
+
async handler(type, app, objectApiName, formFactor, recordId, userSession) {
|
|
89
|
+
if (process.env.DEFAULT_PAGE_RENDER) {
|
|
90
|
+
return await this.broker.call(`${process.env.DEFAULT_PAGE_RENDER}.getDefaultSchema`, {type, app, objectApiName, recordId, formFactor}, {
|
|
91
|
+
meta: {
|
|
92
|
+
user: userSession
|
|
93
|
+
}
|
|
94
|
+
})
|
|
95
|
+
}
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
getTypePages: {
|
|
100
|
+
async handler(type, objectApiName, userSession) {
|
|
101
|
+
const filters = [['type', '=', type], ['is_archived', '=', true]];
|
|
102
|
+
if (type === 'list' || type === 'record' || type === 'form') {
|
|
103
|
+
filters.push(['object_name', '=', objectApiName]);
|
|
104
|
+
}
|
|
105
|
+
return await objectql.getObject('pages').find({ filters: filters });
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
getAssignments: {
|
|
109
|
+
async handler(formFactor, typePages) {
|
|
110
|
+
if(!typePages || typePages.length < 1){
|
|
111
|
+
return ;
|
|
112
|
+
}
|
|
113
|
+
const filters = [['page', 'in', _.map(typePages, '_id')]];
|
|
114
|
+
if(formFactor === 'SMALL'){
|
|
115
|
+
filters.push(['mobile','=', true])
|
|
116
|
+
}else{
|
|
117
|
+
filters.push(['desktop','=', true])
|
|
118
|
+
}
|
|
119
|
+
return await objectql.getObject("page_assignments").find({ filters: filters });
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
getAppProfileAssignment: {
|
|
123
|
+
async handler(app, assignments, userSession) {
|
|
124
|
+
return _.filter(assignments, (assignment) => {
|
|
125
|
+
//TODO Record Type
|
|
126
|
+
return assignment.app === app && arguments.profile === userSession.profile;
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
getAppDefaultAssignment: {
|
|
131
|
+
async handler(app, assignments) {
|
|
132
|
+
return _.filter(assignments, (assignment) => {
|
|
133
|
+
return assignment.app === app;
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
getOrgDefaultAssignment: {
|
|
138
|
+
async handler(assignments) {
|
|
139
|
+
return _.filter(assignments, (assignment) => {
|
|
140
|
+
return !assignment.app && !assignment.profile
|
|
141
|
+
})
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
getAssignmentPage: {
|
|
145
|
+
async handler(assignment, typePages) {
|
|
146
|
+
const page = _.find(typePages, (typePage) => {
|
|
147
|
+
return typePage.name == assignment.page || typePage._id == assignment.page
|
|
148
|
+
})
|
|
149
|
+
if (page) {
|
|
150
|
+
return page;
|
|
151
|
+
}
|
|
152
|
+
// else {
|
|
153
|
+
// throw new Error(`not find assignment page ${assignment.desktop}`)
|
|
154
|
+
// }
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
getUserPage: {
|
|
158
|
+
/**
|
|
159
|
+
* 自定义记录页面可在不同层面上分配:
|
|
160
|
+
* 1 组织默认设置 记录页面会为对象显示,除非已进行更多特定分配。
|
|
161
|
+
* 2 如果已指定,则应用程序默认设置 页面分配会覆盖组织默认设置。
|
|
162
|
+
* 3 应用程序、记录类型和简档, 分配会覆盖组织和应用程序默认设置。
|
|
163
|
+
*
|
|
164
|
+
* TODO form factors "LARGE","SMALL"
|
|
165
|
+
* TODO 页面分配有多条时的优先级处理(始终是最新的分配生效)。
|
|
166
|
+
*/
|
|
167
|
+
async handler(type, app, objectApiName, recordId, formFactor, userSession) {
|
|
168
|
+
|
|
169
|
+
try {
|
|
170
|
+
const typePages = await this.getTypePages(type, objectApiName, userSession);
|
|
171
|
+
const assignments = await this.getAssignments(formFactor, typePages);
|
|
172
|
+
|
|
173
|
+
const appProfileassignment = await this.getAppProfileAssignment(app, assignments, userSession);
|
|
174
|
+
if (appProfileassignment && appProfileassignment.length > 0) {
|
|
175
|
+
return await this.getAssignmentPage(appProfileassignment[0], typePages)
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
const appDefaultAssignment = await this.getAppDefaultAssignment(app, assignments);
|
|
179
|
+
if (appDefaultAssignment && appDefaultAssignment.length > 0) {
|
|
180
|
+
return await this.getAssignmentPage(appDefaultAssignment[0], typePages)
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
const orgDefaultAssignment = await this.getOrgDefaultAssignment(assignments);
|
|
184
|
+
if (orgDefaultAssignment && orgDefaultAssignment.length > 0) {
|
|
185
|
+
return await this.getAssignmentPage(orgDefaultAssignment[0], typePages)
|
|
186
|
+
}
|
|
187
|
+
} catch (error) {
|
|
188
|
+
console.error(`error`, error);
|
|
189
|
+
return ;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
},
|
|
193
|
+
getMeSchema: {
|
|
194
|
+
async handler(type, app, objectApiName, recordId, formFactor, userSession) {
|
|
195
|
+
// 计算 userSchema
|
|
196
|
+
const userPage = await this.getUserPage(type, app, objectApiName, recordId, formFactor, userSession);
|
|
197
|
+
if (userPage) {
|
|
198
|
+
const pageVersion = await this.getLatestPageVersion(userPage._id, true);
|
|
199
|
+
if(pageVersion && pageVersion.schema){
|
|
200
|
+
return Object.assign({}, userPage, {schema: pageVersion.schema});
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
const defaultSchema = await this.getDefaultSchema(type, app, objectApiName, recordId, formFactor, userSession);
|
|
204
|
+
if(defaultSchema){
|
|
205
|
+
return {schema: defaultSchema}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
},
|
|
209
|
+
getLatestPageVersion:{
|
|
210
|
+
async handler(pageId, isArchived) {
|
|
211
|
+
const filters = [['page', '=', pageId]];
|
|
212
|
+
if(isArchived){
|
|
213
|
+
filters.push(['is_archived','=',true])
|
|
214
|
+
}
|
|
215
|
+
// 根据pageId 获取 page version
|
|
216
|
+
const pageVersions = await objectql.getObject('page_versions').find({filters: filters, sort: 'version desc', top: 1});
|
|
217
|
+
if(pageVersions.length === 1){
|
|
218
|
+
return pageVersions[0]
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
},
|
|
222
|
+
changePageVersion: {
|
|
223
|
+
async handler(pageId, schema, userSession) {
|
|
224
|
+
// 根据pageId 获取 pageversions
|
|
225
|
+
const pageVersion = await this.getLatestPageVersion(pageId);
|
|
226
|
+
let version = pageVersion ? pageVersion.version :0;
|
|
227
|
+
if(pageVersion && !pageVersion.is_archived){
|
|
228
|
+
return await objectql.getObject('page_versions').update(pageVersion._id, {
|
|
229
|
+
schema: schema
|
|
230
|
+
}, userSession);
|
|
231
|
+
}else{
|
|
232
|
+
return await objectql.getObject('page_versions').insert({
|
|
233
|
+
page: pageId,
|
|
234
|
+
is_archived: false,
|
|
235
|
+
schema: schema,
|
|
236
|
+
version: ++version,
|
|
237
|
+
space: userSession.spaceId
|
|
238
|
+
}, userSession)
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
},
|
|
242
|
+
},
|
|
243
|
+
|
|
244
|
+
/**
|
|
245
|
+
* Service created lifecycle event handler
|
|
246
|
+
*/
|
|
247
|
+
async created() {
|
|
248
|
+
|
|
249
|
+
},
|
|
250
|
+
|
|
251
|
+
/**
|
|
252
|
+
* Service started lifecycle event handler
|
|
253
|
+
*/
|
|
254
|
+
async started() {
|
|
255
|
+
|
|
256
|
+
},
|
|
257
|
+
|
|
258
|
+
/**
|
|
259
|
+
* Service stopped lifecycle event handler
|
|
260
|
+
*/
|
|
261
|
+
async stopped() {
|
|
262
|
+
|
|
263
|
+
}
|
|
264
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const objectql = require('@steedos/objectql');
|
|
2
|
+
const _ = require('underscore');
|
|
3
|
+
|
|
4
|
+
module.exports = {
|
|
5
|
+
listenTo: 'page_versions',
|
|
6
|
+
afterUpdate: async function(){
|
|
7
|
+
const {id, doc, previousDoc} = this;
|
|
8
|
+
if(_.has(doc, 'is_archived') && doc.is_archived && previousDoc.is_archived != doc.is_archived ){
|
|
9
|
+
const record = await objectql.getObject('page_versions').findOne(id)
|
|
10
|
+
await objectql.getObject('pages').directUpdate(record.page, {
|
|
11
|
+
is_archived: true
|
|
12
|
+
})
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -24,52 +24,17 @@ module.exports = {
|
|
|
24
24
|
listenTo: 'pages',
|
|
25
25
|
|
|
26
26
|
afterFind: async function(){
|
|
27
|
-
let
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
id = id.replace(/\\/g, '');
|
|
32
|
-
let data = await get(id);
|
|
33
|
-
if(data){
|
|
34
|
-
dataList = [data]
|
|
35
|
-
}
|
|
36
|
-
}else{
|
|
37
|
-
dataList = await getAll();
|
|
38
|
-
if(filters.name){
|
|
39
|
-
dataList = _.filter(dataList, (item)=>{
|
|
40
|
-
return item.name == filters.name
|
|
41
|
-
})
|
|
42
|
-
}
|
|
43
|
-
}
|
|
27
|
+
let spaceId = this.spaceId;
|
|
28
|
+
this.data.values = this.data.values.concat(await getAll());
|
|
29
|
+
|
|
30
|
+
this.data.values = objectql.getSteedosSchema().metadataDriver.find(this.data.values, this.query, spaceId);
|
|
44
31
|
|
|
45
|
-
if(dataList){
|
|
46
|
-
const dbRecrodsName = _.pluck(this.data.values, 'name');
|
|
47
|
-
this.data.values = this.data.values.concat(_.filter(dataList, function(data){return data._id == data.name && !_.include(dbRecrodsName, data.name) }))
|
|
48
|
-
}
|
|
49
32
|
},
|
|
50
33
|
afterAggregate: async function(){
|
|
51
|
-
let
|
|
52
|
-
|
|
53
|
-
if(filters._id && !filters._id.$ne){
|
|
54
|
-
let id = filters._id
|
|
55
|
-
id = id.replace(/\\/g, '');
|
|
56
|
-
let data = await get(id);
|
|
57
|
-
if(data){
|
|
58
|
-
dataList = [data]
|
|
59
|
-
}
|
|
60
|
-
}else{
|
|
61
|
-
dataList = await getAll();
|
|
62
|
-
if(filters.name){
|
|
63
|
-
dataList = _.filter(dataList, (item)=>{
|
|
64
|
-
return item.name == filters.name
|
|
65
|
-
})
|
|
66
|
-
}
|
|
67
|
-
}
|
|
34
|
+
let spaceId = this.spaceId;
|
|
35
|
+
this.data.values = this.data.values.concat(await getAll());
|
|
68
36
|
|
|
69
|
-
|
|
70
|
-
const dbRecrodsName = _.pluck(this.data.values, 'name');
|
|
71
|
-
this.data.values = this.data.values.concat(_.filter(dataList, function(data){return data._id == data.name && !_.include(dbRecrodsName, data.name) }))
|
|
72
|
-
}
|
|
37
|
+
this.data.values = objectql.getSteedosSchema().metadataDriver.find(this.data.values, this.query, spaceId);
|
|
73
38
|
},
|
|
74
39
|
afterCount: async function(){
|
|
75
40
|
let result = await objectql.getObject(this.object_name).find(this.query, await auth.getSessionByUserId(this.userId, this.spaceId))
|
|
@@ -77,11 +42,11 @@ module.exports = {
|
|
|
77
42
|
},
|
|
78
43
|
afterFindOne: async function(){
|
|
79
44
|
if(_.isEmpty(this.data.values)){
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
}
|
|
45
|
+
const all = await getAll();
|
|
46
|
+
const id = this.id;
|
|
47
|
+
this.data.values = _.find(all, function(item){
|
|
48
|
+
return item._id === id
|
|
49
|
+
});
|
|
85
50
|
}
|
|
86
51
|
}
|
|
87
52
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@steedos/service-pages",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.4",
|
|
4
4
|
"main": "package.service.js",
|
|
5
5
|
"scripts": {},
|
|
6
6
|
"license": "MIT",
|
|
@@ -8,5 +8,8 @@
|
|
|
8
8
|
"publishConfig": {
|
|
9
9
|
"access": "public"
|
|
10
10
|
},
|
|
11
|
-
"
|
|
11
|
+
"dependencies": {
|
|
12
|
+
"@builder.io/react": "^1.1.50"
|
|
13
|
+
},
|
|
14
|
+
"gitHead": "a0c0e8d900f7f4fd2045d976b36c9bef465a6ce3"
|
|
12
15
|
}
|
package/package.service.js
CHANGED
|
@@ -4,6 +4,8 @@ const packageName = project.name;
|
|
|
4
4
|
const packageLoader = require('@steedos/service-package-loader');
|
|
5
5
|
const objectql = require('@steedos/objectql');
|
|
6
6
|
const _ = require(`lodash`);
|
|
7
|
+
const express = require('express');
|
|
8
|
+
const path = require('path');
|
|
7
9
|
|
|
8
10
|
const getCharts = async(apiName)=>{
|
|
9
11
|
const charts = await objectql.getObject('charts').find({ filters: [['name', '=', apiName]] });
|
|
@@ -35,7 +37,8 @@ module.exports = {
|
|
|
35
37
|
path: __dirname,
|
|
36
38
|
name: this.name,
|
|
37
39
|
isPackage: false
|
|
38
|
-
}
|
|
40
|
+
},
|
|
41
|
+
initBuilderRouter: false
|
|
39
42
|
},
|
|
40
43
|
|
|
41
44
|
/**
|
|
@@ -144,14 +147,37 @@ module.exports = {
|
|
|
144
147
|
* Events
|
|
145
148
|
*/
|
|
146
149
|
events: {
|
|
147
|
-
|
|
150
|
+
'steedos-server.started': async function (ctx) {
|
|
151
|
+
this.initBuilderRouter();
|
|
152
|
+
}
|
|
148
153
|
},
|
|
149
154
|
|
|
150
155
|
/**
|
|
151
156
|
* Methods
|
|
152
157
|
*/
|
|
153
158
|
methods: {
|
|
154
|
-
|
|
159
|
+
initBuilderRouter: {
|
|
160
|
+
handler() {
|
|
161
|
+
// if (this.settings.initBuilderRouter) {
|
|
162
|
+
// return;
|
|
163
|
+
// }
|
|
164
|
+
// this.settings.initBuilderRouter = true;
|
|
165
|
+
// try {
|
|
166
|
+
// const router = express.Router();
|
|
167
|
+
// let publicPath = path.join(__dirname, 'public');
|
|
168
|
+
// let routerPath = "";
|
|
169
|
+
// if (__meteor_runtime_config__.ROOT_URL_PATH_PREFIX) {
|
|
170
|
+
// routerPath = __meteor_runtime_config__.ROOT_URL_PATH_PREFIX;
|
|
171
|
+
// }
|
|
172
|
+
// const cacheTime = 86400000 * 1; // one day
|
|
173
|
+
// router.use(routerPath, express.static(publicPath, { maxAge: cacheTime }));
|
|
174
|
+
// WebApp.rawConnectHandlers.use(router);
|
|
175
|
+
// } catch (error) {
|
|
176
|
+
// console.error(error)
|
|
177
|
+
// this.settings.initBuilderRouter = false;
|
|
178
|
+
// }
|
|
179
|
+
}
|
|
180
|
+
},
|
|
155
181
|
},
|
|
156
182
|
|
|
157
183
|
/**
|
|
@@ -165,7 +191,7 @@ module.exports = {
|
|
|
165
191
|
* Service started lifecycle event handler
|
|
166
192
|
*/
|
|
167
193
|
async started() {
|
|
168
|
-
|
|
194
|
+
this.initBuilderRouter();
|
|
169
195
|
},
|
|
170
196
|
|
|
171
197
|
/**
|