@steedos/standard-object-database 2.7.27-beta.6 → 2.7.28-beta.1

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.
Files changed (26) hide show
  1. package/LICENSE.txt +12 -652
  2. package/main/default/client/object_fields.client.js +14 -1
  3. package/main/default/objectTranslations/objects.en/objects.en.objectTranslation.yml +4 -1
  4. package/main/default/objectTranslations/objects.zh-CN/objects.zh-CN.objectTranslation.yml +5 -2
  5. package/main/default/objects/object_fields/fields/auto_fill_mapping.$.to.field.yml +28 -13
  6. package/main/default/objects/object_fields/fields/is_name.field.yml +1 -1
  7. package/main/default/objects/object_fields/listviews/all.listview.yml +1 -0
  8. package/main/default/objects/object_functions/fields/script.field.yml +3 -2
  9. package/main/default/objects/object_triggers/fields/handler.field.yml +3 -2
  10. package/main/default/objects/objects/fields/datasource.field.yml +3 -4
  11. package/main/default/objects/objects/fields/enable_audit.field.yml +6 -0
  12. package/main/default/objects/objects/fields/enable_chatter.field.yml +1 -0
  13. package/main/default/objects/objects/fields/table_name.field.yml +6 -3
  14. package/main/default/objects/objects/fields/table_pk_generated.field.yml +8 -0
  15. package/main/default/objects/objects/fields/table_pk_is_name.field.yml +8 -0
  16. package/main/default/objects/objects/fields/table_pk_name.field.yml +12 -0
  17. package/main/default/objects/objects/fields/table_pk_type.field.yml +14 -0
  18. package/main/default/objects/objects/objects.object.yml +8 -0
  19. package/main/default/pages/object_detail.page.amis.json +2 -1
  20. package/main/default/pages/object_form.page.amis.json +1 -1
  21. package/main/default/server/object_fields.object.js +5 -2
  22. package/main/default/server/objects.object.js +163 -114
  23. package/main/default/services/suggestions.service.js +1 -0
  24. package/main/default/triggers/object_fields.trigger.js +8 -0
  25. package/main/default/triggers/objects.trigger.js +36 -0
  26. package/package.json +5 -5
@@ -329,6 +329,9 @@ module.exports = {
329
329
  },
330
330
  beforeUpdate: async function () {
331
331
  let { doc, object_name, id} = this;
332
+ if(doc.name === '_id' || doc._name === '_id'){
333
+ throw new Error('禁止修改ID字段')
334
+ }
332
335
  delete doc.is_customize
333
336
  validateDoc(doc);
334
337
  // const dbDoc = await objectql.getObject(object_name).findOne(id)
@@ -396,6 +399,11 @@ module.exports = {
396
399
  }
397
400
  },
398
401
  beforeDelete: async function () {
402
+ let { object_name, id} = this;
403
+ const doc = await this.getObject("object_fields").findOne(id);
404
+ if(doc.name === '_id' || doc._name === '_id'){
405
+ throw new Error('禁止删除ID字段')
406
+ }
399
407
  const field = await this.getObject(this.object_name).findOne(this.id,{fields:['name','object']});
400
408
  const enable_tree = await objectql.getObject(field.object).enable_tree;
401
409
  if( ["parent","children"].indexOf(field.name) > -1 && enable_tree ){
@@ -150,6 +150,42 @@ module.exports = {
150
150
  }
151
151
  */
152
152
  }
153
+ if (_.has(doc, 'datasource')) {
154
+ const obj = this.getObject(object_name);
155
+ const latestDoc = await obj.findOne(id);
156
+ const newObjDatasource = latestDoc.datasource;
157
+ if(doc.datasource != newObjDatasource){
158
+ throw new Error(`禁止修改数据源`);
159
+ }
160
+ }
161
+ if(doc.datasource != 'meteor' && doc.datasource != 'default' && doc.datasource){
162
+ var idFieldSet = {}
163
+ if(_.has(doc, 'table_pk_name')){
164
+ idFieldSet.column_name = doc.table_pk_name
165
+ }
166
+ if(_.has(doc, 'table_pk_type')){
167
+ idFieldSet.type = doc.table_pk_type
168
+ }
169
+ if(_.has(doc, 'table_pk_generated')){
170
+ idFieldSet.generated = doc.table_pk_generated
171
+ }
172
+ if(_.has(doc, 'table_pk_is_name')){
173
+ idFieldSet.is_name = doc.table_pk_is_name
174
+ }
175
+
176
+ if(!_.isEmpty(idFieldSet)){
177
+ const adapter = objectql.getDataSource('default').adapter;
178
+ await adapter.connect()
179
+ let collection = adapter.collection('object_fields');
180
+ await collection.update({
181
+ object: doc.name,
182
+ name: '_id'
183
+ }, {
184
+ $set: idFieldSet
185
+ })
186
+ }
187
+
188
+ }
153
189
  },
154
190
  afterUpdate: async function () {
155
191
  const { doc, previousDoc } = this;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steedos/standard-object-database",
3
- "version": "2.7.27-beta.6",
3
+ "version": "2.7.28-beta.1",
4
4
  "main": "package.service.js",
5
5
  "private": false,
6
6
  "publishConfig": {
@@ -12,14 +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.27-beta.6",
16
- "@steedos/service-object-mixin": "2.7.27-beta.6",
17
- "@steedos/standard-objects": "2.7.27-beta.6",
15
+ "@steedos/metadata-core": "2.7.28-beta.1",
16
+ "@steedos/service-object-mixin": "2.7.28-beta.1",
17
+ "@steedos/standard-objects": "2.7.28-beta.1",
18
18
  "amis-formula": "~6.3.0",
19
19
  "clone": "^2.1.2",
20
20
  "moleculer-bullmq": "3.0.0"
21
21
  },
22
22
  "repository": {},
23
23
  "license": "MIT",
24
- "gitHead": "4cc6978a51be2b5b8efcad8ec8adba467df6e02a"
24
+ "gitHead": "ec675154618d09d9a7585ad4d93de475bf4ff8d1"
25
25
  }