@steedos/service-pages 3.0.0-beta.2 → 3.0.0-beta.8

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.
@@ -43,18 +43,8 @@
43
43
  };
44
44
 
45
45
  Promise.all([
46
- waitForThing(Creator, 'USER_CONTEXT'),
46
+ waitForThing(window, 'Builder'),
47
47
  ]).then(()=>{
48
- Builder.set({
49
- context: {
50
- rootUrl: Builder.settings.rootUrl,
51
- tenantId: Creator.USER_CONTEXT.spaceId,
52
- userId: Creator.USER_CONTEXT.userId,
53
- authToken: Creator.USER_CONTEXT.user.authToken
54
- },
55
- locale: Creator.USER_CONTEXT.user.locale
56
- })
57
-
58
48
  window.postMessage({ type: "Builder.loaded" }, "*")
59
49
  })
60
50
  })();
@@ -40,8 +40,9 @@
40
40
  }
41
41
 
42
42
  Steedos.Page.getDisplay = (objectName)=>{
43
- const object = Creator.getObject(objectName)
44
- let display = FlowRouter.current().queryParams.display;
43
+ const object = window.getUISchemaSync(objectName)
44
+ var searchParams = new URLSearchParams(window.location.search)
45
+ let display = searchParams.get('display');
45
46
  // console.log('=====getDisplay====>', display)
46
47
  const key = `tab_${objectName}_display`;
47
48
  // const key = 'page_display'
@@ -63,14 +64,6 @@
63
64
  }
64
65
 
65
66
  Steedos.Page.getPage = function (type, appId, objectApiName, recordId, pageId) {
66
- let objectInfo = null;
67
- let searchParams = FlowRouter.current().queryParams;
68
-
69
- const display = searchParams['display']
70
- const listViewId = searchParams['listview_id']
71
- const sideObject = searchParams['side_object']
72
- const sideListviewId = searchParams['side_listview_id']
73
-
74
67
  if(!objectApiName){
75
68
  objectApiName = ''
76
69
  }
@@ -97,17 +90,6 @@
97
90
  "type": "steedos-page-object-control",
98
91
  "name": "steedosPageObjectControl"
99
92
  }
100
- // name: 'steedosListviewPage',
101
- // schema:{
102
- // "name": `${objectApiName}-listview-${listViewId}`,
103
- // "type": "steedos-page-listview",
104
- // "showHeader": true,
105
- // "objectApiName": objectApiName,
106
- // "appId": appId,
107
- // "display": display,
108
- // "columnsTogglable": false,
109
- // // "listName": "all",
110
- // }
111
93
  }
112
94
  }else if(type === 'record'){
113
95
  return {
@@ -117,17 +99,6 @@
117
99
  "type": "steedos-page-object-control",
118
100
  "name": "steedosPageObjectControl"
119
101
  }
120
- // name: 'steedosRecordPage',
121
- // schema: {
122
- // "name": `${objectApiName}-recordDetail-${recordId}`,
123
- // "type": "steedos-page-record-detail",
124
- // "objectApiName": objectApiName,
125
- // "sideObject": sideObject,
126
- // "sideListviewId": sideListviewId,
127
- // // "recordId": recordId,
128
- // "display": display,
129
- // "appId": appId,
130
- // }
131
102
  }
132
103
 
133
104
  }else if(type === 'related_list'){
@@ -235,19 +206,7 @@
235
206
  relatedKey: relatedKey,
236
207
  hiddenOn: "!!!this.$loaded",
237
208
  "className": "mx-4",
238
- // top: 5
239
209
  }
240
- ,
241
- // {
242
- // type: 'steedos-object-related-listview',
243
- // objectApiName: masterObject.name,
244
- // recordId: FlowRouter.getParam("record_id"),
245
- // relatedObjectApiName: objectApiName,
246
- // foreign_key: relatedKey,
247
- // relatedKey: relatedKey,
248
- // hiddenOn: "!!!this.$loaded"
249
- // // top: 5
250
- // }
251
210
  ]
