@steedos/standard-object-database 2.5.20-beta.8 → 2.5.20-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.
@@ -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;
@@ -465,8 +469,9 @@ var triggers = {
465
469
  if(doc.name === 'name' || doc.is_name){
466
470
  checkNameField({type: doc.type})
467
471
  }
468
-
472
+ console.log('insert', doc)
469
473
  if (isRepeatedName(doc)) {
474
+
470
475
  throw new Meteor.Error(doc.name, "字段名不能重复");
471
476
  }
472
477
 
@@ -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);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steedos/standard-object-database",
3
- "version": "2.5.20-beta.8",
3
+ "version": "2.5.20-beta.9",
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": "9501bbf23858aa74a7bb9dcf53f3c7ce4dc765b1"
18
+ "gitHead": "b04fd383c7f469ba970a52744a3778ae58ab4425"
19
19
  }