@steedos/standard-object-database 2.7.1-beta.8 → 2.7.1-beta.9
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/objects/object_fields/fields/is_name.field.yml +1 -0
- package/main/default/server/object_fields.object.js +4 -2
- package/main/default/triggers/datasources.trigger.js +4 -2
- package/main/default/triggers/object_actions.trigger.js +6 -4
- package/main/default/triggers/object_fields.trigger.js +3 -25
- package/main/default/triggers/object_validation_rules.trigger.js +4 -5
- package/package.json +6 -5
|
@@ -299,8 +299,10 @@ function allowChangeObject(){
|
|
|
299
299
|
}
|
|
300
300
|
|
|
301
301
|
function checkNameField(nameField){
|
|
302
|
-
if(["text", "textarea", "autonumber", "date", "datetime", "time", "formula"].indexOf(nameField.type) < 0){
|
|
303
|
-
throw new Error("
|
|
302
|
+
if(["text", "textarea", "autonumber", "date", "datetime", "time", "formula", "lookup"].indexOf(nameField.type) < 0){
|
|
303
|
+
throw new Error("只有文本、长文本、自动编号、日期、日期时间、时间、公式、相关表这些类型的字段可以被设置为名称字段");
|
|
304
|
+
} else if(nameField.type == "lookup" && nameField.multiple) {
|
|
305
|
+
throw new Error("多选的相关表字段不可以被设置为名称字段");
|
|
304
306
|
}
|
|
305
307
|
}
|
|
306
308
|
|
|
@@ -7,6 +7,7 @@ const InternalData = require('@steedos/standard-objects').internalData;
|
|
|
7
7
|
const objectql = require('@steedos/objectql');
|
|
8
8
|
const auth = require('@steedos/auth');
|
|
9
9
|
const _ = require('underscore');
|
|
10
|
+
const clone = require('clone');
|
|
10
11
|
//由于新版lookup 组件限制。需编写trigger处理在只读页面不显示已选中项的问题
|
|
11
12
|
//由于lookup组件强依赖_id 字段,所以必须返回_id
|
|
12
13
|
|
|
@@ -35,14 +36,15 @@ module.exports = {
|
|
|
35
36
|
dataList.push({_id: 'meteor', name: 'meteor', label: TAPi18n.__(`objects_field_datasource_meteor`, {}, lng), ...BASERECORD})
|
|
36
37
|
}
|
|
37
38
|
if (!_.isEmpty(dataList)) {
|
|
39
|
+
const cloneValues = clone(this.data.values, false);
|
|
38
40
|
dataList.forEach((doc) => {
|
|
39
41
|
if (!_.find(this.data.values, (value) => {
|
|
40
42
|
return value.name === doc.name
|
|
41
43
|
})) {
|
|
42
|
-
|
|
44
|
+
cloneValues.push(doc);
|
|
43
45
|
}
|
|
44
46
|
})
|
|
45
|
-
const records = objectql.getSteedosSchema().metadataDriver.find(
|
|
47
|
+
const records = objectql.getSteedosSchema().metadataDriver.find(cloneValues, this.query, spaceId);
|
|
46
48
|
if (records.length > 0) {
|
|
47
49
|
this.data.values = records;
|
|
48
50
|
} else {
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* @Author: sunhaolin@hotoa.com
|
|
3
3
|
* @Date: 2022-05-28 11:07:57
|
|
4
|
-
* @LastEditors:
|
|
5
|
-
* @LastEditTime: 2024-
|
|
4
|
+
* @LastEditors: 孙浩林 sunhaolin@steedos.com
|
|
5
|
+
* @LastEditTime: 2024-05-11 13:57:23
|
|
6
6
|
* @Description:
|
|
7
7
|
*/
|
|
8
8
|
const InternalData = require('@steedos/standard-objects').internalData;
|
|
9
9
|
const objectql = require('@steedos/objectql');
|
|
10
10
|
const auth = require("@steedos/auth");
|
|
11
|
+
const clone = require('clone');
|
|
11
12
|
const sleep = async (ms) => new Promise(resolve => setTimeout(resolve, ms));
|
|
12
13
|
module.exports = {
|
|
13
14
|
beforeInsert: async function(){
|
|
@@ -35,14 +36,15 @@ module.exports = {
|
|
|
35
36
|
if(objectName){
|
|
36
37
|
let dataList = await InternalData.getObjectActions(objectName, this.userId);
|
|
37
38
|
if (!_.isEmpty(dataList)) {
|
|
39
|
+
const cloneValues = clone(this.data.values, false);
|
|
38
40
|
dataList.forEach((doc) => {
|
|
39
41
|
if (!_.find(this.data.values, (value) => {
|
|
40
42
|
return value.name === doc.name
|
|
41
43
|
})) {
|
|
42
|
-
|
|
44
|
+
cloneValues.push(Object.assign({_id: `${objectName}.${doc.name}`}, doc));
|
|
43
45
|
}
|
|
44
46
|
})
|
|
45
|
-
const records = objectql.getSteedosSchema().metadataDriver.find(
|
|
47
|
+
const records = objectql.getSteedosSchema().metadataDriver.find(cloneValues, this.query, spaceId);
|
|
46
48
|
if (records.length > 0) {
|
|
47
49
|
this.data.values = records;
|
|
48
50
|
} else {
|
|
@@ -231,15 +231,16 @@ module.exports = {
|
|
|
231
231
|
if(objectName){
|
|
232
232
|
let fields = await InternalData.getObjectFields(objectName, this.userId, filters.name ? true : false);
|
|
233
233
|
if(fields){
|
|
234
|
+
const cloneValues = clone(this.data.values, false);
|
|
234
235
|
_.each(fields, (field)=>{
|
|
235
236
|
if(!_.find(this.data.values, (item)=>{
|
|
236
237
|
return item.object == field.object && item.name == field.name
|
|
237
238
|
})){
|
|
238
|
-
|
|
239
|
+
cloneValues.push(Object.assign({_id: `${objectName}.${field.name}`}, field))
|
|
239
240
|
}
|
|
240
241
|
})
|
|
241
242
|
// this.data.values = this.data.values.concat(fields)
|
|
242
|
-
this.data.values = objectql.getSteedosSchema().metadataDriver.find(
|
|
243
|
+
this.data.values = objectql.getSteedosSchema().metadataDriver.find(cloneValues, this.query, this.spaceId);
|
|
243
244
|
}
|
|
244
245
|
}
|
|
245
246
|
|
|
@@ -282,29 +283,6 @@ module.exports = {
|
|
|
282
283
|
}
|
|
283
284
|
|
|
284
285
|
|
|
285
|
-
},
|
|
286
|
-
beforeAggregate: async function(){
|
|
287
|
-
const { query } = this;
|
|
288
|
-
if(query.fields && _.isArray(query.fields) && !_.include(query.fields, 'object')){
|
|
289
|
-
query.fields.push('object')
|
|
290
|
-
}
|
|
291
|
-
},
|
|
292
|
-
afterAggregate: async function(){
|
|
293
|
-
let filters = InternalData.parserFilters(this.query.filters);
|
|
294
|
-
let objectName = filters.object;
|
|
295
|
-
if(!objectName && filters._id && filters._id.indexOf(".") > -1){
|
|
296
|
-
objectName = filters._id.split('.')[0];
|
|
297
|
-
}
|
|
298
|
-
if(objectName){
|
|
299
|
-
let fields = await InternalData.getObjectFields(objectName, this.userId, true);
|
|
300
|
-
if(fields){
|
|
301
|
-
_.each(fields, (field)=>{
|
|
302
|
-
this.data.values.push(Object.assign({_id: `${objectName}.${field.name}`}, field))
|
|
303
|
-
})
|
|
304
|
-
// this.data.values = this.data.values.concat(fields)
|
|
305
|
-
this.data.values = objectql.getSteedosSchema().metadataDriver.find(this.data.values, this.query, this.spaceId);
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
286
|
},
|
|
309
287
|
afterCount: async function(){
|
|
310
288
|
let result = await objectql.getObject('object_fields').find(this.query, await auth.getSessionByUserId(this.userId, this.spaceId))
|
|
@@ -8,26 +8,25 @@ const util = require('@steedos/standard-objects').util;
|
|
|
8
8
|
const objectql = require("@steedos/objectql");
|
|
9
9
|
const register = require('@steedos/metadata-registrar')
|
|
10
10
|
const auth = require('@steedos/auth');
|
|
11
|
+
const clone = require('clone');
|
|
11
12
|
|
|
12
13
|
module.exports = {
|
|
13
14
|
beforeFind: async function(){
|
|
14
15
|
delete this.query.fields;
|
|
15
16
|
},
|
|
16
|
-
beforeAggregate: async function(){
|
|
17
|
-
delete this.query.fields;
|
|
18
|
-
},
|
|
19
17
|
afterFind: async function(){
|
|
20
18
|
const { spaceId } = this;
|
|
21
19
|
let dataList = await register.getAllObjectValidationRules();
|
|
22
20
|
if (!_.isEmpty(dataList)) {
|
|
21
|
+
const cloneValues = clone(this.data.values, false);
|
|
23
22
|
dataList.forEach((doc) => {
|
|
24
23
|
if (!_.find(this.data.values, (value) => {
|
|
25
24
|
return value.name === doc.name
|
|
26
25
|
})) {
|
|
27
|
-
|
|
26
|
+
cloneValues.push(doc);
|
|
28
27
|
}
|
|
29
28
|
})
|
|
30
|
-
const records = objectql.getSteedosSchema().metadataDriver.find(
|
|
29
|
+
const records = objectql.getSteedosSchema().metadataDriver.find(cloneValues, this.query, spaceId);
|
|
31
30
|
if (records.length > 0) {
|
|
32
31
|
this.data.values = records;
|
|
33
32
|
} else {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@steedos/standard-object-database",
|
|
3
|
-
"version": "2.7.1-beta.
|
|
3
|
+
"version": "2.7.1-beta.9",
|
|
4
4
|
"main": "package.service.js",
|
|
5
5
|
"private": false,
|
|
6
6
|
"publishConfig": {
|
|
@@ -12,13 +12,14 @@
|
|
|
12
12
|
"description": "steedos package",
|
|
13
13
|
"dependencies": {
|
|
14
14
|
"@steedos-widgets/amis-lib": "^1.0.22",
|
|
15
|
-
"@steedos/metadata-core": "2.7.1-beta.
|
|
16
|
-
"@steedos/service-object-mixin": "2.7.1-beta.
|
|
17
|
-
"@steedos/standard-objects": "2.7.1-beta.
|
|
15
|
+
"@steedos/metadata-core": "2.7.1-beta.9",
|
|
16
|
+
"@steedos/service-object-mixin": "2.7.1-beta.9",
|
|
17
|
+
"@steedos/standard-objects": "2.7.1-beta.9",
|
|
18
18
|
"amis-formula": "~6.3.0",
|
|
19
|
+
"clone": "^2.1.2",
|
|
19
20
|
"moleculer-bullmq": "3.0.0"
|
|
20
21
|
},
|
|
21
22
|
"repository": {},
|
|
22
23
|
"license": "MIT",
|
|
23
|
-
"gitHead": "
|
|
24
|
+
"gitHead": "63b5ff5367f88ad33c4de6e04a1f432a1e2f5e8e"
|
|
24
25
|
}
|