@steedos/standard-object-database 2.5.3-beta.2 → 2.5.3-beta.21

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.
@@ -1,154 +1,12 @@
1
+ /*
2
+ * @Author: baozhoutao@steedos.com
3
+ * @Date: 2022-08-05 14:17:44
4
+ * @LastEditors: baozhoutao@steedos.com
5
+ * @LastEditTime: 2023-06-09 14:42:12
6
+ * @Description:
7
+ */
1
8
  Steedos.ObjectFieldManager = {};
2
9
 
3
- // Steedos.ObjectFieldManager.__lastDoc = null;
4
-
5
- // const baseFieldsName = [{ "name": "object", "required": true }, { "name": "label", "required": true }, {name: '_name', required: true}, { "name": "type", "required": true }, { "name": "defaultValue" }, { "name": "group" }, { "name": "sort_no" }, { "name": "is_name" }, { "name": "required" }, { "name": "is_wide" }, { "name": "readonly" }, { "name": "hidden" }, { "name": "omit" }, { "name": "index" }, { "name": "sortable" }, { "name": "searchable" }, { "name": "filterable" }, {"name":"inlineHelpText"},{"name":"description"}];
6
-
7
- // function getFieldsByType(doc, type, dataType) {
8
- // let fields = [];
9
- // if(dataType){
10
- // fields = fields.concat(getFieldsByType(doc, dataType))
11
- // }
12
- // switch (type) {
13
- // case 'textarea':{
14
- // fields.push({ name: 'rows', required: true });
15
- // break;
16
- // }
17
- // case 'select':{
18
- // fields.push({ name: 'options', required: true });
19
- // fields.push({ name: 'options.$', required: true });
20
- // fields.push({ name: 'options.$.label', required: true });
21
- // fields.push({ name: 'options.$.value', required: true });
22
- // fields.push({ name: 'options.$.color', required: false });
23
- // fields.push({ name: 'options.$.description', required: false });
24
- // fields.push({ name: 'multiple'});
25
- // break;
26
- // }
27
- // case 'number':{
28
- // fields.push({ name: 'precision', required: true });
29
- // fields.push({ name: 'scale', required: true });
30
- // break;
31
- // }
32
- // case 'currency':{
33
- // fields.push({ name: 'precision', required: true });
34
- // fields.push({ name: 'scale', required: true });
35
- // break;
36
- // }
37
- // case 'percent':{
38
- // fields.push({ name: 'precision', required: true });
39
- // fields.push({ name: 'scale', required: true });
40
- // break;
41
- // }
42
- // case 'lookup': {
43
- // fields.push({ name: 'reference_to'});
44
- // fields.push({ name: 'filtersFunction'});
45
- // fields.push({ name: 'optionsFunction'});
46
- // fields.push({ name: 'multiple'});
47
- // break;
48
- // }
49
- // case 'master_detail': {
50
- // fields.push({ name: 'reference_to'});
51
- // fields.push({ name: 'filtersFunction'});
52
- // fields.push({ name: 'optionsFunction'});
53
- // fields.push({ name: 'write_requires_master_read'});
54
- // break;
55
- // }
56
- // case 'autonumber': {
57
- // fields.push({ name: 'formula', required: true });
58
- // break;
59
- // }
60
- // case 'formula': {
61
- // fields.push({ name: 'formula', required: true });
62
- // fields.push({ name: 'data_type', required: true });
63
- // fields.push({ name: 'formula_blank_value', required: true });
64
- // break;
65
- // }
66
- // case 'summary': {
67
- // fields.push({ name: 'summary_object', required: true });
68
- // fields.push({ name: 'summary_type', required: true });
69
- // if(doc.summary_type != 'count'){
70
- // fields.push({ name: 'summary_field', required: true });
71
- // }
72
- // // fields.push({ name: 'data_type', required: true });
73
- // fields.push({ name: 'precision', required: true });
74
- // fields.push({ name: 'scale', required: true });
75
- // fields.push({ name: 'summary_filters' });
76
- // fields.push({ name: 'summary_filters.$' });
77
- // fields.push({ name: 'summary_filters.$.field' });
78
- // fields.push({ name: 'summary_filters.$.operation' });
79
- // fields.push({ name: 'summary_filters.$.value' });
80
- // break;
81
- // }
82
- // case 'image': {
83
- // // fields.push({ name: 'multiple'}); image多选时,单个字段编辑窗口样式异常,暂时不支持
84
- // break;
85
- // }
86
- // case 'url': {
87
- // fields.push({ name: 'show_as_qr'});
88
- // break;
89
- // }
90
- // default:
91
- // break;
92
- // }
93
- // return fields;
94
- // }
95
- // Meteor.startup(function(){
96
- // $('body').on('hidden.bs.modal', '#afModal', function(){
97
- // Steedos.ObjectFieldManager.__lastDoc = null;
98
- // });
99
- // });
100
-
101
- // Steedos.ObjectFieldManager.changeSchema = function (doc, schema, when) {
102
- // var __lastDoc = Steedos.ObjectFieldManager.__lastDoc;
103
- // var noChange = doc.type && __lastDoc && __lastDoc._id == doc._id && __lastDoc.type == doc.type && __lastDoc.data_type == doc.data_type;
104
- // if(noChange && doc.type == "summary" && __lastDoc.summary_type != doc.summary_type){
105
- // // 当字段类型为汇总时,汇总类型如果有变更,有可能“要聚合的字段”属性不一定必填,所以这里强制重新计算Schema
106
- // noChange = false;
107
- // }
108
- // if(noChange){
109
- // return false;
110
- // }else{
111
- // Steedos.ObjectFieldManager.__lastDoc = doc;
112
- // }
113
-
114
- // var clone = require('clone');
115
- // var fields = clone(Creator.getObject("object_fields").fields);
116
- // var showFields = baseFieldsName.concat(getFieldsByType(doc, doc.type, doc.data_type));
117
- // if(when === 'view'){
118
- // showFields.push({ "name": "name" })
119
- // }else if(when === 'edit' && false){
120
- // showFields.push({name: '_name', required: true})
121
- // }
122
- // var objectName = doc.object;
123
- // if(_.isObject(objectName)){
124
- // objectName = objectName.name
125
- // }
126
- // var _object = Creator.getObject(objectName);
127
- // if(!_object){
128
- // var _objects = Steedos.authRequest(`/api/v4/objects`, { type: 'get', async: false, data: { $filter: "name eq '"+objectName+"'" } });
129
- // _object = _objects && _objects.value && _objects.value.length > 0 ? _objects.value[0] : null;
130
- // }
131
- // // 外部数据源对象必须启用后,才可正常显示对象字段属性
132
- // if(_object && (_object.database_name || _object.datasource)){
133
- // showFields.push({"name":"column_name"})
134
- // showFields.push({"name":"primary"})
135
- // showFields.push({"name":"generated"})
136
- // }
137
- // _.map(fields, function(field, fname){
138
- // var showField = _.find(showFields, function(item){
139
- // return item && item.name === fname;
140
- // })
141
- // if(showField){
142
- // Object.assign(field, showField)
143
- // }else{
144
- // Object.assign(field, {omit: true, hidden: true})
145
- // }
146
- // })
147
-
148
- // var objectSchema = Creator.getObjectSchema({fields: fields});
149
- // Object.assign(schema, new SimpleSchema(objectSchema))
150
- // }
151
-
152
10
  Steedos.ObjectFieldManager.getSummaryFiltersOperation = function(field_type) {
153
11
  var operations, optionals;
154
12
  optionals = {
@@ -93,7 +93,7 @@ groups:
93
93
  advanced: Advanced
94
94
  listviews:
95
95
  all:
96
- label: All
96
+ label: All Data Source
97
97
  actions:
98
98
  testConnection:
99
99
  label: Test connection
@@ -27,4 +27,4 @@ fields:
27
27
  description:
28
28
  listviews:
29
29
  all:
30
- label: All
30
+ label: All Triggers
@@ -34,7 +34,7 @@ fields:
34
34
  description:
35
35
  listviews:
36
36
  all:
37
- label: All
37
+ label: All Object Validation Rules
38
38
  CustomLabels:
39
39
  object_validation_rules_field_error_display_field:
40
40
  object_validation_rules_field_error_display_field_inlineHelpText:
@@ -127,7 +127,7 @@ fields:
127
127
  help:
128
128
  description:
129
129
  owner:
130
- label:
130
+ label: Owner
131
131
  help:
132
132
  description:
133
133
  app_unique_id:
@@ -147,7 +147,7 @@ fields:
147
147
  help:
148
148
  description:
149
149
  is_deleted:
150
- label:
150
+ label: Deleted
151
151
  help:
152
152
  description:
153
153
  reload_time:
@@ -198,7 +198,7 @@ groups:
198
198
  script: Script
199
199
  listviews:
200
200
  all:
201
- label: All
201
+ label: All Objects
202
202
  customize:
203
203
  label: Customize
204
204
  system:
@@ -215,7 +215,7 @@ actions:
215
215
  CustomLabels:
216
216
  objects_field_datasource_defaultValue: Default data source
217
217
  objects_field_datasource_meteor: Meteor
218
- objects_field_enable_approvals:
219
- objects_field_enable_space_global:
220
- objects_field_enable_web_forms:
221
- object_object__error_name_invalid_format:
218
+ objects_field_enable_approvals: Display Request History Steps
219
+ objects_field_enable_space_global: Accessing Data Across Workspaces
220
+ objects_field_enable_web_forms: Allow Online Forms
221
+ object_object__error_name_invalid_format: Can only contain lowercase letters and numbers, must start with a letter, cannot end with an underscore character or contain two consecutive underscore characters
@@ -216,7 +216,7 @@ fields:
216
216
  return ['_id', '=', 'no']
217
217
  }
218
218
  }