252
211
  }
253
212
  }
@@ -259,7 +218,7 @@
259
218
  if (page.render_engine && page.render_engine != 'redash') {
260
219
 
261
220
  let schema = typeof page.schema === 'string' ? JSON.parse(page.schema) : page.schema;
262
- const rootUrl = __meteor_runtime_config__.ROOT_URL;
221
+ const rootUrl = Builder.settings.ROOT_URL || "";
263
222
  const defData = lodash.defaultsDeep({}, {data: data} , {
264
223
  data: {
265
224
  app_id: data.appId,
@@ -267,16 +226,16 @@
267
226
  record_id: data.recordId,
268
227
  formFactor: Steedos.isMobile() ? "SMALL" : "LARGE",
269
228
  context: {
270
- rootUrl: Meteor.isCordova ? (rootUrl.endsWith("/") ? rootUrl.substr(0, rootUrl.length-1) : rootUrl) : '',
271
- tenantId: Creator.USER_CONTEXT.spaceId,
272
- userId: Creator.USER_CONTEXT.userId,
273
- authToken: Creator.USER_CONTEXT.user.authToken,
274
- user: Creator.USER_CONTEXT.user
229
+ rootUrl: rootUrl,
230
+ tenantId: Builder.settings.context.user.spaceId,
231
+ userId: Builder.settings.context.userId,
232
+ authToken: Builder.settings.context.user.authToken,
233
+ user: Builder.settings.context.user
275
234
  },
276
235
  global: {
277
- userId: Creator.USER_CONTEXT.userId,
278
- spaceId: Creator.USER_CONTEXT.spaceId,
279
- user: Creator.USER_CONTEXT.user,
236
+ userId: Builder.settings.context.userId,
237
+ spaceId: Builder.settings.context.user.spaceId,
238
+ user: Builder.settings.context.user,
280
239
  now: new Date(),
281
240
  // mode: mode //由表单提供
282
241
  },
@@ -731,22 +690,10 @@
731
690
  $("button", scope).trigger("click")
732
691
  }, 300)
733
692
  return scope ;
734
- // return Steedos.Page.render(SteedosUI.Modal, page, Object.assign({}, options, {
735
- // appId: appId,
736
- // objectName: objectApiName,
737
- // title: title,
738
- // recordId: recordId
739
- // }));
740
693
  }
741
694
  };
742
-
743
- // Steedos.Page.Form.StandardDelete.render = function(){
744
-
745
- // };
746
-
747
-
695
+
748
696
  // creator odata 转 graphql 防腐层
