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

Commit 7f8691f

Browse files
Merge branch 'development' of https://github.com/hzi-braunschweig/SORMAS-Project into development
2 parents 0be4d09 + d071339 commit 7f8691f

7 files changed

Lines changed: 48 additions & 5 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
You can give SORMAS a try on our play server at https://sormas.helmholtz-hzi.de!
1818

1919
#### How Can I Get Involved?
20-
Have a look at our [*Contributing Readme*](CONTRIBUTING.md) and contact us at [email protected] or join our [developer chat on Gitter](https://gitter.im/SORMAS-Project) to learn how you can help to drive the development of SORMAS forward and to get development support from our core developers. SORMAS is a community-driven project, and we'd love to have you on board!
20+
Read through our [*Contributing Readme*](CONTRIBUTING.md) and contact us at [email protected] or join our [developer chat on Gitter](https://gitter.im/SORMAS-Project) to learn how you can help to drive the development of SORMAS forward and to get development support from our core developers. SORMAS is a community-driven project, and we'd love to have you on board! If you want to contribute to the code, please strictly adhere to the [*Development Environment*](DEVELOPMENT_ENVIRONMENT.md) guide to ensure that everything is set up correctly. Please also make sure that you've read the [*Development Contributing Guidelines*](CONTRIBUTING.md#development-contributing-guidelines) before you start to develop.
2121

2222
#### How Can I Report a Bug or Request a Feature?
2323
Please [create a new issue](https://github.com/hzi-braunschweig/SORMAS-Project/issues/new/choose) and read the [*Submitting an Issue*](CONTRIBUTING.md#submitting-an-issue) guide for more detailed instructions. We appreciate your help!

sormas-api/src/main/java/de/symeda/sormas/api/campaign/data/CampaignFormDataDto.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,4 +143,6 @@ public UserReferenceDto getCreatingUser() {
143143
public void setCreatingUser(UserReferenceDto creatingUser) {
144144
this.creatingUser = creatingUser;
145145
}
146+
147+
146148
}

sormas-api/src/main/java/de/symeda/sormas/api/i18n/Captions.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@ public interface Captions {
151151
String campaignDashboardChartWidth = "campaignDashboardChartWidth";
152152
String campaignDashboardOrder = "campaignDashboardOrder";
153153
String campaignDashboardTabName = "campaignDashboardTabName";
154+
String CampaignFormData_area = "CampaignFormData.area";
154155
String CampaignFormData_campaign = "CampaignFormData.campaign";
155156
String CampaignFormData_campaignFormMeta = "CampaignFormData.campaignFormMeta";
156157
String CampaignFormData_formDate = "CampaignFormData.formDate";

sormas-api/src/main/java/de/symeda/sormas/api/region/AreaFacade.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,4 @@ public interface AreaFacade {
2727
void deArchive(String areaUuid);
2828

2929
List<AreaReferenceDto> getByName(String name, boolean includeArchivedAreas);
30-
3130
}

sormas-api/src/main/resources/captions.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,7 @@ Campaign.creatingUser=Creating user
214214
CampaignFormData.campaign = Campaign
215215
CampaignFormData.campaignFormMeta = Form
216216
CampaignFormData.formDate = Form date
217+
CampaignFormData.area = Area
217218

218219
# CaseData
219220
caseCasesList=Cases list

sormas-backend/src/main/java/de/symeda/sormas/backend/region/AreaService.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
import javax.persistence.criteria.CriteriaBuilder;
88
import javax.persistence.criteria.CriteriaQuery;
99
import javax.persistence.criteria.From;
10+
import javax.persistence.criteria.Join;
11+
import javax.persistence.criteria.JoinType;
1012
import javax.persistence.criteria.Predicate;
1113
import javax.persistence.criteria.Root;
1214

@@ -33,7 +35,6 @@ public List<Area> getByName(String name, boolean includeArchivedEntities) {
3335
CriteriaBuilder cb = em.getCriteriaBuilder();
3436
CriteriaQuery<Area> cq = cb.createQuery(getElementClass());
3537
Root<Area> from = cq.from(getElementClass());
36-
3738
Predicate filter =
3839
cb.or(cb.equal(cb.trim(from.get(Area.NAME)), name.trim()), cb.equal(cb.lower(cb.trim(from.get(Area.NAME))), name.trim().toLowerCase()));
3940
if (!includeArchivedEntities) {

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

Lines changed: 41 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@
2323
import de.symeda.sormas.api.FacadeProvider;
2424
import de.symeda.sormas.api.campaign.data.CampaignFormDataDto;
2525
import de.symeda.sormas.api.campaign.form.CampaignFormMetaDto;
26+
import de.symeda.sormas.api.feature.FeatureType;
27+
import de.symeda.sormas.api.i18n.Captions;
28+
import de.symeda.sormas.api.i18n.I18nProperties;
29+
import de.symeda.sormas.api.region.AreaReferenceDto;
2630
import de.symeda.sormas.api.region.DistrictReferenceDto;
2731
import de.symeda.sormas.api.region.RegionReferenceDto;
2832
import de.symeda.sormas.ui.utils.AbstractEditForm;
@@ -31,12 +35,24 @@
3135

3236
import static de.symeda.sormas.ui.utils.LayoutUtil.fluidRowLocs;
3337
import static de.symeda.sormas.ui.utils.LayoutUtil.loc;
38+
import java.util.Objects;
3439

3540
public class CampaignFormDataEditForm extends AbstractEditForm<CampaignFormDataDto> {
3641

3742
public static final String CAMPAIGN_FORM_LOC = "campaignFormLoc";
43+
private AreaReferenceDto area;
44+
public static final String AREA = "area";
3845

39-
private static final String HTML_LAYOUT = fluidRowLocs(CampaignFormDataDto.CAMPAIGN, CampaignFormDataDto.FORM_DATE, "")
46+
47+
public AreaReferenceDto getArea() {
48+
return area;
49+
}
50+
51+
public void setArea(AreaReferenceDto area) {
52+
this.area = area;
53+
}
54+
55+
private static final String HTML_LAYOUT = fluidRowLocs(CampaignFormDataDto.CAMPAIGN, CampaignFormDataDto.FORM_DATE, CampaignFormDataEditForm.AREA)
4056
+ fluidRowLocs(CampaignFormDataDto.REGION, CampaignFormDataDto.DISTRICT, CampaignFormDataDto.COMMUNITY)
4157
+ loc(CAMPAIGN_FORM_LOC);
4258

@@ -52,6 +68,7 @@ public CampaignFormDataEditForm(boolean create) {
5268
}
5369
}
5470

71+
@SuppressWarnings("deprecation")
5572
@Override
5673
protected void addFields() {
5774
ComboBox cbCampaign = addField(CampaignFormDataDto.CAMPAIGN, ComboBox.class);
@@ -73,8 +90,30 @@ protected void addFields() {
7390

7491
addInfrastructureListeners(cbRegion, cbDistrict, cbCommunity);
7592
cbRegion.addItems(FacadeProvider.getRegionFacade().getAllActiveAsReference());
76-
}
7793

94+
if (FacadeProvider.getFeatureConfigurationFacade().isFeatureEnabled(FeatureType.INFRASTRUCTURE_TYPE_AREA)){
95+
ComboBox cbArea = addCustomField(CampaignFormDataEditForm.AREA,AreaReferenceDto.class,ComboBox.class);
96+
cbArea.setCaption(I18nProperties.getCaption(Captions.CampaignFormData_area));
97+
setRequired(true,CampaignFormDataEditForm.AREA);
98+
cbArea.addItems(FacadeProvider.getAreaFacade().getAllActiveAsReference());
99+
cbArea.addValueChangeListener(e -> {
100+
AreaReferenceDto area =(AreaReferenceDto) e.getProperty().getValue();
101+
102+
if(Objects.nonNull(area) && cbRegion.isEmpty()) {
103+
cbRegion.removeAllItems();
104+
cbRegion.addItems(FacadeProvider.getRegionFacade().getAllActiveByArea((area.getUuid())));
105+
} else if(Objects.isNull(area)){
106+
cbRegion.addItems(FacadeProvider.getRegionFacade().getAllActiveAsReference());
107+
}
108+
});
109+
cbRegion.addValueChangeListener(e -> {
110+
RegionReferenceDto region = (RegionReferenceDto) e.getProperty().getValue();
111+
if(Objects.nonNull(region)){
112+
cbArea.setValue(FacadeProvider.getRegionFacade().getRegionByUuid(region.getUuid()).getArea());
113+
}
114+
});
115+
}
116+
}
78117
private void addInfrastructureListeners(ComboBox cbRegion, ComboBox cbDistrict, ComboBox cbCommunity) {
79118
cbRegion.addValueChangeListener(e -> {
80119
RegionReferenceDto region = (RegionReferenceDto) e.getProperty().getValue();

0 commit comments

Comments
 (0)