Skip to content
This repository was archived by the owner on May 5, 2021. It is now read-only.

Commit c08bc52

Browse files
SORMAS-Foundation#3110 - Incorrect behavior on Person forms related to Facility fields
1 parent ef09d3c commit c08bc52

2 files changed

Lines changed: 6 additions & 23 deletions

File tree

sormas-backend/src/main/java/de/symeda/sormas/backend/location/LocationFacadeEjb.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,9 +88,7 @@ public Location fromDto(LocationDto source) {
8888
target.setAddressTypeDetails(source.getAddressTypeDetails());
8989
target.setFacility(facilityService.getByReferenceDto(source.getFacility()));
9090
target.setFacilityDetails(source.getFacilityDetails());
91-
if (source.getFacility() != null) {
92-
target.setFacilityType(source.getFacilityType());
93-
}
91+
target.setFacilityType(source.getFacilityType());
9492

9593
return target;
9694
}

sormas-ui/src/main/java/de/symeda/sormas/ui/location/LocationEditForm.java

Lines changed: 5 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ public void setFieldsRequirement(boolean required, String... fieldIds) {
114114
setRequired(required, fieldIds);
115115
}
116116

117+
@SuppressWarnings("deprecation")
117118
@Override
118119
protected void addFields() {
119120

@@ -141,7 +142,6 @@ protected void addFields() {
141142
facilityTypeGroup.addItems(FacilityTypeGroup.values());
142143
getContent().addComponent(facilityTypeGroup, FACILITY_TYPE_GROUP_LOC);
143144
ComboBox facilityType = addField(LocationDto.FACILITY_TYPE);
144-
FieldHelper.removeItems(facilityType);
145145
ComboBox facility = addInfrastructureField(LocationDto.FACILITY);
146146
facility.setImmediate(true);
147147
TextField facilityDetails = addField(LocationDto.FACILITY_DETAILS, TextField.class);
@@ -180,7 +180,6 @@ protected void addFields() {
180180
.updateItems(district, regionDto != null ? FacadeProvider.getDistrictFacade().getAllActiveByRegion(regionDto.getUuid()) : null);
181181
});
182182
district.addValueChangeListener(e -> {
183-
FieldHelper.removeItems(community);
184183
DistrictReferenceDto districtDto = (DistrictReferenceDto) e.getProperty().getValue();
185184
FieldHelper.updateItems(
186185
community,
@@ -218,6 +217,10 @@ protected void addFields() {
218217
});
219218
facilityType.addValueChangeListener(e -> {
220219
FieldHelper.removeItems(facility);
220+
if (facilityType.getValue() != null && facilityTypeGroup.getValue() == null) {
221+
FacilityType temp = (FacilityType) facilityType.getValue();
222+
facilityTypeGroup.setValue(temp.getFacilityTypeGroup());
223+
}
221224
if (facilityType.getValue() != null && district.getValue() != null) {
222225
if (community.getValue() != null) {
223226
FieldHelper.updateItems(
@@ -255,30 +258,12 @@ protected void addFields() {
255258
facilityDetails.setRequired(false);
256259
facilityDetails.clear();
257260
}
258-
this.getValue().setFacilityType((FacilityType) facilityType.getValue());
259261
});
260262
region.addItems(FacadeProvider.getRegionFacade().getAllActiveAsReference());
261263

262264
Stream.of(LocationDto.LATITUDE, LocationDto.LONGITUDE)
263265
.<Field<?>> map(this::getField)
264266
.forEach(f -> f.addValueChangeListener(e -> this.updateLeafletMapContent()));
265-
266-
addValueChangeListener(e -> {
267-
if (getValue().getFacility() != null) {
268-
boolean facilityTypeGroupReadOnly = facilityTypeGroup.isReadOnly();
269-
facilityTypeGroup.setReadOnly(false);
270-
271-
FacilityType caseFacilityType = getValue().getFacilityType();
272-
facilityTypeGroup.setValue(caseFacilityType.getFacilityTypeGroup());
273-
if (!facilityType.isReadOnly()) {
274-
facilityType.setValue(caseFacilityType);
275-
}
276-
277-
facilityTypeGroup.setReadOnly(facilityTypeGroupReadOnly);
278-
facility.setValue(getValue().getFacility());
279-
facilityDetails.setValue(getValue().getFacilityDetails());
280-
}
281-
});
282267
}
283268

284269
private HorizontalLayout createGeoButton() {

0 commit comments

Comments
 (0)