Skip to content

Commit fe9983d

Browse files
Fix regression caused casefield not being transformed in address field, ensuring that this works for all writeable fields
Upgrade to new release of class-transformer which has a performance fix
1 parent 4a551b4 commit fe9983d

File tree

6 files changed

+42
-15
lines changed

6 files changed

+42
-15
lines changed

RELEASE-NOTES.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
## RELEASE NOTES
2+
### Version 2.68.0-prerelease-conditional-show-perf"
3+
**EUI-3055** Fix regression in address field
4+
25
### Version 2.68.0-prerelease-conditional-show-perf"
36
**EUI-3055** Better performance in edit forms through new show hide implementation
47

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@hmcts/ccd-case-ui-toolkit",
3-
"version": "2.68.0-prerelease-conditional-show-perf",
3+
"version": "2.68.1-prerelease-conditional-show-perf",
44
"engines": {
55
"yarn": "^1.12.3",
66
"npm": "^5.6.0"
@@ -96,7 +96,7 @@
9696
"@types/webpack-env": "^1.16.0",
9797
"angular2-template-loader": "^0.6.2",
9898
"awesome-typescript-loader": "^5.2.1",
99-
"class-transformer": "0.1.10",
99+
"class-transformer": "^0.3.2",
100100
"codacy-coverage": "^2.1.1",
101101
"codecov": "^3.0.0",
102102
"codelyzer": "^4.1.0",

src/shared/components/palette/address/write-address-field.component.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import { AddressesService } from '../../../services/addresses/addresses.service'
77
import { FormControl, FormGroup } from '@angular/forms';
88
import { IsCompoundPipe } from '../utils/is-compound.pipe';
99
import { FocusElementDirective } from '../../../directives/focus-element';
10+
import { CaseField } from '../../../domain';
11+
import { plainToClassFromExist } from 'class-transformer';
1012

1113
@Component({
1214
selector: 'ccd-write-address-field',
@@ -34,7 +36,7 @@ export class WriteAddressFieldComponent extends AbstractFieldWriteComponent impl
3436

3537
missingPostcode = false;
3638

37-
constructor (addressesService: AddressesService, private isCompoundPipe: IsCompoundPipe) {
39+
constructor(addressesService: AddressesService, private isCompoundPipe: IsCompoundPipe) {
3840
super();
3941
this.addressesService = addressesService;
4042
}
@@ -49,7 +51,6 @@ export class WriteAddressFieldComponent extends AbstractFieldWriteComponent impl
4951
}
5052

5153
findAddress() {
52-
5354
if (!this.postcode.value) {
5455
this.missingPostcode = true;
5556
} else {
@@ -91,7 +92,7 @@ export class WriteAddressFieldComponent extends AbstractFieldWriteComponent impl
9192

9293
isComplexWithHiddenFields() {
9394
if (this.caseField.isComplex() && this.caseField.field_type.complex_fields
94-
&& this.caseField.field_type.complex_fields.some(cf => cf.hidden === true )) {
95+
&& this.caseField.field_type.complex_fields.some(cf => cf.hidden === true)) {
9596
return true;
9697
}
9798
}
@@ -124,13 +125,15 @@ export class WriteAddressFieldComponent extends AbstractFieldWriteComponent impl
124125
}
125126

126127
ngOnChanges(changes: SimpleChanges) {
127-
if (changes['caseField']) {
128+
super.ngOnChanges(changes);
129+
let change = changes['caseField'];
130+
if (change) {
128131
this.setFormValue();
129132
}
130133
}
131134

132135
createId(elementId: string): string {
133-
return this.id() + '_' + elementId ;
136+
return this.id() + '_' + elementId;
134137
}
135138

136139
private defaultLabel(numberOfAddresses) {

src/shared/components/palette/base-field/abstract-field-write.component.ts

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1-
import { Input } from '@angular/core';
1+
import { Input, OnChanges, SimpleChanges } from '@angular/core';
22
import { AbstractFormFieldComponent } from './abstract-form-field.component';
3+
import { CaseField } from '../../../domain';
4+
import { plainToClassFromExist } from 'class-transformer';
35

4-
export abstract class AbstractFieldWriteComponent extends AbstractFormFieldComponent {
6+
export abstract class AbstractFieldWriteComponent extends AbstractFormFieldComponent implements OnChanges {
57

68
@Input()
79
isExpanded = false;
@@ -12,4 +14,25 @@ export abstract class AbstractFieldWriteComponent extends AbstractFormFieldCompo
1214
public id() {
1315
return this.idPrefix + this.caseField.id;
1416
}
17+
18+
public constructor() {
19+
super();
20+
this.fixCaseField();
21+
}
22+
23+
ngOnChanges(changes: SimpleChanges): void {
24+
let change = changes['caseField'];
25+
if (change) {
26+
let cfNew = change.currentValue;
27+
if (!(cfNew instanceof CaseField)) {
28+
this.fixCaseField();
29+
}
30+
}
31+
}
32+
33+
private fixCaseField() {
34+
if (this.caseField && !(this.caseField instanceof CaseField)) {
35+
this.caseField = plainToClassFromExist(new CaseField(), this.caseField);
36+
}
37+
}
1538
}

src/shared/directives/conditional-show/conditional-show-form.directive.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,6 @@ export class ConditionalShowFormDirective implements OnInit, OnDestroy {
6666
cf.hidden = !condResult;
6767
}
6868
}
69-
} else {
70-
console.log('No casefield bound to control ' + JSON.stringify(c.value));
7169
}
7270
}
7371

yarn.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2307,10 +2307,10 @@ circular-json@^0.5.5:
23072307
resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.5.9.tgz#932763ae88f4f7dead7a0d09c8a51a4743a53b1d"
23082308
integrity sha512-4ivwqHpIFJZBuhN3g/pEcdbnGUywkBblloGbkglyloVjjR3uT6tieI89MVOfbP2tHX5sgb01FuLgAOzebNlJNQ==
23092309

2310-
class-transformer@0.1.10:
2311-
version "0.1.10"
2312-
resolved "https://registry.yarnpkg.com/class-transformer/-/class-transformer-0.1.10.tgz#350f168ebb4c1f87edb18b98dd973681fc20fff7"
2313-
integrity sha512-QiNdUxEvTBiUtc0KiapGVHhgaqGQVEhOfL9UEBnb9xRfcwmDJT5ijIDwcwJUTwXaT/kGvZZB4JCGsiuR5adX6g==
2310+
class-transformer@^0.3.2:
2311+
version "0.3.2"
2312+
resolved "https://registry.yarnpkg.com/class-transformer/-/class-transformer-0.3.2.tgz#779ef5f124784324b40f8e927c774bd96cdecd4b"
2313+
integrity sha512-9QY6QXBH/+Gt1C3HBmJCrgY6+EFpIa6aLjfDnlXFx0zQl/HjrCE7qoaI0srNrxpMIfsobCpgUdDG5JYtJOpVsw==
23142314

23152315
class-utils@^0.3.5:
23162316
version "0.3.6"

0 commit comments

Comments
 (0)