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

Commit 7ce3eff

Browse files
author
Martin Wahnschaffe
authored
Merge pull request SORMAS-Foundation#3620 from hzi-braunschweig/3520-campaign-refinements
SORMAS-Foundation#3520 campaign refinements
2 parents 3d71de3 + f439ce6 commit 7ce3eff

20 files changed

Lines changed: 134 additions & 33 deletions

File tree

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package de.symeda.sormas.api.campaign;
2+
3+
import de.symeda.sormas.api.IntegerRange;
4+
import de.symeda.sormas.api.i18n.I18nProperties;
5+
6+
/**
7+
* Not used yet
8+
*/
9+
public enum CampaignPhase {
10+
11+
PRE,
12+
INTRA,
13+
POST;
14+
15+
public String toString() {
16+
return I18nProperties.getEnumCaption(this);
17+
}
18+
}

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,8 +163,10 @@ public interface Captions {
163163
String CampaignFormData_area = "CampaignFormData.area";
164164
String CampaignFormData_campaign = "CampaignFormData.campaign";
165165
String CampaignFormData_campaignFormMeta = "CampaignFormData.campaignFormMeta";
166+
String CampaignFormData_edit = "CampaignFormData.edit";
166167
String CampaignFormData_formDate = "CampaignFormData.formDate";
167168
String campaignNewCampaign = "campaignNewCampaign";
169+
String campaignSearch = "campaignSearch";
168170
String campaignValidateForms = "campaignValidateForms";
169171
String caseActiveCases = "caseActiveCases";
170172
String caseAllCases = "caseAllCases";

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,7 @@ campaignDashboardSubTabName=Sub-tab name
209209
campaignDashboardChartWidth=Width in %
210210
campaignDashboardChartHeight=Height in %
211211
campaignDashboardOrder=Order
212+
campaignSearch=Search Campaign
212213

213214
Campaign=Campaign
214215
Campaign.name=Name
@@ -226,6 +227,7 @@ CampaignFormData.campaign = Campaign
226227
CampaignFormData.campaignFormMeta = Form
227228
CampaignFormData.formDate = Form date
228229
CampaignFormData.area = Area
230+
CampaignFormData.edit=Edit
229231

230232
# CaseData
231233
caseCasesList=Cases list

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@
1818

1919
# Descriptions used to detail captions
2020

21+
# Campaign
22+
Campaign.campaignPhase = This is a preview for a feature that will be implemented later
23+
2124
# CaseData
2225
CaseData.caseClassification = Select the case status for the person
2326
CaseData.clinicianDetails = Please specify the name, phone number and email address of the clinician responsible for this case

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,11 @@ ArrivalOrDeparture.UNKNOWN = Unknown
101101
BurialConductor.FAMILY_COMMUNITY = Family/Community
102102
BurialConductor.OUTBREAK_TEAM = Outbreak burial team
103103

104+
# CampaignPhase
105+
CampaignPhase.PRE = Pre-Campaign
106+
CampaignPhase.INTRA = Intra-Campaign
107+
CampaignPhase.POST = Post-Campaign
108+
104109
# CaseClassification
105110
CaseClassification.CONFIRMED = Confirmed case
106111
CaseClassification.CONFIRMED_NO_SYMPTOMS = Confirmed case with no symptoms

sormas-ui/src/main/java/de/symeda/sormas/ui/campaign/AbstractCampaignView.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,15 +51,13 @@ public void refreshMenu(SubMenu menu, Label infoLabel, Label infoLabelSub, Strin
5151
CampaignsView.VIEW_NAME,
5252
I18nProperties.getPrefixCaption("View", CampaignsView.VIEW_NAME.replaceAll("/", ".") + ".short", ""),
5353
params);
54-
5554
}
5655

5756
public static void registerViews(Navigator navigator) {
5857
navigator.addView(CampaignDataView.VIEW_NAME, CampaignDataView.class);
5958
navigator.addView(CampaignFormDataView.VIEW_NAME, CampaignFormDataView.class);
6059
navigator.addView(CampaignsView.VIEW_NAME, CampaignsView.class);
6160
navigator.addView(CampaignView.VIEW_NAME, CampaignView.class);
62-
6361
}
6462

6563
@Override

sormas-ui/src/main/java/de/symeda/sormas/ui/campaign/CampaignController.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828

2929
import de.symeda.sormas.api.FacadeProvider;
3030
import de.symeda.sormas.api.campaign.CampaignDto;
31+
import de.symeda.sormas.api.campaign.CampaignReferenceDto;
3132
import de.symeda.sormas.api.campaign.data.CampaignFormDataDto;
3233
import de.symeda.sormas.api.campaign.form.CampaignFormMetaReferenceDto;
3334
import de.symeda.sormas.api.i18n.Captions;
@@ -91,10 +92,10 @@ public void createOrEditCampaign(String uuid) {
9192
VaadinUiUtil.showModalPopupWindow(campaignComponent, heading);
9293
}
9394

