@steedos/standard-object-database 2.5.19 → 2.5.20-beta.10

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.
@@ -356,6 +356,7 @@ fields:
356
356
  groups:
357
357
  external_data_source: External data source
358
358
  advanced: Advanced
359
+ ui: UI
359
360
  listviews:
360
361
  all:
361
362
  label: All
@@ -332,6 +332,7 @@ fields:
332
332
  groups:
333
333
  external_data_source: 外部数据源
334
334
  advanced: 高级
335
+ ui: 界面布局
335
336
  listviews:
336
337
  all:
337
338
  label: 所有
@@ -3,6 +3,12 @@ var objectql = require('@steedos/objectql');
3
3
  var clone = require('clone');
4
4
  var objectCore = require('./objects.core.js');
5
5
 
6
+ const objectFieldsFind = function (filter) {
7
+ return objectql.wrapAsync(async function () {
8
+ return await objectql.getObject('object_fields').find(this.filter);
9
+ }, { filter: filter })
10
+ }
11
+
6
12
  const MAX_MASTER_DETAIL_LEAVE = objectql.MAX_MASTER_DETAIL_LEAVE;
7
13
 
8
14
  function canRemoveNameFileld(doc){
@@ -105,20 +111,18 @@ function _syncToObject(doc, event) {
105
111
  };
106
112
 
107
113
  function isRepeatedName(doc, name) {
108
- var other;
109
- other = Creator.getCollection("object_fields").find({
110
- object: doc.object,
111
- space: doc.space,
112
- _id: {
113
- $ne: doc._id
114
- },
115
- name: name || doc.name
116
- }, {
117
- fields: {
118
- _id: 1
119
- }
114
+ var other = objectFieldsFind({
115
+ filters: [[
116
+ 'object', '=', doc.object
117
+ ], [
118
+ 'space', '=', doc.space
119
+ ], [
120
+ '_id', '!=', doc._id
121
+ ], [
122
+ 'name', '=', name || doc.name
123
+ ]]
120
124
  });
121
- if (other.count() > 0) {
125
+ if (other.length > 0) {
122
126
  return true;
123
127
  }
124
128
  return false;
@@ -455,33 +459,6 @@ var triggers = {
455
459
  throw new Meteor.Error(500, "华炎云服务不包含自定义业务对象的功能,请部署私有云版本");
456
460
  }
457
461
 
458
- const staticRequiredFields = ['object','label','_name','type'];
459
- // const staticRequiredFieldLabel = ['所属对象','显示名称','字段名','字段类型'];
460
- for(let i = 0; i<staticRequiredFields.length; i++){
461
- const fieldName = staticRequiredFields[i];
462
- const fieldValue = doc[fieldName];
463
- if(!fieldValue){
464
- throw new Meteor.Error(fieldName, "必填字段");
465
- }
466
- }
467
- // options子字段、precision、scale、summary_field不参与以下简单动态必填字段组。
468
- const dynamicsRequired = [
469
- ['language',['code']],['reference_to',['lookup', 'master_detail']],['formula',['autonumber', 'formula']],
470
- ['data_type',['formula']],['rows',['textarea']],['options',['select']],
471
- ['formula_blank_value',['formula']],['summary_object',['summary']],['summary_type',['summary']],
472
- ['deleted_lookup_record_behavior',['lookup']]
473
- ];
474
-
475
- for(let i = 0; i<dynamicsRequired.length; i++){
476
- if( dynamicsRequired[i][1].indexOf(doc.type) > -1 ){
477
- const fieldName = dynamicsRequired[i][0];
478
- const fieldValue = doc[fieldName];
479
- if(!fieldValue){
480
- throw new Meteor.Error(fieldName, "动态必填字段");
481
- }
482
- }
483
- }
484
-
485
462
  checkName(doc._name);
486
463
  if(['name','owner','parent','children'].indexOf(doc._name)>-1){
487
464
  doc.name = doc._name;
@@ -492,8 +469,9 @@ var triggers = {
492
469
  if(doc.name === 'name' || doc.is_name){
493
470
  checkNameField({type: doc.type})
494
471
  }
495
-
472
+ console.log('insert', doc)
496
473
  if (isRepeatedName(doc)) {
474
+
497
475
  throw new Meteor.Error(doc.name, "字段名不能重复");
498
476
  }
499
477
 
@@ -689,12 +689,12 @@ fields:
689
689
  defaultValue: 100
690
690
  scale: 0
691
691
  sortable: true
692
- group: Advanced
692
+ group: ui
693
693
  sort_no: 370
694
694
  is_name:
695
695
  type: boolean
696
696
  label: Is Name
697
- group: Advanced
697
+ group: External data source
698
698
  sort_no: 380
699
699
  amis:
700
700
  disabledOn: "${is_system == true}"
@@ -731,24 +731,25 @@ fields:
731
731
  defaultValue: clear
732
732
  amis:
733
733
  "id": "u:6a556d8a8514"
734
- "disabledOn": "${required==true || is_system == true}"
734
+ "disabledOn": "${required==true}"
735
735
  is_wide:
736
736
  type: boolean
737
737
  label: Is Wide
738
738
  # group: Advanced
739
- # readonly:
740
- # type: boolean
741
- # label: Readonly
742
- # group: Advanced
743
- # hidden:
744
- # type: boolean
745
- # label: Hidden
746
- # group: Advanced
739
+ sort_no: 274
740
+ group: ui
741
+ readonly:
742
+ type: boolean
743
+ label: Readonly
744
+ group: ui
745
+ hidden:
746
+ type: boolean
747
+ label: Hidden
748
+ group: ui
747
749
  # omit:
748
750
  # type: boolean
749
751
  # label: Omit
750
752
  # group: Advanced
751
- sort_no: 274
752
753
  index:
753
754
  type: boolean
754
755
  label: Is Index Field
@@ -764,17 +765,17 @@ fields:
764
765
  sortable:
765
766
  type: boolean
766
767
  label: Sortable
767
- group: Advanced
768
+ group: ui
768
769
  sort_no: 420
769
770
  searchable:
770
771
  type: boolean
771
772
  label: Searchable
772
- group: Advanced
773
+ group: ui
773
774
  sort_no: 428
774
775
  filterable:
775
776
  type: boolean
776
777
  label: Filterable
777
- group: Advanced
778
+ group: ui
778
779
  sort_no: 430
779
780
  show_as_qr:
780
781
  type: boolean
@@ -788,7 +789,7 @@ fields:
788
789
  type: textarea
789
790
  label: Visible On
790
791
  is_wide: true
791
- group: Advanced
792
+ group: ui
792
793
  sort_no: 450
793
794
  inlineHelpText: <a href='https://docs.steedos.com/zh-CN/no-code/customize/fields/field-attributes#%E5%AD%97%E6%AE%B5%E6%98%BE%E7%A4%BA%E5%85%AC%E5%BC%8F' target='_blank'>查看帮助</a>
794
795
  inlineHelpText:
@@ -831,6 +832,8 @@ list_views:
831
832
  - object
832
833
  - sort_no
833
834
  - modified
835
+ - hidden
836
+ - readonly
834
837
  - is_system
835
838
  sort:
836
839
  - field_name: sort_no
@@ -846,6 +849,8 @@ list_views:
846
849
  - object
847
850
  - sort_no
848
851
  - modified
852
+ - hidden
853
+ - readonly
849
854
  - is_system
850
855
  label: 自定义
851
856
  filters:
@@ -216,6 +216,16 @@ function loadObject(doc, oldDoc) {
216
216
 
217
217
  originalObject.isMain = true;
218
218
 
219
+ const objConfig = register.getOriginalObjectConfig(doc.name);
220
+
221
+ if(objConfig){
222
+ _.each(objConfig.fields, (config, name)=>{
223
+ if(!config._id && !doc.fields[name]){
224
+ doc.fields[name] = config;
225
+ }
226
+ })
227
+ }
228
+
219
229
  register.addObjectConfig(doc, datasourceName);
220
230
  register.loadObjectLazyListViews(doc.name);
221
231
  register.loadObjectLazyActions(doc.name);
@@ -1,8 +1,8 @@
1
1
  /*
2
2
  * @Author: yinlianghui@steedos.com
3
3
  * @Date: 2022-04-13 10:31:03
4
- * @LastEditors: yinlianghui@steedos.com
5
- * @LastEditTime: 2022-05-24 14:03:39
4
+ * @LastEditors: liaodaxue
5
+ * @LastEditTime: 2023-11-17 15:48:30
6
6
  * @Description:
7
7
  */
8
8
  var objectql = require('@steedos/objectql');
@@ -11,6 +11,7 @@ async function insertParentAndChildrenFieldForTreeObject(doc, needToCheckExists)
11
11
  const baseProps = {
12
12
  object: doc.name,
13
13
  reference_to: doc.name,
14
+ deleted_lookup_record_behavior: "clear",
14
15
  type: 'lookup',
15
16
  owner: doc.owner,
16
17
  space: doc.space,
@@ -255,6 +255,9 @@ module.exports = {
255
255
  if(query.fields && _.isArray(query.fields) && !_.include(query.fields, 'name')){
256
256
  query.fields.push('name')
257
257
  }
258
+ if(query.fields && _.isArray(query.fields) && !_.include(query.fields, 'type')){
259
+ query.fields.push('type')
260
+ }
258
261
  },
259
262
  beforeAggregate: async function(){
260
263
  const { query } = this;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steedos/standard-object-database",
3
- "version": "2.5.19",
3
+ "version": "2.5.20-beta.10",
4
4
  "main": "package.service.js",
5
5
  "private": false,
6
6
  "publishConfig": {
@@ -15,5 +15,5 @@
15
15
  },
16
16
  "repository": {},
17
17
  "license": "MIT",
18
- "gitHead": "f45f110239267697485b421285e61ca020e4779b"
18
+ "gitHead": "42a5b30eb9031f18283b2b10f1983ede714d7f49"
19
19
  }