@onehat/data 1.19.3 → 1.19.5
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/cypress/e2e/Schema.cy.js
CHANGED
|
@@ -30,7 +30,35 @@ describe('Schema', function() {
|
|
|
30
30
|
expect(_.isEqual(propertyDefinition.name, 'groups_users__id')).to.be.true;
|
|
31
31
|
});
|
|
32
32
|
|
|
33
|
-
it
|
|
33
|
+
it('getDefaultValues', function() {
|
|
34
|
+
const
|
|
35
|
+
defaultValues = this.schema.getDefaultValues(),
|
|
36
|
+
expectedDefaultValues = {
|
|
37
|
+
groups_users__id: null,
|
|
38
|
+
groups_users__group_id: null,
|
|
39
|
+
groups_users__user_id: null,
|
|
40
|
+
groups__id: null,
|
|
41
|
+
groups__name: 'default_group_name',
|
|
42
|
+
groups__description: null,
|
|
43
|
+
users__id: null,
|
|
44
|
+
users__username: 'default_username',
|
|
45
|
+
users__password: null,
|
|
46
|
+
users__full_name: null,
|
|
47
|
+
users__first_name: null,
|
|
48
|
+
users__last_name: null,
|
|
49
|
+
users__job_title: null,
|
|
50
|
+
users__email: null,
|
|
51
|
+
users__login_count: null,
|
|
52
|
+
users__last_login: null,
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
console.log('defaultValues', defaultValues);
|
|
56
|
+
console.log('expectedDefaultValues', expectedDefaultValues);
|
|
57
|
+
|
|
58
|
+
expect(defaultValues).to.be.eql(expectedDefaultValues);
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
it('getTitles, getVirtualdPropertyNames, getIsFilteringDisabledPropertyNames, getIsEditingDisabledPropertyNames, getFieldGroupNames, getFilterTypes', function() {
|
|
34
62
|
const
|
|
35
63
|
schema = new Schema({
|
|
36
64
|
id: 'foo',
|
|
@@ -11,10 +11,10 @@ const GroupsUsers = {
|
|
|
11
11
|
{ name: 'groups_users__group_id', mapping: 'group_id', type: 'int' },
|
|
12
12
|
{ name: 'groups_users__user_id', mapping: 'user_id', type: 'int' },
|
|
13
13
|
{ name: 'groups__id', mapping: 'group.id', type: 'int' },
|
|
14
|
-
{ name: 'groups__name', mapping: 'group.name', type: 'string' },
|
|
14
|
+
{ name: 'groups__name', mapping: 'group.name', type: 'string', defaultValue: 'default_group_name', },
|
|
15
15
|
{ name: 'groups__description', mapping: 'group.description', type: 'string' },
|
|
16
16
|
{ name: 'users__id', mapping: 'user.id', type: 'int' },
|
|
17
|
-
{ name: 'users__username', mapping: 'user.username', type: 'string' },
|
|
17
|
+
{ name: 'users__username', mapping: 'user.username', type: 'string', defaultValue: 'default_username', },
|
|
18
18
|
{ name: 'users__password', mapping: 'user.password', type: 'string' },
|
|
19
19
|
{ name: 'users__full_name', mapping: 'user.full_name', type: 'string' },
|
|
20
20
|
{ name: 'users__first_name', mapping: 'user.first_name', type: 'string' },
|
package/package.json
CHANGED
package/src/Property/Property.js
CHANGED
|
@@ -128,6 +128,11 @@ export default class Property extends EventEmitter {
|
|
|
128
128
|
*/
|
|
129
129
|
isFilteringDisabled: false,
|
|
130
130
|
|
|
131
|
+
/**
|
|
132
|
+
* @member {object} viewerType - The UI viewer type of this property
|
|
133
|
+
*/
|
|
134
|
+
viewerType: null,
|
|
135
|
+
|
|
131
136
|
/**
|
|
132
137
|
* @member {object} editorType - The UI editor type of this property
|
|
133
138
|
*/
|
package/src/Repository/Memory.js
CHANGED
|
@@ -459,7 +459,7 @@ class MemoryRepository extends Repository {
|
|
|
459
459
|
|
|
460
460
|
/**
|
|
461
461
|
* Get a single Entity's index by its id.
|
|
462
|
-
* Overrides Repository method, to
|
|
462
|
+
* Overrides Repository method, to limit results to only the current page.
|
|
463
463
|
* @param {integer} id - id of record to retrieve
|
|
464
464
|
* @return {integer} The numerical index, or undefined
|
|
465
465
|
*/
|
package/src/Schema/Schema.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/** @module Schema */
|
|
2
2
|
|
|
3
3
|
import EventEmitter from '@onehat/events';
|
|
4
|
+
import PropertyTypes from '../Property/index.js';
|
|
4
5
|
import _ from 'lodash';
|
|
5
6
|
|
|
6
7
|
/**
|
|
@@ -255,6 +256,34 @@ export default class Schema extends EventEmitter {
|
|
|
255
256
|
return found;
|
|
256
257
|
}
|
|
257
258
|
|
|
259
|
+
getDefaultValues = () => {
|
|
260
|
+
if (this.isDestroyed) {
|
|
261
|
+
this.throwError('this.getDefaultValues is no longer valid. Schema has been destroyed.');
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
const found = {};
|
|
266
|
+
_.each(this.model.properties, (property) => {
|
|
267
|
+
let defaultValue = null;
|
|
268
|
+
if (!_.isNil(property.defaultValue)) {
|
|
269
|
+
defaultValue = property.defaultValue;
|
|
270
|
+
} else {
|
|
271
|
+
// Look in the property types for a default value
|
|
272
|
+
let propertyType = PropertyTypes[property.type];
|
|
273
|
+
if (!_.isNil(propertyType)) {
|
|
274
|
+
defaultValue = propertyType.defaultValue;
|
|
275
|
+
} else {
|
|
276
|
+
propertyType = PropertyTypes['string'];
|
|
277
|
+
if (!_.isNil(propertyType.defaultValue)) {
|
|
278
|
+
defaultValue = propertyType.defaultValue;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
found[property.name] = defaultValue;
|
|
283
|
+
});
|
|
284
|
+
return found;
|
|
285
|
+
}
|
|
286
|
+
|
|
258
287
|
getVirtualPropertyNames = () => {
|
|
259
288
|
if (this.isDestroyed) {
|
|
260
289
|
this.throwError('this.getVirtualPropertyNames is no longer valid. Schema has been destroyed.');
|