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

Commit 8eb7502

Browse files
Merge pull request SORMAS-Foundation#2983 from hzi-braunschweig/2933_fix-filter-dependencies
SORMAS-Foundation#2933 clear dependent fields region/district changed and update combo list instead of adding the new items
2 parents 6e0c9a5 + 2ca0876 commit 8eb7502

4 files changed

Lines changed: 20 additions & 13 deletions

File tree

sormas-ui/src/main/java/de/symeda/sormas/ui/campaign/campaigndata/CampaignFormDataFilterForm.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,7 @@ protected void applyDependenciesOnFieldChange(String propertyId, Property.ValueC
129129
clearAndDisableFields(CampaignFormDataCriteria.DISTRICT, CampaignFormDataCriteria.COMMUNITY);
130130
} else {
131131
enableFields(EventCriteria.DISTRICT);
132+
clearAndDisableFields(CampaignFormDataCriteria.COMMUNITY);
132133
applyRegionFilterDependency(region, EventCriteria.DISTRICT);
133134
}
134135

sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseFilterForm.java

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,9 @@
99

1010
import com.vaadin.server.Page;
1111
import com.vaadin.server.Sizeable;
12-
import com.vaadin.ui.Button;
1312
import com.vaadin.ui.CustomLayout;
1413
import com.vaadin.ui.HorizontalLayout;
1514
import com.vaadin.ui.Notification;
16-
import com.vaadin.ui.themes.ValoTheme;
1715
import com.vaadin.v7.data.Property;
1816
import com.vaadin.v7.data.util.converter.Converter;
1917
import com.vaadin.v7.ui.AbstractSelect;
@@ -49,7 +47,6 @@
4947
import de.symeda.sormas.api.utils.EpiWeek;
5048
import de.symeda.sormas.ui.UserProvider;
5149
import de.symeda.sormas.ui.utils.AbstractFilterForm;
52-
import de.symeda.sormas.ui.utils.ButtonHelper;
5350
import de.symeda.sormas.ui.utils.CssStyles;
5451
import de.symeda.sormas.ui.utils.EpiWeekAndDateFilterComponent;
5552
import de.symeda.sormas.ui.utils.FieldConfiguration;
@@ -289,7 +286,17 @@ protected void applyDependenciesOnFieldChange(String propertyId, Property.ValueC
289286
if (!DataHelper.equal(region, criteria.getRegion())) {
290287
if (region != null) {
291288
enableFields(CaseDataDto.DISTRICT);
292-
districtField.addItems(FacadeProvider.getDistrictFacade().getAllActiveByRegion(region.getUuid()));
289+
FieldHelper.updateItems(districtField, FacadeProvider.getDistrictFacade().getAllActiveByRegion(region.getUuid()));
290+
291+
clearAndDisableFields(
292+
CaseDataDto.COMMUNITY,
293+
CaseCriteria.FACILITY_TYPE_GROUP,
294+
CaseCriteria.FACILITY_TYPE,
295+
CaseDataDto.HEALTH_FACILITY);
296+
297+
if (pointOfEntryField != null) {
298+
pointOfEntryField.setEnabled(false);
299+
}
293300
} else {
294301
clearAndDisableFields(
295302
CaseDataDto.DISTRICT,
@@ -312,13 +319,14 @@ protected void applyDependenciesOnFieldChange(String propertyId, Property.ValueC
312319
if (!DataHelper.equal(newDistrict, criteria.getDistrict())) {
313320
if (newDistrict != null) {
314321
enableFields(CaseDataDto.COMMUNITY, CaseCriteria.FACILITY_TYPE_GROUP);
315-
communityField.addItems(FacadeProvider.getCommunityFacade().getAllActiveByDistrict(newDistrict.getUuid()));
322+
clearAndDisableFields(CaseCriteria.FACILITY_TYPE, CaseDataDto.HEALTH_FACILITY);
323+
FieldHelper.updateItems(communityField, FacadeProvider.getCommunityFacade().getAllActiveByDistrict(newDistrict.getUuid()));
324+
316325
if (pointOfEntryField != null && currentCaseOrigin == CaseOrigin.POINT_OF_ENTRY) {
317326
pointOfEntryField.setEnabled(true);
318327
FieldHelper.updateItems(
319328
pointOfEntryField,
320329
FacadeProvider.getPointOfEntryFacade().getAllActiveByDistrict(newDistrict.getUuid(), true));
321-
322330
}
323331
} else {
324332
clearAndDisableFields(

sormas-ui/src/main/java/de/symeda/sormas/ui/contact/ContactsFilterForm.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,10 @@
99
import com.vaadin.icons.VaadinIcons;
1010
import com.vaadin.server.Page;
1111
import com.vaadin.shared.ui.ContentMode;
12-
import com.vaadin.ui.Button;
1312
import com.vaadin.ui.CustomLayout;
1413
import com.vaadin.ui.HorizontalLayout;
1514
import com.vaadin.ui.Label;
1615
import com.vaadin.ui.Notification;
17-
import com.vaadin.ui.themes.ValoTheme;
1816
import com.vaadin.v7.data.Property;
1917
import com.vaadin.v7.ui.AbstractSelect;
2018
import com.vaadin.v7.ui.CheckBox;
@@ -43,7 +41,6 @@
4341
import de.symeda.sormas.api.utils.EpiWeek;
4442
import de.symeda.sormas.ui.UserProvider;
4543
import de.symeda.sormas.ui.utils.AbstractFilterForm;
46-
import de.symeda.sormas.ui.utils.ButtonHelper;
4744
import de.symeda.sormas.ui.utils.CssStyles;
4845
import de.symeda.sormas.ui.utils.EpiWeekAndDateFilterComponent;
4946
import de.symeda.sormas.ui.utils.FieldConfiguration;
@@ -275,6 +272,7 @@ protected void applyDependenciesOnFieldChange(String propertyId, Property.ValueC
275272
clearAndDisableFields(ContactCriteria.DISTRICT, ContactCriteria.COMMUNITY);
276273
} else {
277274
applyRegionFilterDependency(region, ContactCriteria.DISTRICT);
275+
clearAndDisableFields(ContactCriteria.COMMUNITY);
278276
}
279277
break;
280278
}

sormas-ui/src/main/java/de/symeda/sormas/ui/utils/AbstractFilterForm.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -201,11 +201,11 @@ protected void applyRegionFilterDependency(RegionReferenceDto region, String dis
201201
UserDto user = UserProvider.getCurrent().getUser();
202202
ComboBox districtField = getField(districtFieldId);
203203
if (user.getRegion() != null && user.getDistrict() == null) {
204-
districtField.addItems(FacadeProvider.getDistrictFacade().getAllActiveByRegion(user.getRegion().getUuid()));
204+
FieldHelper.updateItems(districtField, FacadeProvider.getDistrictFacade().getAllActiveByRegion(user.getRegion().getUuid()));
205205
districtField.setEnabled(true);
206206
} else {
207207
if (region != null) {
208-
districtField.addItems(FacadeProvider.getDistrictFacade().getAllActiveByRegion(region.getUuid()));
208+
FieldHelper.updateItems(districtField, FacadeProvider.getDistrictFacade().getAllActiveByRegion(region.getUuid()));
209209
districtField.setEnabled(true);
210210
} else {
211211
districtField.setEnabled(false);
@@ -226,11 +226,11 @@ protected void applyDistrictDependency(DistrictReferenceDto district, String com
226226
UserDto user = UserProvider.getCurrent().getUser();
227227
ComboBox communityField = getField(communityFieldId);
228228
if (user.getDistrict() != null && user.getCommunity() == null) {
229-
communityField.addItems(FacadeProvider.getCommunityFacade().getAllActiveByDistrict(user.getDistrict().getUuid()));
229+
FieldHelper.updateItems(communityField, FacadeProvider.getCommunityFacade().getAllActiveByDistrict(user.getDistrict().getUuid()));
230230
communityField.setEnabled(true);
231231
} else {
232232
if (district != null) {
233-
communityField.addItems(FacadeProvider.getCommunityFacade().getAllActiveByDistrict(district.getUuid()));
233+
FieldHelper.updateItems(communityField, FacadeProvider.getCommunityFacade().getAllActiveByDistrict(district.getUuid()));
234234
communityField.setEnabled(true);
235235
} else {
236236
communityField.setEnabled(false);

0 commit comments

Comments
 (0)