@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.
- package/main/default/objectTranslations/object_fields.en/object_fields.en.objectTranslation.yml +1 -0
- package/main/default/objectTranslations/object_fields.zh-CN/object_fields.zh-CN.objectTranslation.yml +1 -0
- package/main/default/objects/object_fields.object.js +19 -41
- package/main/default/objects/object_fields.object.yml +21 -16
- package/main/default/objects/objects.core.js +10 -0
- package/main/default/objects/objects.tree.js +3 -2
- package/main/default/triggers/object_fields.trigger.js +3 -0
- package/package.json +2 -2
|
@@ -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
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
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.
|
|
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:
|
|
692
|
+
group: ui
|
|
693
693
|
sort_no: 370
|
|
694
694
|
is_name:
|
|
695
695
|
type: boolean
|
|
696
696
|
label: Is Name
|
|
697
|
-
group:
|
|
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
|
|
734
|
+
"disabledOn": "${required==true}"
|
|
735
735
|
is_wide:
|
|
736
736
|
type: boolean
|
|
737
737
|
label: Is Wide
|
|
738
738
|
# group: Advanced
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
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:
|
|
768
|
+
group: ui
|
|
768
769
|
sort_no: 420
|
|
769
770
|
searchable:
|
|
770
771
|
type: boolean
|
|
771
772
|
label: Searchable
|
|
772
|
-
group:
|
|
773
|
+
group: ui
|
|
773
774
|
sort_no: 428
|
|
774
775
|
filterable:
|
|
775
776
|
type: boolean
|
|
776
777
|
label: Filterable
|
|
777
|
-
group:
|
|
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:
|
|
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:
|
|
5
|
-
* @LastEditTime:
|
|
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.
|
|
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": "
|
|
18
|
+
"gitHead": "42a5b30eb9031f18283b2b10f1983ede714d7f49"
|
|
19
19
|
}
|