@ironcode/vas-lib 0.0.9 → 0.0.11
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/cjs/lib/entity/vas-control.model.d.ts +1 -1
- package/cjs/lib/entity/vas-control.model.js +1 -1
- package/cjs/lib/entity/vas-control.model.js.map +1 -1
- package/cjs/lib/entity/vas-form.dto.d.ts +3 -0
- package/cjs/lib/entity/vas-form.dto.d.ts.map +1 -1
- package/cjs/lib/entity/vas-form.dto.js.map +1 -1
- package/cjs/lib/entity/vas-form.model.d.ts +7 -1
- package/cjs/lib/entity/vas-form.model.d.ts.map +1 -1
- package/cjs/lib/entity/vas-form.model.js +11 -2
- package/cjs/lib/entity/vas-form.model.js.map +1 -1
- package/cjs/lib/entity/vas-job.model.d.ts +14 -27
- package/cjs/lib/entity/vas-job.model.d.ts.map +1 -1
- package/cjs/lib/entity/vas-job.model.js +74 -70
- package/cjs/lib/entity/vas-job.model.js.map +1 -1
- package/cjs/lib/entity/vas-job.model.spec-data.d.ts.map +1 -1
- package/cjs/lib/entity/vas-job.model.spec-data.js +3 -0
- package/cjs/lib/entity/vas-job.model.spec-data.js.map +1 -1
- package/cjs/lib/utils/get-value-by-path.d.ts +20 -0
- package/cjs/lib/utils/get-value-by-path.d.ts.map +1 -0
- package/cjs/lib/utils/get-value-by-path.js +68 -0
- package/cjs/lib/utils/get-value-by-path.js.map +1 -0
- package/esm2020/lib/entity/vas-control.model.mjs +2 -2
- package/esm2020/lib/entity/vas-form.dto.mjs +1 -1
- package/esm2020/lib/entity/vas-form.model.mjs +12 -3
- package/esm2020/lib/entity/vas-job.model.mjs +75 -71
- package/esm2020/lib/utils/get-value-by-path.mjs +64 -0
- package/fesm2015/ironcode-vas-lib.mjs +149 -73
- package/fesm2015/ironcode-vas-lib.mjs.map +1 -1
- package/fesm2020/ironcode-vas-lib.mjs +149 -73
- package/fesm2020/ironcode-vas-lib.mjs.map +1 -1
- package/lib/entity/vas-control.model.d.ts +1 -1
- package/lib/entity/vas-form.dto.d.ts +3 -0
- package/lib/entity/vas-form.model.d.ts +7 -1
- package/lib/entity/vas-job.model.d.ts +14 -27
- package/lib/utils/get-value-by-path.d.ts +19 -0
- package/package.json +1 -1
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A non sophisticated way to get values from the job via paths. For example:
|
|
3
|
+
*
|
|
4
|
+
* getValueByPath(
|
|
5
|
+
* ['foo', 'bar'],
|
|
6
|
+
* {
|
|
7
|
+
* foo: {
|
|
8
|
+
* bar: 'value'
|
|
9
|
+
* }
|
|
10
|
+
* }
|
|
11
|
+
* );
|
|
12
|
+
*
|
|
13
|
+
* will return "value"
|
|
14
|
+
* @param {string[]} path
|
|
15
|
+
* @param {Record<string, VasFieldDtoValue>} object
|
|
16
|
+
* @return {T | undefined}
|
|
17
|
+
*/
|
|
18
|
+
export const getValueByPath = (path, object) => {
|
|
19
|
+
switch (path.length) {
|
|
20
|
+
case 0: {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
case 1: {
|
|
24
|
+
return (object)[path[0]];
|
|
25
|
+
}
|
|
26
|
+
case 2: {
|
|
27
|
+
const val0 = object[path[0]];
|
|
28
|
+
if (!val0) {
|
|
29
|
+
return undefined;
|
|
30
|
+
}
|
|
31
|
+
return val0[path[1]];
|
|
32
|
+
}
|
|
33
|
+
case 3: {
|
|
34
|
+
const val0 = object[path[0]];
|
|
35
|
+
if (!val0) {
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
const val1 = val0[path[1]];
|
|
39
|
+
if (!val1) {
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
return val1[path[2]];
|
|
43
|
+
}
|
|
44
|
+
case 4: {
|
|
45
|
+
const val0 = object[path[0]];
|
|
46
|
+
if (!val0) {
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
const val1 = val0[path[1]];
|
|
50
|
+
if (!val1) {
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
const val2 = val1[path[2]];
|
|
54
|
+
if (!val2) {
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
return val2[path[3]];
|
|
58
|
+
}
|
|
59
|
+
default: {
|
|
60
|
+
throw Error('path has too many segments');
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXZhbHVlLWJ5LXBhdGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YXMtbGliL3NyYy9saWIvdXRpbHMvZ2V0LXZhbHVlLWJ5LXBhdGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FDNUIsSUFBYyxFQUNkLE1BQTJFLEVBQzVELEVBQUU7SUFDakIsUUFBUSxJQUFJLENBQUMsTUFBTSxFQUFFO1FBQ25CLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDTixPQUFPO1NBQ1I7UUFDRCxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ04sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBTSxDQUFDO1NBQy9CO1FBQ0QsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNOLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQTJCLENBQUM7WUFDdkQsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDVCxPQUFPLFNBQVMsQ0FBQzthQUNsQjtZQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBTSxDQUFDO1NBQzNCO1FBQ0QsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNOLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQTJCLENBQUM7WUFDdkQsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDVCxPQUFPLFNBQVMsQ0FBQzthQUNsQjtZQUNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQTJCLENBQUM7WUFDckQsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDVCxPQUFPLFNBQVMsQ0FBQzthQUNsQjtZQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBTSxDQUFDO1NBQzNCO1FBQ0QsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNOLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQTJCLENBQUM7WUFDdkQsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDVCxPQUFPLFNBQVMsQ0FBQzthQUNsQjtZQUNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQTJCLENBQUM7WUFDckQsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDVCxPQUFPLFNBQVMsQ0FBQzthQUNsQjtZQUNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQTJCLENBQUM7WUFDckQsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDVCxPQUFPLFNBQVMsQ0FBQzthQUNsQjtZQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBTSxDQUFDO1NBQzNCO1FBQ0QsT0FBTyxDQUFDLENBQUM7WUFDUCxNQUFNLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1NBQzNDO0tBQ0Y7QUFDSCxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYXNGaWVsZER0b1ZhbHVlIH0gZnJvbSAnLi4vZW50aXR5L3Zhcy1maWVsZC5kdG8nO1xuXG4vKipcbiAqIEEgbm9uIHNvcGhpc3RpY2F0ZWQgd2F5IHRvIGdldCB2YWx1ZXMgZnJvbSB0aGUgam9iIHZpYSBwYXRocy4gRm9yIGV4YW1wbGU6XG4gKlxuICogZ2V0VmFsdWVCeVBhdGgoXG4gKiAgWydmb28nLCAnYmFyJ10sXG4gKiAge1xuICogICBmb286IHtcbiAqICAgICBiYXI6ICd2YWx1ZSdcbiAqICAgfVxuICogIH1cbiAqICk7XG4gKlxuICogd2lsbCByZXR1cm4gXCJ2YWx1ZVwiXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBwYXRoXG4gKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIFZhc0ZpZWxkRHRvVmFsdWU+fSBvYmplY3RcbiAqIEByZXR1cm4ge1QgfCB1bmRlZmluZWR9XG4gKi9cbmV4cG9ydCBjb25zdCBnZXRWYWx1ZUJ5UGF0aCA9IDxUIGV4dGVuZHMgVmFzRmllbGREdG9WYWx1ZT4oXG4gIHBhdGg6IHN0cmluZ1tdLFxuICBvYmplY3Q6IFJlY29yZDxzdHJpbmcsIFZhc0ZpZWxkRHRvVmFsdWUgfCBSZWNvcmQ8c3RyaW5nLCBWYXNGaWVsZER0b1ZhbHVlPj5cbik6IFQgfCB1bmRlZmluZWQgPT4ge1xuICBzd2l0Y2ggKHBhdGgubGVuZ3RoKSB7XG4gICAgY2FzZSAwOiB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNhc2UgMToge1xuICAgICAgcmV0dXJuIChvYmplY3QpW3BhdGhbMF1dIGFzIFQ7XG4gICAgfVxuICAgIGNhc2UgMjoge1xuICAgICAgY29uc3QgdmFsMCA9IG9iamVjdFtwYXRoWzBdXSBhcyBSZWNvcmQ8c3RyaW5nLCBvYmplY3Q+O1xuICAgICAgaWYgKCF2YWwwKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gdmFsMFtwYXRoWzFdXSBhcyBUO1xuICAgIH1cbiAgICBjYXNlIDM6IHtcbiAgICAgIGNvbnN0IHZhbDAgPSBvYmplY3RbcGF0aFswXV0gYXMgUmVjb3JkPHN0cmluZywgb2JqZWN0PjtcbiAgICAgIGlmICghdmFsMCkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgY29uc3QgdmFsMSA9IHZhbDBbcGF0aFsxXV0gYXMgUmVjb3JkPHN0cmluZywgb2JqZWN0PjtcbiAgICAgIGlmICghdmFsMSkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbDFbcGF0aFsyXV0gYXMgVDtcbiAgICB9XG4gICAgY2FzZSA0OiB7XG4gICAgICBjb25zdCB2YWwwID0gb2JqZWN0W3BhdGhbMF1dIGFzIFJlY29yZDxzdHJpbmcsIG9iamVjdD47XG4gICAgICBpZiAoIXZhbDApIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHZhbDEgPSB2YWwwW3BhdGhbMV1dIGFzIFJlY29yZDxzdHJpbmcsIG9iamVjdD47XG4gICAgICBpZiAoIXZhbDEpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHZhbDIgPSB2YWwxW3BhdGhbMl1dIGFzIFJlY29yZDxzdHJpbmcsIG9iamVjdD47XG4gICAgICBpZiAoIXZhbDIpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWwyW3BhdGhbM11dIGFzIFQ7XG4gICAgfVxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIHRocm93IEVycm9yKCdwYXRoIGhhcyB0b28gbWFueSBzZWdtZW50cycpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -243,7 +243,7 @@ class VasControlModel extends VasBaseModel {
|
|
|
243
243
|
}
|
|
244
244
|
/**
|
|
245
245
|
* Returns the name of this control to be used in the report templates
|
|
246
|
-
* i.e.
|
|
246
|
+
* i.e. fields.foo -> foo
|
|
247
247
|
* @return {string}
|
|
248
248
|
*/
|
|
249
249
|
get reportTemplateName() {
|
|
@@ -487,8 +487,11 @@ class VasFormModel extends VasBaseModel {
|
|
|
487
487
|
* @param {string} title
|
|
488
488
|
* @param {string} description
|
|
489
489
|
* @param {VasGroupModel[]} groups
|
|
490
|
+
* @param {string} dynamicDescriptor
|
|
491
|
+
* @param {string} indexName
|
|
492
|
+
* @param {string} pipelineName
|
|
490
493
|
*/
|
|
491
|
-
constructor(id, created, serverCreated, createdBy, modified, serverModified, modifiedBy, account, accessGroup, jobType, title, description, groups) {
|
|
494
|
+
constructor(id, created, serverCreated, createdBy, modified, serverModified, modifiedBy, account, accessGroup, jobType, title, description, groups, dynamicDescriptor, indexName, pipelineName) {
|
|
492
495
|
super(id, created, serverCreated, createdBy, modified, serverModified, modifiedBy);
|
|
493
496
|
this.id = id;
|
|
494
497
|
this.created = created;
|
|
@@ -503,6 +506,9 @@ class VasFormModel extends VasBaseModel {
|
|
|
503
506
|
this.title = title;
|
|
504
507
|
this.description = description;
|
|
505
508
|
this.groups = groups;
|
|
509
|
+
this.dynamicDescriptor = dynamicDescriptor;
|
|
510
|
+
this.indexName = indexName;
|
|
511
|
+
this.pipelineName = pipelineName;
|
|
506
512
|
}
|
|
507
513
|
/**
|
|
508
514
|
* Returns the name of this form in a "safe" way, i.e. no spaces, special
|
|
@@ -545,7 +551,7 @@ class VasFormModel extends VasBaseModel {
|
|
|
545
551
|
static fromDto(dto) {
|
|
546
552
|
return new VasFormModel(dto.id || '', dto.created || '', dto.serverCreated || '', dto.createdBy || '', dto.modified || '', dto.serverModified || '', dto.modifiedBy || '', dto.account || '', dto.accessGroup || '', dto.jobType || '', dto.title || '', dto.description || '', (dto.groups || [])
|
|
547
553
|
.sort((a, b) => a.sequence - b.sequence)
|
|
548
|
-
.map(g => VasGroupModel.fromDto(g)));
|
|
554
|
+
.map(g => VasGroupModel.fromDto(g)), dto.dynamicDescriptor || '', dto.indexName || '', dto.pipelineName || '');
|
|
549
555
|
}
|
|
550
556
|
addControlTypesToControl(controlTypes) {
|
|
551
557
|
const controlTypeModels = controlTypes
|
|
@@ -647,10 +653,77 @@ class VasFormModel extends VasBaseModel {
|
|
|
647
653
|
title: this.title,
|
|
648
654
|
description: this.description,
|
|
649
655
|
groups: this.groups.map(group => group.toDto()),
|
|
656
|
+
dynamicDescriptor: this.dynamicDescriptor,
|
|
657
|
+
indexName: this.indexName,
|
|
658
|
+
pipelineName: this.pipelineName
|
|
650
659
|
};
|
|
651
660
|
}
|
|
652
661
|
}
|
|
653
662
|
|
|
663
|
+
/**
|
|
664
|
+
* A non sophisticated way to get values from the job via paths. For example:
|
|
665
|
+
*
|
|
666
|
+
* getValueByPath(
|
|
667
|
+
* ['foo', 'bar'],
|
|
668
|
+
* {
|
|
669
|
+
* foo: {
|
|
670
|
+
* bar: 'value'
|
|
671
|
+
* }
|
|
672
|
+
* }
|
|
673
|
+
* );
|
|
674
|
+
*
|
|
675
|
+
* will return "value"
|
|
676
|
+
* @param {string[]} path
|
|
677
|
+
* @param {Record<string, VasFieldDtoValue>} object
|
|
678
|
+
* @return {T | undefined}
|
|
679
|
+
*/
|
|
680
|
+
const getValueByPath = (path, object) => {
|
|
681
|
+
switch (path.length) {
|
|
682
|
+
case 0: {
|
|
683
|
+
return;
|
|
684
|
+
}
|
|
685
|
+
case 1: {
|
|
686
|
+
return (object)[path[0]];
|
|
687
|
+
}
|
|
688
|
+
case 2: {
|
|
689
|
+
const val0 = object[path[0]];
|
|
690
|
+
if (!val0) {
|
|
691
|
+
return undefined;
|
|
692
|
+
}
|
|
693
|
+
return val0[path[1]];
|
|
694
|
+
}
|
|
695
|
+
case 3: {
|
|
696
|
+
const val0 = object[path[0]];
|
|
697
|
+
if (!val0) {
|
|
698
|
+
return undefined;
|
|
699
|
+
}
|
|
700
|
+
const val1 = val0[path[1]];
|
|
701
|
+
if (!val1) {
|
|
702
|
+
return undefined;
|
|
703
|
+
}
|
|
704
|
+
return val1[path[2]];
|
|
705
|
+
}
|
|
706
|
+
case 4: {
|
|
707
|
+
const val0 = object[path[0]];
|
|
708
|
+
if (!val0) {
|
|
709
|
+
return undefined;
|
|
710
|
+
}
|
|
711
|
+
const val1 = val0[path[1]];
|
|
712
|
+
if (!val1) {
|
|
713
|
+
return undefined;
|
|
714
|
+
}
|
|
715
|
+
const val2 = val1[path[2]];
|
|
716
|
+
if (!val2) {
|
|
717
|
+
return undefined;
|
|
718
|
+
}
|
|
719
|
+
return val2[path[3]];
|
|
720
|
+
}
|
|
721
|
+
default: {
|
|
722
|
+
throw Error('path has too many segments');
|
|
723
|
+
}
|
|
724
|
+
}
|
|
725
|
+
};
|
|
726
|
+
|
|
654
727
|
/**
|
|
655
728
|
* JobModel
|
|
656
729
|
*/
|
|
@@ -697,8 +770,6 @@ class VasJobModel extends VasBaseModel {
|
|
|
697
770
|
* @return {VasJobModelDynamicInterface}
|
|
698
771
|
*/
|
|
699
772
|
get $this() {
|
|
700
|
-
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
701
|
-
const $this = this;
|
|
702
773
|
return this;
|
|
703
774
|
}
|
|
704
775
|
/**
|
|
@@ -757,69 +828,33 @@ class VasJobModel extends VasBaseModel {
|
|
|
757
828
|
return fields;
|
|
758
829
|
}
|
|
759
830
|
/**
|
|
760
|
-
*
|
|
761
|
-
*
|
|
762
|
-
*
|
|
763
|
-
*
|
|
764
|
-
*
|
|
765
|
-
*
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
831
|
+
* Will return an object whose keys are the names of all fields in the job but
|
|
832
|
+
* with the "fields." part removed. This method is similar to `getFields`
|
|
833
|
+
* except that this method will only return values that are set whereas
|
|
834
|
+
* `getFields` will return a property regardless (because it uses the form to
|
|
835
|
+
* drive the logic)
|
|
836
|
+
* @return {Record<string, VasFieldDtoValue>}
|
|
837
|
+
*/
|
|
838
|
+
getFields2() {
|
|
839
|
+
let fields = {};
|
|
840
|
+
this.dynamicProperties
|
|
841
|
+
.forEach((groupName) => {
|
|
842
|
+
Object
|
|
843
|
+
.keys(this.$this[groupName])
|
|
844
|
+
.forEach(controlName => {
|
|
845
|
+
const controlNameShort = controlName.replace(/fields\./, '');
|
|
846
|
+
fields[controlNameShort] = this.getValueByPath([groupName, controlName]);
|
|
847
|
+
});
|
|
848
|
+
}, {});
|
|
849
|
+
return fields;
|
|
850
|
+
}
|
|
851
|
+
/**
|
|
852
|
+
|
|
775
853
|
* @param {string[]} path path segments
|
|
776
854
|
* @return {void}
|
|
777
855
|
*/
|
|
778
856
|
getValueByPath(path = []) {
|
|
779
|
-
|
|
780
|
-
case 0: {
|
|
781
|
-
return;
|
|
782
|
-
}
|
|
783
|
-
case 1: {
|
|
784
|
-
return (this.$this)[path[0]];
|
|
785
|
-
}
|
|
786
|
-
case 2: {
|
|
787
|
-
const val0 = this.$this[path[0]];
|
|
788
|
-
if (!val0) {
|
|
789
|
-
return undefined;
|
|
790
|
-
}
|
|
791
|
-
return val0[path[1]];
|
|
792
|
-
}
|
|
793
|
-
case 3: {
|
|
794
|
-
const val0 = this.$this[path[0]];
|
|
795
|
-
if (!val0) {
|
|
796
|
-
return undefined;
|
|
797
|
-
}
|
|
798
|
-
const val1 = val0[path[1]];
|
|
799
|
-
if (!val1) {
|
|
800
|
-
return undefined;
|
|
801
|
-
}
|
|
802
|
-
return val1[path[2]];
|
|
803
|
-
}
|
|
804
|
-
case 4: {
|
|
805
|
-
const val0 = this.$this[path[0]];
|
|
806
|
-
if (!val0) {
|
|
807
|
-
return undefined;
|
|
808
|
-
}
|
|
809
|
-
const val1 = val0[path[1]];
|
|
810
|
-
if (!val1) {
|
|
811
|
-
return undefined;
|
|
812
|
-
}
|
|
813
|
-
const val2 = val1[path[2]];
|
|
814
|
-
if (!val2) {
|
|
815
|
-
return undefined;
|
|
816
|
-
}
|
|
817
|
-
return val2[path[3]];
|
|
818
|
-
}
|
|
819
|
-
default: {
|
|
820
|
-
throw Error('path has too many segments');
|
|
821
|
-
}
|
|
822
|
-
}
|
|
857
|
+
return getValueByPath(path, this.$this);
|
|
823
858
|
}
|
|
824
859
|
/**
|
|
825
860
|
* A very non sophisticated way to set values in the job via paths
|
|
@@ -844,7 +879,7 @@ class VasJobModel extends VasBaseModel {
|
|
|
844
879
|
return;
|
|
845
880
|
}
|
|
846
881
|
case 1: {
|
|
847
|
-
|
|
882
|
+
this[path[0]] = value;
|
|
848
883
|
return;
|
|
849
884
|
}
|
|
850
885
|
case 2: {
|
|
@@ -868,14 +903,29 @@ class VasJobModel extends VasBaseModel {
|
|
|
868
903
|
* @return {VasJobDto}
|
|
869
904
|
*/
|
|
870
905
|
toDto(staticOnly = false) {
|
|
871
|
-
const dto = {};
|
|
872
|
-
this.staticProperties
|
|
873
|
-
.forEach(prop => (dto)[prop] = this.$this[prop]);
|
|
874
906
|
if (staticOnly) {
|
|
875
|
-
return
|
|
907
|
+
return {
|
|
908
|
+
id: this.id,
|
|
909
|
+
created: this.created,
|
|
910
|
+
createdBy: this.createdBy,
|
|
911
|
+
modified: this.modified,
|
|
912
|
+
modifiedBy: this.modifiedBy,
|
|
913
|
+
serverCreated: this.serverCreated,
|
|
914
|
+
serverModified: this.serverModified,
|
|
915
|
+
account: this.account,
|
|
916
|
+
accessGroup: this.accessGroup,
|
|
917
|
+
reference: this.reference,
|
|
918
|
+
jobDate: this.jobDate,
|
|
919
|
+
jobStatus: this.jobStatus,
|
|
920
|
+
jobType: this.jobType,
|
|
921
|
+
assignee: this.assignee,
|
|
922
|
+
formId: this.formId,
|
|
923
|
+
timeZoneOffset: this.timeZoneOffset,
|
|
924
|
+
};
|
|
876
925
|
}
|
|
877
|
-
|
|
878
|
-
|
|
926
|
+
const dto = {};
|
|
927
|
+
[...this.staticProperties, ...this.dynamicProperties]
|
|
928
|
+
.forEach(prop => (dto)[prop] = this.$this[prop]);
|
|
879
929
|
return dto;
|
|
880
930
|
}
|
|
881
931
|
/**
|
|
@@ -930,7 +980,33 @@ class VasJobModel extends VasBaseModel {
|
|
|
930
980
|
filterArg = (filterArg || '').trim();
|
|
931
981
|
}
|
|
932
982
|
const path = key.split('.');
|
|
933
|
-
|
|
983
|
+
const objectKey = path.shift() || '';
|
|
984
|
+
let result = '';
|
|
985
|
+
if (objectKey === 'job') {
|
|
986
|
+
result = (this.getValueByPath(path) || '').toString();
|
|
987
|
+
}
|
|
988
|
+
else if (objectKey === 'fields') {
|
|
989
|
+
result = (getValueByPath(path, this.getFields2()) || '').toString();
|
|
990
|
+
}
|
|
991
|
+
else if (objectKey.length) {
|
|
992
|
+
if (options.objects) {
|
|
993
|
+
if (options.objects[objectKey] === undefined) {
|
|
994
|
+
console.debug(`objectKey ${objectKey} is not present in options.object`);
|
|
995
|
+
result = '';
|
|
996
|
+
}
|
|
997
|
+
else {
|
|
998
|
+
result = (getValueByPath(path, options.objects[objectKey]) || '')
|
|
999
|
+
.toString();
|
|
1000
|
+
}
|
|
1001
|
+
}
|
|
1002
|
+
else {
|
|
1003
|
+
console.debug(`objectKey ${objectKey} was used but options.object is not set`);
|
|
1004
|
+
return '';
|
|
1005
|
+
}
|
|
1006
|
+
}
|
|
1007
|
+
else {
|
|
1008
|
+
return '';
|
|
1009
|
+
}
|
|
934
1010
|
if (filterName && result) {
|
|
935
1011
|
switch (filterName) {
|
|
936
1012
|
case 'date': {
|
|
@@ -944,7 +1020,7 @@ class VasJobModel extends VasBaseModel {
|
|
|
944
1020
|
}
|
|
945
1021
|
}
|
|
946
1022
|
return result;
|
|
947
|
-
});
|
|
1023
|
+
}).trim();
|
|
948
1024
|
}
|
|
949
1025
|
;
|
|
950
1026
|
}
|