@steedos/service-pages 3.0.7-beta.1 → 3.0.7-beta.3

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.
@@ -9,5 +9,5 @@ filtersFunction: !!js/function |
9
9
  return ['name', '!=', 'cfs_instances_filerecord']
10
10
  }
11
11
  filterable: true
12
- required: "{{'record' == formData.type || 'list' == formData.type || 'form' == formData.type || 'field_layout' == formData.type ? true: false}}"
13
- visible_on: "{{'record' == formData.type || 'list' == formData.type || 'form' == formData.type || 'field_layout' == formData.type ? true: false}}"
12
+ required: "{{'record' == formData.type || 'list' == formData.type || 'form' == formData.type ? true: false}}"
13
+ visible_on: "{{'record' == formData.type || 'list' == formData.type || 'form' == formData.type ? true: false}}"
@@ -48,9 +48,6 @@ module.exports = {
48
48
  const page = await objectql.getObject('pages').findOne(pageId);
49
49
  const response = {};
50
50
  if(lastVersion){
51
- if(page && page.type == 'field_layout'){
52
- response.fieldLayoutLog = await this.fieldLayoutSave(lastVersion.schema, page.object_name, userSession)
53
- }
54
51
  response.page_versions = await objectql.getObject('page_versions').update(lastVersion._id, { is_active: true }, userSession);
55
52
  return response;
56
53
  }
@@ -429,140 +426,6 @@ module.exports = {
429
426
  }
430
427
  }
431
428
  },