219
- sort_no: 450
219
+ sort_no: 445
220
220
  reference_to_field:
221
221
  type: lookup
222
222
  group: Advanced
@@ -615,13 +615,13 @@ fields:
615
615
  required:
616
616
  type: boolean
617
617
  label: Required
618
- group: Advanced
618
+ # group: Advanced
619
619
  visible_on: "{{['autonumber','summary','formula'].indexOf(formData.type) > -1 ? false: true}}"
620
620
  sort_no: 390
621
621
  is_wide:
622
622
  type: boolean
623
623
  label: Is Wide
624
- group: Advanced
624
+ # group: Advanced
625
625
  # readonly:
626
626
  # type: boolean
627
627
  # label: Readonly
@@ -657,7 +657,7 @@ fields:
657
657
  show_as_qr:
658
658
  type: boolean
659
659
  label: Show_as_qr
660
- group: Advanced
660
+ # group: Advanced
661
661
  visible_on: "{{formData.type === 'url' ? true: false}}"
662
662
  sort_no: 440
663
663
  visible_on:
@@ -670,13 +670,13 @@ fields:
670
670
  label: Prompt text
671
671
  type: textarea
672
672
  is_wide: true
673
- group: Advanced
673
+ # group: Advanced
674
674
  sort_no: 460
