@steedos/service-pages 2.5.0-beta.1 → 2.5.0-beta.11

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.
@@ -6,6 +6,9 @@
6
6
  ;(function(){
7
7
  Steedos.Page = {
8
8
  App: {},
9
+ Object: {
10
+ Template: {}
11
+ },
9
12
  Record: {},
10
13
  Listview: {},
11
14
  Header: {},
@@ -35,6 +38,23 @@
35
38
  return modalRoot;
36
39
  }
37
40
 
41
+ Steedos.Page.getDisplay = (objectName)=>{
42
+
43
+ let display = FlowRouter.current().queryParams.display;
44
+ // console.log('=====getDisplay====>', display)
45
+ // const key = `tab.${objectName}.display`;
46
+ const key = 'page_display'
47
+ if(display){
48
+ // console.log('=====getDisplay===setItem=>', key, display)
49
+ localStorage.setItem(key, display)
50
+ }else{
51
+ display = localStorage.getItem(key);
52
+ }
53
+
54
+ return display;
55
+
56
+ }
57
+
38
58
  Steedos.Page.getPage = function (type, appId, objectApiName, recordId, pageId) {
39
59
  let objectInfo = null;
40
60
  let searchParams = FlowRouter.current().queryParams;
@@ -65,32 +85,42 @@
65
85
  if(type === 'list'){
66
86
  return {
67
87
  render_engine: 'amis',
68
- name: 'steedosListviewPage',
69
- schema:{
70
- "name": `${objectApiName}-listview-${listViewId}`,
71
- "type": "steedos-page-listview",
72
- "showHeader": true,
73
- "objectApiName": objectApiName,
74
- "appId": appId,
75
- "display": display,
76
- "columnsTogglable": false,
77
- "listName": "all",
88
+ name: "steedosPageObjectControl",
89
+ schema: {
90
+ "type": "steedos-page-object-control",
91
+ "name": "steedosPageObjectControl"
78
92
  }
93
+ // name: 'steedosListviewPage',
94
+ // schema:{
95
+ // "name": `${objectApiName}-listview-${listViewId}`,
96
+ // "type": "steedos-page-listview",
97
+ // "showHeader": true,
98
+ // "objectApiName": objectApiName,
99
+ // "appId": appId,
100
+ // "display": display,
101
+ // "columnsTogglable": false,
102
+ // // "listName": "all",
103
+ // }
79
104
  }
80
105
  }else if(type === 'record'){
81
106
  return {
82
107
  render_engine: 'amis',
83
- name: 'steedosRecordPage',
108
+ name: "steedosPageObjectControl",
84
109
  schema: {
85
- "name": `${objectApiName}-recordDetail-${recordId}`,
86
- "type": "steedos-page-record-detail",
87
- "objectApiName": objectApiName,
88
- "sideObject": sideObject,
89
- "sideListviewId": sideListviewId,
90
- "recordId": recordId,
91
- "display": display,
92
- "appId": appId,
110
+ "type": "steedos-page-object-control",
111
+ "name": "steedosPageObjectControl"
93
112
  }
113
+ // name: 'steedosRecordPage',
114
+ // schema: {
115
+ // "name": `${objectApiName}-recordDetail-${recordId}`,
116
+ // "type": "steedos-page-record-detail",
117
+ // "objectApiName": objectApiName,
118
+ // "sideObject": sideObject,
119
+ // "sideListviewId": sideListviewId,
120
+ // // "recordId": recordId,
121
+ // "display": display,
122
+ // "appId": appId,
123
+ // }
94
124
  }
95
125
 
96
126
  }else if(type === 'related_list'){
@@ -206,12 +236,12 @@
206
236
  }
207
237
 
208
238
  Steedos.Page.render = function (root, page, data, options = {}) {
209
- // console.log(`Steedos.Page.render`, root, page)
239
+ // console.log(`Steedos.Page.render`, root, page, data)
210
240
  if (page.render_engine && page.render_engine != 'redash') {
211
241
 
212
242
  let schema = typeof page.schema === 'string' ? JSON.parse(page.schema) : page.schema;
213
243
  const rootUrl = __meteor_runtime_config__.ROOT_URL;
214
- const defData = lodash.defaultsDeep({}, data , {data: data} , {
244
+ const defData = lodash.defaultsDeep({}, {data: data} , {
215
245
  data: {
216
246
  app_id: data.appId,
217
247
  object_name: data.objectName,
@@ -237,6 +267,10 @@
237
267
 
238
268
  schema = lodash.defaultsDeep(defData , schema);
239
269
 
270
+ delete schema.data.recordId
271
+ delete schema.data.record_id
272
+
273
+
240
274
  const findComponent = (obj, componentName)=>{
241
275
  return lodash.find(obj, {name : componentName})
242
276
  }
@@ -276,7 +310,7 @@
276
310
  if (!modalRoot) {
277
311
  modalRoot = document.createElement('div');
278
312
  modalRoot.setAttribute('id', rootId);
279
- modalRoot.setAttribute('class', 'h-full');
313
+ modalRoot.setAttribute('class', 'h-full overflow-auto');
280
314
  $(".page-template-root")[0].appendChild(modalRoot);
281
315
  }
282
316
 
@@ -297,6 +331,177 @@
297
331
  return container
298
332
  };
299
333
 
334
+ Steedos.Page.Object.Template.onRendered = function(){
335
+ var objectName, recordId, self;
336
+ self = this;
337
+ objectName = Session.get("object_name");
338
+ this.containerList = [];
339
+ this.pageName = null;
340
+ return this.autorun(function(computation) {
341
+ // console.log('autorun=====>computation:', computation)
342
+ // Session.get("record_id");
343
+ var container, e, lastData, ref, ref1, ref2, regions, schema, updateProps, updatePropsData;
344
+ regions = self.data.regions();
345
+ // console.log('regions====>', regions, this.lastRegions);
346
+ updateProps = true;
347
+ if (regions.objectName !== ((ref = this.lastRegions) != null ? ref.objectName : void 0)) {
348
+ updateProps = false;
349
+ }
350
+ this.lastRegions = regions;
351
+ if (updateProps && self.pageName) {
352
+ try {
353
+ if (SteedosUI.refs[self.pageName]) {
354
+ let queryParams = FlowRouter.current().queryParams
355
+
356
+ if(_.isArray(queryParams.side_object)){
357
+ if(queryParams.side_object.length >= 1){
358
+ queryParams.side_object = queryParams.side_object[0]
359
+ }else{
360
+ queryParams.side_object = ''
361
+ }
362
+ }
363
+
364
+ if(_.isArray(queryParams.side_listview_id)){
365
+ if(queryParams.side_listview_id.length >= 1){
366
+ queryParams.side_listview_id = queryParams.side_listview_id[0]
367
+ }else{
368
+ queryParams.side_listview_id = ''
369
+ }
370
+ };
371
+
372
+ updatePropsData = {
373
+ objectName: objectName,
374
+ pageType: regions.pageType,
375
+ listViewId: regions.listViewId,
376
+ ...queryParams
377
+ };
378
+ if(queryParams.side_listview_id){
379
+ updatePropsData.listName=queryParams.side_listview_id
380
+ }else if(regions.listViewId){
381
+ updatePropsData.listName=regions.listViewId
382
+ }
383
+
384
+ updatePropsData.display = Steedos.Page.getDisplay()
385
+
386
+ updatePropsData.recordId = Tracker.nonreactive(function() {
387
+ return Session.get("record_id");
388
+ });
389
+ lastData = ((ref1 = SteedosUI.refs[self.pageName]) != null ? (ref2 = ref1.__$schema) != null ? ref2.data : void 0 : void 0) || {};
390
+ // console.log("page_object Steedos.Page.Record.updateProps", {
391
+ // data: window._.defaultsDeep(updatePropsData, lastData)
392
+ // });
393
+ return SteedosUI.refs[self.pageName].updateProps({
394
+ data: window._.defaultsDeep(updatePropsData, lastData)
395
+ });
396
+ }
397
+ } catch (error) {
398
+ e = error;
399
+ console.error(self.pageName + ": " + e);
400
+ }
401
+ }
402
+ if (!updateProps && self.pageName && SteedosUI.refs[self.pageName]) {
403
+ try {
404
+ SteedosUI.refs[self.pageName].unmount();
405
+ } catch (error) {
406
+ e = error;
407
+ console.error(self.pageName + ": " + e);
408
+ }
409
+ }
410
+ if (self.data.regions) {
411
+ regions = Tracker.nonreactive(self.data.regions);
412
+ this.lastRegions = regions;
413
+ if (regions && regions.page && regions.page.schema) {
414
+ schema = regions.page.schema;
415
+ if (_.isString(schema)) {
416
+ schema = JSON.parse(schema);
417
+ }
418
+ self.pageName = schema.name;
419
+ }
420
+ }
421
+ objectName = Tracker.nonreactive(function() {
422
+ return Session.get("object_name");
423
+ });
424
+ recordId = Tracker.nonreactive(function() {
425
+ return Session.get("record_id");
426
+ });
427
+ container = Steedos.Page.Object.render(self, objectName, recordId);
428
+ // console.log("page_object Steedos.Page.Object.render");
429
+ if (container) {
430
+ return self.containerList.push(container);
431
+ }
432
+ });
433
+ };
434
+ Steedos.Page.Object.Template.onDestroyed = function(){
435
+ var e, self;
436
+ self = this;
437
+ try {
438
+ SteedosUI.refs[this.pageName].unmount();
439
+ } catch (error) {
440
+ e = error;
441
+ console.error(this.pageName + ": " + e);
442
+ }
443
+ return _.each(this.containerList, function(container) {
444
+ if (container) {
445
+ return ReactDOM.unmountComponentAtNode(container);
446
+ }
447
+ });
448
+ };
449
+ Steedos.Page.Object.render = function(template, objectApiName, recordId = null, options){
450
+ try {
451
+ if (!template.data.regions || !objectApiName) {
452
+ return;
453
+ }
454
+ const { page, ...data } = Tracker.nonreactive(template.data.regions);
455
+ var rootId = "steedosPageObjetRoot";
456
+ var modalRoot = document.getElementById(rootId);
457
+ // if(modalRoot){
458
+ // modalRoot.remove();
459
+ // }
460
+ if (!modalRoot) {
461
+ modalRoot = document.createElement('div');
462
+ modalRoot.setAttribute('id', rootId);
463
+ modalRoot.setAttribute('class', 'h-full')
464
+ $(".page-object-root")[0].appendChild(modalRoot);
465
+ }
466
+
467
+ if (page.render_engine && page.render_engine != 'redash') {
468
+ if(_.isArray(data.side_object)){
469
+ if(data.side_object.length >= 1){
470
+ data.side_object = data.side_object[0]
471
+ }else{
472
+ data.side_object = ''
473
+ }
474
+ }
475
+
476
+ if(_.isArray(data.side_listview_id)){
477
+ if(data.side_listview_id.length >= 1){
478
+ data.side_listview_id = data.side_listview_id[0]
479
+ }else{
480
+ data.side_listview_id = ''
481
+ }
482
+ }
483
+
484
+ if(FlowRouter.current().queryParams.side_listview_id){
485
+ data.listName = FlowRouter.current().queryParams.side_listview_id;
486
+ }else if(data.listViewId){
487
+ data.listName = data.listViewId;
488
+ }
489
+
490
+ if(_.isArray(data.listName)){
491
+ if(data.listName.length >= 1){
492
+ data.listName = data.listName[0]
493
+ }else{
494
+ data.listName = ''
495
+ }
496
+ }
497
+
498
+ return Steedos.Page.render($("#" + rootId)[0], page, Object.assign({}, options, data, {recordId}));
499
+ }
500
+ } catch (error) {
501
+
502
+ }
503
+ }
504
+
300
505
  Steedos.Page.Listview.getDefaultName = function (objectApiName, listViewName) {
301
506
  return `listview_${objectApiName}_${listViewName}`;
302
507
  };
@@ -348,7 +553,7 @@
348
553
  }
349
554
 
350
555
  if (page.render_engine && page.render_engine != 'redash') {
351
- return Steedos.Page.render($("#" + rootId)[0], page, Object.assign({}, options, data));
556
+ return Steedos.Page.render($("#" + rootId)[0], page, Object.assign({}, options, data, {recordId}));
352
557
  }
353
558
  } catch (error) {
354
559
 
@@ -2,7 +2,7 @@
2
2
  * @Author: baozhoutao@steedos.com
3
3
  * @Date: 2022-06-02 17:45:15
4
4
  * @LastEditors: baozhoutao@steedos.com
5
- * @LastEditTime: 2022-08-31 12:01:11
5
+ * @LastEditTime: 2023-04-11 10:15:40
6
6
  * @Description:
7
7
  -->
8
8
  <html>
@@ -120,7 +120,17 @@
120
120
  delete schema.data.context.userId;
121
121
  delete schema.data.context.tenantId;
122
122
  delete schema.data.context.authToken;
123
+ delete schema.data.context.user;
124
+ delete schema.data.context.rootUrl;
123
125
  }
126
+
127
+ try {
128
+ delete schema.data.recordId;
129
+ delete schema.data.objectName;
130
+ } catch (error) {
131
+
132
+ }
133
+
124
134
  return await axios.put(
125
135
  `${rootUrl}/service/api/page/pageVersion/${pageId}`,
126
136
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steedos/service-pages",
3
- "version": "2.5.0-beta.1",
3
+ "version": "2.5.0-beta.11",
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": "5da093d78baa6f2d7011348060c30671354cc7f0",
11
+ "gitHead": "72a894aab5a9d4e277d0464decda0ba39f2f50bb",
12
12
  "dependencies": {
13
13
  "ejs": "^3.1.8"
14
14
  }