432
- fieldLayoutSave: {
433
- async handler(schemaString, object_name, userSession) {
434
- const submitProps = ["_name", "name", "type", "amis", "auto_fill_mapping", "autonumber_enable_modify", "column_name", "coordinatesType", "create", "data_type",
435
- "defaultValue", "deleted_lookup_record_behavior", "depend_on", "description", "enable_enhanced_lookup", "enable_thousands", "filterable", "filters", "filtersFunction", "formula_blank_value", "formula",
436
- "generated", "group", "hidden", "index", "inlineHelpText", "is_customize", "is_name", "is_system", "is_wide", "label", "language", "multiple", "object", "options", "precision", "primary", "readonly", "reference_to_field",
437
- "reference_to", "required", "rows", "scale", "searchable", "show_as_qr", "sort_no", "sortable", "static", "summary_field", "summary_object", "summary_filters", "summary_type", "unique", "visible_on", "write_requires_master_read"
438
- ];
439
- const schema = JSON.parse(schemaString);
440
- let steedosFields = [];
441
- //提取schema中的steedos-field
442
- function findSteedosFields(obj) {
443
- if (Array.isArray(obj)) {
444
- for (let i = 0; i < obj.length; i++) {
445
- findSteedosFields(obj[i]);
446
- }
447
- } else if (typeof obj === 'object' && obj !== null) {
448
- if (obj.type === 'steedos-field') {
449
- steedosFields.push(obj);
450
- } else {
451
- for (let key in obj) {
452
- findSteedosFields(obj[key]);
453
- }
454
- }
455
- }
456
- }
457
- findSteedosFields(schema);
458
-
459
- const fields = [];
460
- //根据object_fields的字段,提取对应属性
461
- _.forEach(steedosFields, item => {
462
- item._name = item.name;
463
- fields.push(_.pick(item.config, submitProps))
464
- })
465
- const object_fields = await objectql.getObject('object_fields');
466
- const dbFields = await object_fields.directFind({filters: ['object','=', object_name]});
467
- /*
468
- 若fields中存在,dbFields中不存在,将该对象name值存入insertFields
469
- 若fields中存在,dbFields中也存在,将该对象name值存入updateFields
470
- 若fields中不存在,dbFields中存在,将该对象name值存入deleteFields
471
- */
472
- let insertFields = _.differenceBy(fields, dbFields, 'name').map(field => field.name);
473
- let updateFields = _.intersectionBy(fields, dbFields, 'name').map(field => field.name);
474
- let deleteFields = _.differenceBy(dbFields, fields, 'name').map(field => field.name);
475
-
476
- // 用于记录成功和失败的字段
477
- const log = {
478
- insert: {
479
- success: [],
480
- error: []
481
- },
482
- update: {
483
- success: [],
484
- error: []
485
- },
486
- delete: {
487
- success: [],
488
- error: []
489
- }
490
- };
491
-
492
- // 循环需要增加的字段
493
- for (const fieldName of insertFields) {
494
- try {
495
- const newId = await object_fields._makeNewID();
496
- const now = new Date();
497
- const field = _.find(fields, { name: fieldName });
498
- await object_fields.directInsert(Object.assign({}, field, {
499
- _id: newId,
500
- owner: userSession.userId,
501
- space: userSession.spaceId,
502
- object: object_name,
503
- created: now,
504
- modified: now,
505
- created_by: userSession.userId,
506
- modified_by: userSession.userId,
507
- company_id: userSession.company_id,
508
- company_ids: userSession.company_ids
509
- }));
510
- log.insert.success.push(fieldName);
511
- } catch (e) {
512
- log.insert.error.push(fieldName);
513
- console.error(`新增字段 ${fieldName} 时出错:`, e);
514
- }
515
- }
516
-
517
- // const fieldsToUpdate = [];
518
- // _.forEach(updateFields, field => {
519
- // const fieldInFields = _.find(fields, {name: field});
520
- // const sameKeys = _.keys(fieldInFields);
521
- // const fieldInDbFields = _.pick(_.find(dbFields, {name: field}), sameKeys);
522
-
523
-
524
- // // 比较这两个对象,如果不相等,则添加到fieldsToUpdate数组中
525
- // if (!_.isEqual(fieldInFields, fieldInDbFields)) {
526
- // fieldsToUpdate.push(field);
527
- // }
528
- // });
529
- // // 更新updateFields为fieldsToUpdate
530
- // updateFields = fieldsToUpdate;
531
- // 循环需要修改的字段
532
- const now = new Date();
533
- for (const fieldName of updateFields) {
534
- try {
535
- const field = _.find(fields, { name: fieldName });
536
- const id = _.find(dbFields, { name: fieldName })._id;
537
- const submitField = _.omit(field, ['name', '_name']);
538
- await object_fields.directUpdate(id, Object.assign({}, submitField, {
539
- modified: now,
540
- modified_by: userSession.userId
541
- }));
542
- log.update.success.push(fieldName);
543
- } catch (e) {
544
- log.update.error.push(fieldName);
545
- console.error(`更新字段 ${fieldName} 时出错:`, e);
546
- }
547
- }
548
- // 循环需要删除的字段
549
- for (const fieldName of deleteFields) {
550
- try {
551
- const id = _.find(dbFields, { name: fieldName })._id;
552
- await object_fields.directDelete(id);
553
- log.delete.success.push(fieldName);
554
- } catch (e) {
555
- log.delete.error.push(fieldName);
556
- console.error(`删除字段 ${fieldName} 时出错:`, e);
557
- }
558
- }
559
- //label和修改时间未实时生效
560
- const object = await objectql.getObject('objects');
561
- const current_object = await object.findOne({filters:[["name","=",object_name]]});
562
- await object.update(current_object._id,{reload_time: new Date()})
563
- return log;
564
- }
565
- }
566
429
  },
567
430
 
568
431
  /**
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@steedos/service-pages",
3
- "version": "3.0.7-beta.1",
3
+ "version": "3.0.7-beta.3",
4
4
  "main": "package.service.js",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
7
7
  "access": "public"
8
8
  },
9
- "gitHead": "00bf759c06e2afa2dd043377addd7c95d9ea8a99",
9
+ "gitHead": "ef6ed92d244835fae9ca3436e7be6f9eb362ffdd",
10
10
  "dependencies": {
11
11
  "clone": "^2.1.2",
12
12
  "ejs": "^3.1.8"