675
675
  description:
676
676
  label: Description
677
677
  type: textarea
678
678
  is_wide: true
679
- group: Advanced
679
+ # group: Advanced
680
680
  sort_no: 470
681
681
  amis:
682
682
  label: Amis 属性
@@ -266,7 +266,7 @@ list_views:
266
266
  - owner
267
267
  - modified
268
268
  - is_system
269
- label: All List View
269
+ label: All List Views
270
270
  filter_scope: space
271
271
  actions:
272
272
  customize:
@@ -172,7 +172,7 @@ list_views:
172
172
  - object_name
173
173
  - objectName
174
174
  - sort_no
175
- label: All List View
175
+ label: All List Views
176
176
  filter_scope: space
177
177
  sort: [["sort_no", "desc"]]
178
178
  permission_set:
@@ -1,4 +1,5 @@
1
1
  var objectql = require('@steedos/objectql');
2
+ const register = require('@steedos/metadata-registrar');
2
3
  const clone = require('clone');
3
4
  const defaultDatasourceName = 'default';
4
5
  const defaultDatasourcesName = ['default','meteor'];
@@ -135,7 +136,7 @@ function loadDBObject(object){
135
136
  objectql.extend(object, {fields: fields}, {actions: actions}, {relatedList: relatedList});
136
137
  _.each(actions, function(action){
137
138
  action._visible = action.visible;
138
- objectql.addLazyLoadButtons(action.object, action);
139
+ register.addLazyLoadButtons(action.object, action);
139
140
  })
140
141
  }
141
142
 