94-
public void createCampaignDataForm(CampaignFormMetaReferenceDto campaignForm) {
95+
public void createCampaignDataForm(CampaignReferenceDto campaign, CampaignFormMetaReferenceDto campaignForm) {
9596
Window window = VaadinUiUtil.createPopupWindow();
9697

97-
CommitDiscardWrapperComponent<CampaignFormDataEditForm> component = getCampaignFormDataComponent(null, campaignForm, false, false, () -> {
98+
CommitDiscardWrapperComponent<CampaignFormDataEditForm> component = getCampaignFormDataComponent(null, campaign, campaignForm, false, false, () -> {
9899
window.close();
99100
SormasUI.refreshView();
100101
Notification
@@ -201,6 +202,7 @@ public void discard() {
201202

202203
public CommitDiscardWrapperComponent<CampaignFormDataEditForm> getCampaignFormDataComponent(
203204
CampaignFormDataDto campaignFormData,
205+
CampaignReferenceDto campaign,
204206
CampaignFormMetaReferenceDto campaignForm,
205207
boolean revertFormOnDiscard,
206208
boolean showDeleteButton,
@@ -212,7 +214,7 @@ public CommitDiscardWrapperComponent<CampaignFormDataEditForm> getCampaignFormDa
212214

213215
final UserDto currentUser = UserProvider.getCurrent().getUser();
214216
campaignFormData =
215-
CampaignFormDataDto.build(null, campaignForm, currentUser.getRegion(), currentUser.getDistrict(), currentUser.getCommunity());
217+
CampaignFormDataDto.build(campaign, campaignForm, currentUser.getRegion(), currentUser.getDistrict(), currentUser.getCommunity());
216218
campaignFormData.setCreatingUser(UserProvider.getCurrent().getUserReference());
217219
}
218220
form.setValue(campaignFormData);

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import de.symeda.sormas.api.utils.DateHelper;
3131
import de.symeda.sormas.api.utils.SortProperty;
3232
import de.symeda.sormas.ui.ControllerProvider;
33+
import de.symeda.sormas.ui.utils.CssStyles;
3334
import de.symeda.sormas.ui.utils.FilteredGrid;
3435

3536
public class CampaignDataGrid extends FilteredGrid<CampaignFormDataIndexDto, CampaignFormDataCriteria> {
@@ -59,6 +60,7 @@ protected void addDefaultColumns() {
5960
CampaignFormDataIndexDto.DISTRICT,
6061
CampaignFormDataIndexDto.COMMUNITY,
6162
CampaignFormDataIndexDto.FORM_DATE);
63+
getColumn(EDIT_BTN_ID).setWidth(40).setStyleGenerator(item -> CssStyles.GRID_CELL_LINK);
6264

6365
((Column<CampaignFormDataIndexDto, Date>) getColumn(CampaignFormDataIndexDto.FORM_DATE))
6466
.setRenderer(new DateRenderer(DateHelper.getLocalDateFormat(I18nProperties.getUserLanguage())));

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

Lines changed: 32 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
import java.util.Objects;
2323
import java.util.function.Consumer;
2424

25+
import javax.naming.NamingException;
26+
2527
import org.vaadin.hene.popupbutton.PopupButton;
2628

2729
import com.vaadin.icons.VaadinIcons;
@@ -31,8 +33,14 @@
3133
import com.vaadin.ui.Button;
3234
import com.vaadin.ui.ComboBox;
3335
import com.vaadin.ui.HorizontalLayout;
36+
import com.vaadin.ui.Label;
3437
import com.vaadin.ui.VerticalLayout;
3538
import com.vaadin.ui.Window;
39+
import org.vaadin.hene.popupbutton.PopupButton;
40+
41+
import com.vaadin.icons.VaadinIcons;
42+
import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent;
43+
import com.vaadin.server.StreamResource;
3644
import com.vaadin.ui.themes.ValoTheme;
3745
import com.vaadin.v7.ui.OptionGroup;
3846

@@ -79,16 +87,30 @@ public CampaignDataView() {
7987

8088
criteria = ViewModelProviders.of(getClass()).get(CampaignFormDataCriteria.class);
8189

82-
campaignCombo = new ComboBox<>(" ");
83-
List<CampaignReferenceDto> campaigns = FacadeProvider.getCampaignFacade().getAllActiveCampaignsAsReference();
84-
campaignCombo.setItems(campaigns);
85-
final CampaignReferenceDto lastStartedCampaign = FacadeProvider.getCampaignFacade().getLastStartedCampaign();
86-
if (lastStartedCampaign != null) {
87-
campaignCombo.setValue(lastStartedCampaign);
90+
HorizontalLayout campaignLayout = new HorizontalLayout();
91+
{
92+
campaignLayout.setMargin(false);
93+
campaignLayout.setSpacing(false);
94+
95+
Label campaignLabel = new Label(I18nProperties.getCaption(Captions.Campaign));
96+
campaignLabel.addStyleName("v-caption");
97+
campaignLabel.addStyleName(CssStyles.HSPACE_RIGHT_4);
98+
campaignLayout.addComponent(campaignLabel);
99+
campaignLayout.setComponentAlignment(campaignLabel, Alignment.MIDDLE_CENTER);
100+
101+
campaignCombo = new ComboBox<>(" ");
102+
List<CampaignReferenceDto> campaigns = FacadeProvider.getCampaignFacade().getAllActiveCampaignsAsReference();
103+
campaignCombo.setItems(campaigns);
104+
campaignCombo.setEmptySelectionCaption(I18nProperties.getCaption(Captions.campaignAllCampaigns));
105+
final CampaignReferenceDto lastStartedCampaign = FacadeProvider.getCampaignFacade().getLastStartedCampaign();
106+
if (lastStartedCampaign != null) {
107+
campaignCombo.setValue(lastStartedCampaign);
108+
}
109+
criteria.setCampaign(campaignCombo.getValue());
110+
CssStyles.style(campaignCombo, CssStyles.SOFT_REQUIRED);
111+
campaignLayout.addComponent(campaignCombo);
88112
}
89-
criteria.setCampaign(campaignCombo.getValue());
90-
CssStyles.style(campaignCombo, CssStyles.SOFT_REQUIRED);
91-
addHeaderComponent(campaignCombo);
113+
addHeaderComponent(campaignLayout);
92114
grid = new CampaignDataGrid(criteria);
93115

94116
VerticalLayout mainLayout = new VerticalLayout();
@@ -214,7 +236,7 @@ private void createNewFormLayout(VerticalLayout newFormLayout) {
214236
for (CampaignFormMetaReferenceDto campaignForm : FacadeProvider.getCampaignFormMetaFacade()
215237
.getCampaignFormMetasAsReferencesByCampaign(campaignCombo.getValue().getUuid())) {
216238
Button campaignFormButton = ButtonHelper
217-
.createButton(campaignForm.toString(), e -> ControllerProvider.getCampaignController().createCampaignDataForm(campaignForm));
239+
.createButton(campaignForm.toString(), e -> ControllerProvider.getCampaignController().createCampaignDataForm(criteria.getCampaign(), campaignForm));
218240
campaignFormButton.setWidth(100, Unit.PERCENTAGE);
219241
newFormLayout.addComponent(campaignFormButton);
220242
}

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

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import com.vaadin.v7.data.Property;
2121
import com.vaadin.v7.ui.ComboBox;
2222

23+
import com.vaadin.v7.ui.Field;
2324
import de.symeda.sormas.api.FacadeProvider;
2425
import de.symeda.sormas.api.campaign.data.CampaignFormDataCriteria;
2526
import de.symeda.sormas.api.campaign.data.CampaignFormDataDto;
@@ -32,6 +33,7 @@
3233
import de.symeda.sormas.api.utils.DataHelper;
3334
import de.symeda.sormas.ui.UserProvider;
3435
import de.symeda.sormas.ui.utils.AbstractFilterForm;
36+
import de.symeda.sormas.ui.utils.CssStyles;
3537
import de.symeda.sormas.ui.utils.FieldConfiguration;
3638
import de.symeda.sormas.ui.utils.FieldHelper;
3739

@@ -49,7 +51,6 @@ protected CampaignFormDataFilterForm() {
4951
@Override
5052
protected String[] getMainFilterLocators() {
5153
return new String[] {
52-
CampaignFormDataCriteria.CAMPAIGN,
5354
CampaignFormDataCriteria.CAMPAIGN_FORM_META,
5455
CampaignFormDataCriteria.REGION,
5556
CampaignFormDataCriteria.DISTRICT,
@@ -109,6 +110,20 @@ protected void addFields() {
109110
}
110111
}
111112

113+
@Override
114+
protected void applyFieldConfiguration(FieldConfiguration configuration, Field field) {
115+
super.applyFieldConfiguration(configuration, field);
116+
if (configuration.getCaption() != null) {
117+
field.setCaption(configuration.getCaption());
118+
}
119+
}
120+
121+
@Override
122+
protected <T1 extends Field> void formatField(T1 field, String propertyId) {
123+
super.formatField(field, propertyId);
124+
field.addStyleName(CssStyles.CAPTION_ON_TOP);
125+
}
126+
112127
@Override
113128
protected void applyDependenciesOnFieldChange(String propertyId, Property.ValueChangeEvent event) {
114129
super.applyDependenciesOnFieldChange(propertyId, event);

0 commit comments

Comments
 (0)