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

Commit bacff28

Browse files
lgallgal
authored andcommitted
SORMAS-Foundation#3409 added date interval validation on prohibition to work from-until
1 parent b9d4605 commit bacff28

2 files changed

Lines changed: 37 additions & 5 deletions

File tree

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

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@
109109
import de.symeda.sormas.ui.utils.ButtonHelper;
110110
import de.symeda.sormas.ui.utils.ConfirmationComponent;
111111
import de.symeda.sormas.ui.utils.CssStyles;
112+
import de.symeda.sormas.ui.utils.DateComparisonValidator;
112113
import de.symeda.sormas.ui.utils.FieldHelper;
113114
import de.symeda.sormas.ui.utils.NullableOptionGroup;
114115
import de.symeda.sormas.ui.utils.OutbreakFieldVisibilityChecker;
@@ -529,13 +530,28 @@ protected void addFields() {
529530
addField(CaseDataDto.POINT_OF_ENTRY_DETAILS, TextField.class);
530531

531532
addField(CaseDataDto.PROHIBITION_TO_WORK, NullableOptionGroup.class).addStyleName(ValoTheme.OPTIONGROUP_HORIZONTAL);
532-
addFields(CaseDataDto.PROHIBITION_TO_WORK_FROM, CaseDataDto.PROHIBITION_TO_WORK_UNTIL);
533+
DateField prohibitionToWorkFrom = addField(CaseDataDto.PROHIBITION_TO_WORK_FROM);
534+
DateField prohibitionToWorkUntil = addField(CaseDataDto.PROHIBITION_TO_WORK_UNTIL);
533535
FieldHelper.setVisibleWhen(
534536
getFieldGroup(),
535537
Arrays.asList(CaseDataDto.PROHIBITION_TO_WORK_FROM, CaseDataDto.PROHIBITION_TO_WORK_UNTIL),
536538
CaseDataDto.PROHIBITION_TO_WORK,
537539
YesNoUnknown.YES,
538540
true);
541+
prohibitionToWorkFrom.addValidator(
542+
new DateComparisonValidator(
543+
prohibitionToWorkFrom,
544+
prohibitionToWorkUntil,
545+
true,
546+
true,
547+
I18nProperties.getValidationError(Validations.beforeDate, prohibitionToWorkFrom.getCaption(), prohibitionToWorkUntil.getCaption())));
548+
prohibitionToWorkUntil.addValidator(
549+
new DateComparisonValidator(
550+
prohibitionToWorkUntil,
551+
prohibitionToWorkFrom,
552+
false,
553+
true,
554+
I18nProperties.getValidationError(Validations.afterDate, prohibitionToWorkUntil.getCaption(), prohibitionToWorkFrom.getCaption())));
539555

540556
TextField tfReportLat = addField(CaseDataDto.REPORT_LAT, TextField.class);
541557
tfReportLat.setConverter(new StringToAngularLocationConverter());

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

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@
8282
import de.symeda.sormas.ui.utils.AbstractEditForm;
8383
import de.symeda.sormas.ui.utils.ButtonHelper;
8484
import de.symeda.sormas.ui.utils.CssStyles;
85+
import de.symeda.sormas.ui.utils.DateComparisonValidator;
8586
import de.symeda.sormas.ui.utils.FieldHelper;
8687
import de.symeda.sormas.ui.utils.NullableOptionGroup;
8788
import de.symeda.sormas.ui.utils.VaadinUiUtil;
@@ -234,14 +235,29 @@ protected void addFields() {
234235
cbDisease.setNullSelectionAllowed(false);
235236
addField(ContactDto.DISEASE_DETAILS, TextField.class);
236237

237-
addField(CaseDataDto.PROHIBITION_TO_WORK, NullableOptionGroup.class).addStyleName(ValoTheme.OPTIONGROUP_HORIZONTAL);
238-
addFields(CaseDataDto.PROHIBITION_TO_WORK_FROM, CaseDataDto.PROHIBITION_TO_WORK_UNTIL);
238+
addField(ContactDto.PROHIBITION_TO_WORK, NullableOptionGroup.class).addStyleName(ValoTheme.OPTIONGROUP_HORIZONTAL);
239+
DateField prohibitionToWorkFrom = addField(ContactDto.PROHIBITION_TO_WORK_FROM);
240+
DateField prohibitionToWorkUntil = addField(ContactDto.PROHIBITION_TO_WORK_UNTIL);
239241
FieldHelper.setVisibleWhen(
240242
getFieldGroup(),
241-
Arrays.asList(CaseDataDto.PROHIBITION_TO_WORK_FROM, CaseDataDto.PROHIBITION_TO_WORK_UNTIL),
242-
CaseDataDto.PROHIBITION_TO_WORK,
243+
Arrays.asList(ContactDto.PROHIBITION_TO_WORK_FROM, ContactDto.PROHIBITION_TO_WORK_UNTIL),
244+
ContactDto.PROHIBITION_TO_WORK,
243245
YesNoUnknown.YES,
244246
true);
247+
prohibitionToWorkFrom.addValidator(
248+
new DateComparisonValidator(
249+
prohibitionToWorkFrom,
250+
prohibitionToWorkUntil,
251+
true,
252+
true,
253+
I18nProperties.getValidationError(Validations.beforeDate, prohibitionToWorkFrom.getCaption(), prohibitionToWorkUntil.getCaption())));
254+
prohibitionToWorkUntil.addValidator(
255+
new DateComparisonValidator(
256+
prohibitionToWorkUntil,
257+
prohibitionToWorkFrom,
258+
false,
259+
true,
260+
I18nProperties.getValidationError(Validations.afterDate, prohibitionToWorkUntil.getCaption(), prohibitionToWorkFrom.getCaption())));
245261

246262
quarantine = addField(ContactDto.QUARANTINE);
247263
quarantine.addValueChangeListener(e -> onValueChange());

0 commit comments

Comments
 (0)