@@ -189,17 +190,17 @@ function loadObject(doc, oldDoc) {
189
190
 
190
191
  originalObject.isMain = true;
191
192
 
192
- objectql.addObjectConfig(doc, datasourceName);
193
- objectql.loadObjectLazyListViews(doc.name);
194
- objectql.loadObjectLazyActions(doc.name);
195
- objectql.loadActionScripts(doc.name);
196
- objectql.loadObjectLazyMethods(doc.name);
197
- objectql.loadObjectLazyListenners(doc.name);
198
- objectql.loadObjectLazyButtons(doc.name);
193
+ register.addObjectConfig(doc, datasourceName);
194
+ register.loadObjectLazyListViews(doc.name);
195
+ register.loadObjectLazyActions(doc.name);
196
+ register.loadActionScripts(doc.name);
197
+ register.loadObjectLazyMethods(doc.name);
198
+ register.loadObjectLazyListenners(doc.name);
199
+ register.loadObjectLazyButtons(doc.name);
199
200
  //获取到继承后的对象
200
201
  // const _doc = objectql.getObjectConfig(doc.name);
201
202
  // console.log(`loadObject===>`, doc.name)
202
- objectql.getSteedosSchema().metadataRegister.addObjectConfig(DB_OBJECT_SERVICE_NAME, originalObject).then(function(res){
203
+ register.MetadataRegister.addObjectConfig(DB_OBJECT_SERVICE_NAME, originalObject).then(function(res){
203
204
  if(res){
204
205
  // datasource.setObject(doc.name, _doc);
205
206
  // try {
@@ -215,7 +216,7 @@ function loadObject(doc, oldDoc) {
215
216
  // loadObjectPermission(doc);
216
217
  // }
217
218
 
218
- objectql.getSteedosSchema().broker.broadcast("$packages.statisticsActivatedPackages", {});
219
+ broker.broadcast("$packages.statisticsActivatedPackages", {});
219
220
  }
220
221
  })
221
222
 
@@ -273,33 +274,33 @@ function reloadObject(changeLog){
273
274
  case 'field':
274
275
  if(data.event === 'remove'){
275
276
  deleted.fields.push(data.value.name);
276
- objectql.removeObjectFieldConfig(objectName, data.value);
277
+ register.removeObjectFieldConfig(objectName, data.value);
277
278
  }else{
278
279
  if(data.event === 'update'){
279
280
  if(data.value._previousName != data.value.name){
280
281
  deleted.fields.push(data.value._previousName);
281
- objectql.removeObjectFieldConfig(objectName, {name: data.value._previousName});
282
+ register.removeObjectFieldConfig(objectName, {name: data.value._previousName});
282
283
  }
283
284
  }
284
- objectql.addObjectFieldConfig(objectName, data.value);
285
+ register.addObjectFieldConfig(objectName, data.value);
285
286
  }
286
287
  break;
287
288
  case 'action':
288
289
  if(data.event === 'remove'){
289
290
  deleted.actions.push(data.value.name);
290
- objectql.removeObjectButtonsConfig(objectName, data.value);
291
+ register.removeObjectButtonsConfig(objectName, data.value);
291
292
  }else{
292
293
  if(data.event === 'update'){
293
294
  if(data.value._previousName != data.value.name){
294
295
  deleted.actions.push(data.value._previousName);
295
- objectql.removeObjectButtonsConfig(objectName, {name: data.value._previousName});
296
+ register.removeObjectButtonsConfig(objectName, {name: data.value._previousName});
296
297
  }
297
298
  }
298
299
  if(data.value.is_enable){
299
- objectql.addObjectButtonsConfig(objectName, data.value);
300
+ register.addObjectButtonsConfig(objectName, data.value);
300
301
  }else{
301
302
  deleted.actions.push(data.value.name);
302
- objectql.removeObjectButtonsConfig(objectName, data.value);
303
+ register.removeObjectButtonsConfig(objectName, data.value);
303
304
  }
304
305
  }
305
306
  break;
@@ -316,7 +317,7 @@ function reloadObject(changeLog){
316
317
  return
317
318
  }
318
319
  //获取到最新的对象
319
- const object = objectql.getOriginalObjectConfig(objectName);
320
+ const object = register.getOriginalObjectConfig(objectName);
320
321
 
321
322
  let _mf = _.max(_.values(object.fields), function (field) { return field.sort_no; });
322
323
  if(_mf && object.name){
@@ -341,7 +342,7 @@ function reloadObject(changeLog){
341
342
  // } catch (error) {
342
343
  // console.log('error', error);
343
344
  // }
344
- objectql.getSteedosSchema().broker.broadcast("$packages.statisticsActivatedPackages", {});
345
+ broker.broadcast("$packages.statisticsActivatedPackages", {});
345
346
  }
346
347
  })
347
348
  }
@@ -28,10 +28,12 @@ fields:
28
28
  required: true
29
29
  is_name: true
30
30
  searchable: true
31
+ filterable: true
31
32
  name:
32
33
  type: text
33
34
  label: API Name
34
35
  searchable: true
36
+ filterable: true
35
37
  index: true
36
38
  required: true
37
39
  inlineHelpText: Can only contain lowercase letters and numbers, must start with a letter, cannot end with an underscore character or contain two consecutive underscore characters
@@ -131,6 +133,11 @@ fields:
131
133
  inlineHelpText: When enabled, the lookup field associated with this object displays its options as a pop-up window.
132
134
  group: Switch
133
135
  defaultValue: false
136
+ # enable_audit:
137
+ # type: boolean
138
+ # label: Enable Audit
139
+ # group: Switch
140
+ # hidden: true
134
141
  # enable_trash:
135
142
  # type: boolean
136
143
  # enable_space_global:
@@ -4,6 +4,7 @@ const odataMongodb = require("@steedos/odata-v4-mongodb");
4
4
  const clone = require('clone');
5
5
  var objectCore = require('../objects/objects.core.js');
6
6
  const objectql = require('@steedos/objectql');
7
+ const register = require('@steedos/metadata-registrar');
7
8
  const auth = require('@steedos/auth');
8
9
  const MAX_MASTER_DETAIL_LEAVE = objectql.MAX_MASTER_DETAIL_LEAVE;
9
10
  const validateOptionValue = (value)=>{
@@ -198,7 +199,7 @@ const initSummaryDoc = async (doc) => {
198
199
  if (!doc.summary_object) {
199
200
  throw new Error("object_fields_error_summary_object_required");
200
201
  }
201
- let summaryObject = objectql.getObjectConfig(doc.summary_object);
202
+ let summaryObject = register.getObjectConfig(doc.summary_object);
202
203
  let summaryConfig = {
203
204
  summary_object: doc.summary_object,
204
205
  summary_type: doc.summary_type,
@@ -6,6 +6,7 @@
6
6
  const _ = require("underscore");
7
7
  const util = require('@steedos/standard-objects').util;
8
8
  const objectql = require("@steedos/objectql");
9
+ const register = require('@steedos/metadata-registrar')
9
10
  const auth = require('@steedos/auth');
10
11
 
11
12
  module.exports = {
@@ -17,7 +18,7 @@ module.exports = {
17
18
  },
18
19
  afterFind: async function(){
19
20
  const { spaceId } = this;
20
- let dataList = objectql.getAllObjectValidationRules();
21
+ let dataList = register.getAllObjectValidationRules();
21
22
  if (!_.isEmpty(dataList)) {
22
23
  dataList.forEach((doc) => {
23
24
  if (!_.find(this.data.values, (value) => {
@@ -37,7 +38,7 @@ module.exports = {
37
38
  },
38
39
  afterAggregate: async function(){
39
40
  const { spaceId } = this;
40
- let dataList = objectql.getAllObjectValidationRules();
41
+ let dataList = register.getAllObjectValidationRules();
41
42
  if (!_.isEmpty(dataList)) {
42
43
  dataList.forEach((doc) => {
43
44
  if (!_.find(this.data.values, (value) => {
@@ -61,7 +62,7 @@ module.exports = {
61
62
  },
62
63
  afterFindOne: async function(){
63
64
  if (_.isEmpty(this.data.values)) {
64
- const all = objectql.getAllObjectValidationRules();
65
+ const all = register.getAllObjectValidationRules();
65
66
  const id = this.id;
66
67
  this.data.values = _.find(all, function (item) {
67
68
  return item._id === id
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steedos/standard-object-database",
3
- "version": "2.5.3-beta.2",
3
+ "version": "2.5.3-beta.21",
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": "321fe88aba6ddc3380a0d71eaa2e9a18186d49f8"
18
+ "gitHead": "b4313a2ef5d18ef1cf9271bd3c89b2d6fe52d65b"
19
19
  }