749
-
750
697
  function getGraphqlFieldsQuery(objectApiName, selectFields, expandFields){
751
698
  const objectConfig = Creator.getObject(objectApiName)
752
699
  const objectFields = objectConfig.fields
@@ -31,7 +31,7 @@ module.exports = {
31
31
  Steedos.authRequest(url, options);
32
32
  },
33
33
  customPageVisible: function (object_name, record_id, permission, data) {
34
- if(Meteor.settings.public.enable_saas){
34
+ if(Steedos.settings.public.enable_saas){
35
35
  return false;
36
36
  }
37
37
  var record = data && data.record;
@@ -12,13 +12,18 @@ module.exports = {
12
12
  async: true,
13
13
  data: JSON.stringify({ pageId: record_id }),
14
14
  success: function (data) {
15
- toastr.success('页面已禁用。');
15
+ SteedosUI.notification.success({
16
+ message: '页面已禁用。'
17
+ });
16
18
  SteedosUI.reloadRecord(object_name, record_id);
17
19
  FlowRouter.reload();
18
20
  $(document.body).removeClass('loading');
19
21
  },
20
22
  error: function (XMLHttpRequest, textStatus, errorThrown) {
21
- toastr.error(t(XMLHttpRequest.responseJSON.error))
23
+ SteedosUI.notification.error({
24
+ message: '操作失败',
25
+ description: t(XMLHttpRequest.responseJSON.error),
26
+ });
22
27
  $(document.body).removeClass('loading');
23
28
  }
24
29
  };
@@ -9,9 +9,9 @@
9
9
  */
10
10
  module.exports = {
11
11
  standard_newVisible: function (object_name, record_id, record_permissions, data) {
12
- if(Meteor.settings.public.enable_saas){
12
+ if(Steedos.settings.public.enable_saas){
13
13
  return false;
14
14
  }
15
- return Creator.baseObject.actions.standard_new.visible.apply(this, arguments);
15
+ return Steedos.Object.base.actions.standard_new.visible.apply(this, arguments);
16
16
  },
17
17
  }
@@ -5,7 +5,7 @@
5
5
  */
6
6
  const express = require('express');
7
7
  const router = express.Router();
8
- const core = require('@steedos/core');
8
+ const auth = require('@steedos/auth');
9
9
  const ejs = require('ejs');
10
10
  const fs = require('fs');
11
11
  const _ = require('lodash');
@@ -23,7 +23,7 @@ const getPublicAssetUrls = function(assetUrls){
23
23
  return _.join(values, ',')
24
24
  }
25
25
 
26
- router.get('/api/pageDesign', core.requireAuthentication, async function (req, res) {
26
+ router.get('/api/pageDesign', auth.requireAuthentication, async function (req, res) {
27
27
  try {
28
28
  res.set('Content-Type', 'text/html');
29
29
  const userSession = req.user;
@@ -31,7 +31,7 @@ router.get('/api/pageDesign', core.requireAuthentication, async function (req, r
31
31
  const assetUrl = `assetUrl=${assetUrls.split(',').join("&assetUrl=")}&`;
32
32
 
33
33
  // const dataContext = {
34
- // rootUrl: __meteor_runtime_config__.ROOT_URL,
34
+ // rootUrl: process.env.ROOT_URL,
35
35
  // tenantId: userSession.spaceId,
36
36
  // userId: userSession.userId,
37
37
  // authToken: userSession.authToken
@@ -43,7 +43,7 @@ router.get('/api/pageDesign', core.requireAuthentication, async function (req, r
43
43
  locale = "zh-CN";
44
44
  }
45
45
  const page = await objectql.broker.call(`page.getLatestPageVersion`, {pageId: req.query.pageId});
46
- const retUrl = req.query.retUrl || __meteor_runtime_config__.ROOT_URL + '/app/admin/pages/view/' + req.query.pageId
46
+ const retUrl = req.query.retUrl || process.env.ROOT_URL + '/app/admin/pages/view/' + req.query.pageId
47
47
  const steedosBuilderUrl = process.env.STEEDOS_BUILDER_URL || 'https://builder.steedos.cn';
48
48
  const builderHost = `${steedosBuilderUrl}/amis?${assetUrl}retUrl=${retUrl}&locale=${locale}&pageType=${page.type}`;
49
49
 
@@ -51,7 +51,7 @@ router.get('/api/pageDesign', core.requireAuthentication, async function (req, r
51
51
  const data = {
52
52
  builderHost,
53
53
  assetUrls,
54
- rootUrl: __meteor_runtime_config__.ROOT_URL,
54
+ rootUrl: process.env.ROOT_URL,
55
55
  tenantId: userSession.spaceId,
56
56
  userId: userSession.userId,
57
57
  authToken: userSession.authToken,
@@ -2,8 +2,8 @@
2
2
  * @Author: 孙浩林 6194896+sunhaolin@users.noreply.github.com
3
3
  * @Date: 2023-12-10 11:09:40
4
4
  * @LastEditors: 孙浩林 sunhaolin@steedos.com
5
- * @LastEditTime: 2024-04-18 16:09:10
6
- * @FilePath: /steedos-platform-2.3/services/service-pages/main/default/routes/page_render.router.js
5
+ * @LastEditTime: 2025-03-05 10:04:42
6
+ * @FilePath: /steedos-platform-3.0/services/service-pages/main/default/routes/page_render.router.js
7
7
  * @Description: 支持使用schemaApi动态渲染页面,支持匿名访问。
8
8
  */
9
9
  const express = require('express');
@@ -40,7 +40,7 @@ router.get('/api/page/render', async function (req, res) {
40
40
  STEEDOS_AMIS_URL: process.env.STEEDOS_AMIS_URL,
41
41
  STEEDOS_PUBLIC_PAGE_ASSETURLS: assetUrls || process.env.STEEDOS_PUBLIC_PAGE_ASSETURLS,
42
42
  NODE_ENV: process.env.NODE_ENV,
43
- ROOT_URL: __meteor_runtime_config__.ROOT_URL,
43
+ ROOT_URL: process.env.ROOT_URL,
44
44
  STEEDOS_VERSION: process.env.STEEDOS_VERSION,
45
45
  STEEDOS_AMIS_VERSION: process.env.STEEDOS_AMIS_VERSION,
46
46
  STEEDOS_PUBLIC_SCRIPT_VCONSOLE: process.env.STEEDOS_PUBLIC_SCRIPT_VCONSOLE,
@@ -53,7 +53,7 @@ router.get('/api/page/render', async function (req, res) {
53
53
  spaceId: ""
54
54
  },
55
55
  pageSchema: pageSchema,
56
- __meteor_runtime_config__: __meteor_runtime_config__,
56
+ // __meteor_runtime_config__: __meteor_runtime_config__,
57
57
  queryData,
58
58
  STEEDOS_PUBLIC_USE_OPEN_API: process.env.STEEDOS_PUBLIC_USE_OPEN_API
59
59
  }
@@ -2,15 +2,15 @@
2
2
  * @Author: baozhoutao@steedos.com
3
3
  * @Date: 2022-11-17 16:29:17
4
4
  * @LastEditors: baozhoutao@steedos.com
5
- * @LastEditTime: 2022-11-28 18:01:27
5
+ * @LastEditTime: 2025-01-21 17:28:38
6
6
  * @Description:
7
7
  */
8
8
  const express = require('express');
9
9
  const router = express.Router();
10
10
  const objectql = require('@steedos/objectql');
11
- const core = require('@steedos/core');
11
+ const auth = require('@steedos/auth');
12
12
 
13
- router.get('/api/pageSchema/:type', core.requireAuthentication, async function (req, res) {
13
+ router.get('/api/pageSchema/:type', auth.requireAuthentication, async function (req, res) {
14
14
  try {
15
15
 
16
16
  const userSession = req.user;
@@ -2,7 +2,7 @@
2
2
  * @Author: baozhoutao@steedos.com
3
3
  * @Date: 2023-08-01 17:47:18
4
4
  * @LastEditors: baozhoutao@steedos.com
5
- * @LastEditTime: 2024-09-04 13:55:15
5
+ * @LastEditTime: 2025-03-10 11:52:39
6
6
  * @Description:
7
7
  -->
8
8
  <!DOCTYPE html>
@@ -30,16 +30,11 @@
30
30
  <link rel="stylesheet" href="/tailwind/tailwind-base.css" />
31
31
 
32
32
  <script>
33
- window.Creator = {};
34
33
  window.Steedos = {
35
34
  isMobile: ()=>{
36
35
  return window.innerWidth <= 768;
37
36
  }
38
37
  };
39
- window.__meteor_runtime_config__ = <%- JSON.stringify(__meteor_runtime_config__) %>
40
- window.Meteor = {
41
- isCordova: false
42
- }
43
38
  </script>
44
39
 
45
40
 
@@ -97,12 +92,11 @@
97
92
 
98
93
  <script src="/amis-pages/js/amis.render.client.js"></script>
99
94
  <script src="/amis-pages/js/amis.util.client.js"></script>
100
- <script src="/amis-pages/js/creator.function.client.js"></script>
95
+ <script src="/amis-pages/js/steedos.function.client.js"></script>
101
96
  <script src="/amis-pages/js/onWindowMessage.client.js"></script>
102
97
 
103
98
 
104
99
  <script >
105
- window.Creator.USER_CONTEXT = <%- JSON.stringify(USER_CONTEXT) %>
106
100
  window.Builder = BuilderSDK.Builder;
107
101
  window.builder = BuilderSDK.builder;
108
102
  window.builder.init('steedos');
@@ -138,7 +132,8 @@
138
132
  assetUrls: assetUrls,
139
133
  steedosAmisVersion: "<%=STEEDOS_AMIS_VERSION%>",
140
134
  locale: "<%=STEEDOS_LOCALE%>" || getBrowserLocale(),
141
- useOpenAPI: STEEDOS_PUBLIC_USE_OPEN_API
135
+ useOpenAPI: STEEDOS_PUBLIC_USE_OPEN_API,
136
+ context: <%- JSON.stringify(USER_CONTEXT) %>
142
137
  });
143
138
 
144
139
  window.axios = amisRequire('axios');
@@ -189,7 +184,7 @@
189
184
  const page = {
190
185
  render_engine: 'amis',
191
186
  name: "<%=pageApiName%>",
192
- schema: <%- JSON.stringify(pageSchema) %>
187
+ schema: <%- JSON.stringify(pageSchema) %> || {}
193
188
  }
194
189
 
195
190
  const container = $(".page-template-root")[0];
@@ -28,7 +28,7 @@ router.get('/api/page/view/:pageId', auth.authentication, async function (req, r
28
28
 
29
29
  // 如果当前用户未登录,且页面不允许匿名访问,则跳转到登录页面
30
30
  if(!userSession && !page.allow_anonymous){
31
- return res.redirect(`/accounts/a/#/login?redirect_uri=${encodeURIComponent(`/api/page/view/${pageId}`)}`);
31
+ return res.redirect(`/login?redirect_uri=${encodeURIComponent(`/api/page/view/${pageId}`)}`);
32
32
  }
33
33
 
34
34
  let assetUrls = req.query.assetUrls;
@@ -48,7 +48,7 @@ router.get('/api/page/view/:pageId', auth.authentication, async function (req, r
48
48
  STEEDOS_AMIS_URL: process.env.STEEDOS_AMIS_URL,
49
49
  STEEDOS_PUBLIC_PAGE_ASSETURLS: assetUrls || process.env.STEEDOS_PUBLIC_PAGE_ASSETURLS,
50
50
  NODE_ENV: process.env.NODE_ENV,
51
- ROOT_URL: __meteor_runtime_config__.ROOT_URL,
51
+ ROOT_URL: process.env.ROOT_URL,
52
52
  STEEDOS_VERSION: process.env.STEEDOS_VERSION,
53
53
  STEEDOS_AMIS_VERSION: process.env.STEEDOS_AMIS_VERSION,
54
54
  STEEDOS_PUBLIC_SCRIPT_VCONSOLE: process.env.STEEDOS_PUBLIC_SCRIPT_VCONSOLE,
@@ -60,8 +60,8 @@ router.get('/api/page/view/:pageId', auth.authentication, async function (req, r
60
60
  userId: userSession.userId,
61
61
  spaceId: userSession.spaceId
62
62
  },
63
- pageSchema: _.isString(pageVersion.schema) ? JSON.parse(pageVersion.schema) : pageVersion.schema,
64
- __meteor_runtime_config__: __meteor_runtime_config__,
63
+ pageSchema: _.isString(pageVersion.schema) ? JSON.parse(pageVersion.schema) : (pageVersion.schema || {}),
64
+ // __meteor_runtime_config__: __meteor_runtime_config__,
65
65
  STEEDOS_PUBLIC_USE_OPEN_API: process.env.STEEDOS_PUBLIC_USE_OPEN_API
66
66
  }
67
67
  const options = {}
@@ -109,7 +109,7 @@ router.get('/api/page/public/:pageId', async function (req, res) {
109
109
  STEEDOS_AMIS_URL: process.env.STEEDOS_AMIS_URL,
110
110
  STEEDOS_PUBLIC_PAGE_ASSETURLS: assetUrls || process.env.STEEDOS_PUBLIC_PAGE_ASSETURLS,
111
111
  NODE_ENV: process.env.NODE_ENV,
112
- ROOT_URL: __meteor_runtime_config__.ROOT_URL,
112
+ ROOT_URL: process.env.ROOT_URL,
113
113
  STEEDOS_VERSION: process.env.STEEDOS_VERSION,
114
114
  STEEDOS_AMIS_VERSION: process.env.STEEDOS_AMIS_VERSION,
115
115
  STEEDOS_PUBLIC_SCRIPT_VCONSOLE: process.env.STEEDOS_PUBLIC_SCRIPT_VCONSOLE,
@@ -122,7 +122,7 @@ router.get('/api/page/public/:pageId', async function (req, res) {
122
122
  spaceId: ""
123
123
  },
124
124
  pageSchema: _.isString(pageVersion.schema) ? JSON.parse(pageVersion.schema) : pageVersion.schema,
125
- __meteor_runtime_config__: __meteor_runtime_config__,
125
+ // __meteor_runtime_config__: __meteor_runtime_config__,
126
126
  STEEDOS_PUBLIC_USE_OPEN_API: process.env.STEEDOS_PUBLIC_USE_OPEN_API
127
127
  }
128
128
  const options = {}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steedos/service-pages",
3
- "version": "3.0.0-beta.2",
3
+ "version": "3.0.0-beta.8",
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": "72fa51bda8ff714d5fdb933bf0a45ea4cb82df74",
11
+ "gitHead": "723d92765db5342a374c7aacb5b835e69f77ca4b",
12
12
  "dependencies": {
13
13
  "clone": "^2.1.2",
14
14
  "ejs": "^3.1.8"
@@ -146,16 +146,7 @@ module.exports = {
146
146
  * Events
147
147
  */
148
148
  events: {
149
- "steedos-server.started": {
150
- async handler() {
151
- await this.publicClientJS();
152
- }
153
- },
154
- "space.initialized": {
155
- async handler() {
156
- await this.publicClientJS();
157
- }
158
- }
149
+
159
150
  },
160
151
 
161
152
  /**
@@ -171,10 +162,11 @@ module.exports = {
171
162
  const { path : packagePath } = packageInfo;
172
163
  let publicPath = path.join(packagePath, 'main', 'default', 'client');
173
164
  try {
174
- if (!fs.existsSync(publicPath) || this.settings.loadedPublicClientJS || typeof WebApp == 'undefined') {
165
+ if (!fs.existsSync(publicPath) || this.settings.loadedPublicClientJS) {
175
166
  return;
176
167
  }
177
168
  } catch (error) {
169
+ console.log('error', error)
178
170
  return
179
171
  }
180
172
 
@@ -184,12 +176,11 @@ module.exports = {
184
176
  try {
185
177
  const router = require('@steedos/router').staticRouter();
186
178
  let routerPath = "";
187
- if (__meteor_runtime_config__.ROOT_URL_PATH_PREFIX) {
188
- routerPath = __meteor_runtime_config__.ROOT_URL_PATH_PREFIX;
179
+ if (process.env.ROOT_URL_PATH_PREFIX) {
180
+ routerPath = process.env.ROOT_URL_PATH_PREFIX;
189
181
  }
190
182
  const cacheTime = 86400000 * 1; // one day
191
183
  router.use(`${routerPath}/pages/js`, express.static(publicPath, { maxAge: cacheTime }));
192
- // WebApp.connectHandlers.use(router);
193
184
  } catch (error) {
194
185
  console.error(error)
195
186
  this.settings.loadedPublicClientJS = false;
@@ -212,9 +203,7 @@ module.exports = {
212
203
  * Service started lifecycle event handler
213
204
  */
214
205
  async started() {
215
- this.broker.waitForServices("steedos-server").then(async () => {
216
- await this.publicClientJS()
217
- });
206
+ await this.publicClientJS()
218
207
  },
219
208
 
220
209
  /**