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

Commit faac35c

Browse files
Merge branch 'development' of https://github.com/hzi-braunschweig/SORMAS-Project into development
2 parents ffbef3f + 8403094 commit faac35c

6 files changed

Lines changed: 50 additions & 18 deletions

File tree

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -461,6 +461,7 @@ public interface Strings {
461461
String infoSampleAdditionalTesting = "infoSampleAdditionalTesting";
462462
String infoSampleExport = "infoSampleExport";
463463
String infoSamplePathogenTesting = "infoSamplePathogenTesting";
464+
String infoSaveOfTask = "infoSaveOfTask";
464465
String infoSearchCaseForContact = "infoSearchCaseForContact";
465466
String infoSelectOrCreateContact = "infoSelectOrCreateContact";
466467
String infoSelectOrCreateContactImport = "infoSelectOrCreateContactImport";

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -530,6 +530,7 @@ infoDeveloperOptions = You can use the controls below to generate dummy cases an
530530
infoCreateNewSampleDiscardsChanges = Creating a new sample will discard all unsaved changes made to this case
531531
infoCreateNewSampleDiscardsChangesEventParticipant = Creating a new sample will discard all unsaved changes made to this event participant
532532
infoUsageOfEditableCampaignGrids = You can edit the campaign data and dashboard definitions by clicking inside one of the cells in the grid, and you can reorder the dashboard elements by dragging and dropping the grid rows
533+
infoSaveOfTask = Saving this task will discard any unsaved changes made to the case.
533534

534535
# Messages
535536
messageActivateAccount = Account has to be activated

sormas-ui/src/main/java/de/symeda/sormas/ui/task/TaskController.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import de.symeda.sormas.api.task.TaskType;
3434
import de.symeda.sormas.api.user.UserRight;
3535
import de.symeda.sormas.api.user.UserRole;
36+
import de.symeda.sormas.ui.ControllerProvider;
3637
import de.symeda.sormas.ui.UserProvider;
3738
import de.symeda.sormas.ui.utils.CommitDiscardWrapperComponent;
3839
import de.symeda.sormas.ui.utils.CommitDiscardWrapperComponent.CommitListener;
@@ -49,7 +50,7 @@ public TaskController() {
4950

5051
public void create(TaskContext context, ReferenceDto entityRef, Runnable callback) {
5152

52-
TaskEditForm createForm = new TaskEditForm(true);
53+
TaskEditForm createForm = new TaskEditForm(true, false);
5354
createForm.setValue(createNewTask(context, entityRef));
5455
final CommitDiscardWrapperComponent<TaskEditForm> editView = new CommitDiscardWrapperComponent<TaskEditForm>(
5556
createForm,
@@ -73,7 +74,7 @@ public void onCommit() {
7374

7475
public void createSampleCollectionTask(TaskContext context, ReferenceDto entityRef, SampleDto sample) {
7576

76-
TaskEditForm createForm = new TaskEditForm(true);
77+
TaskEditForm createForm = new TaskEditForm(true, false);
7778
TaskDto taskDto = createNewTask(context, entityRef);
7879
taskDto.setTaskType(TaskType.SAMPLE_COLLECTION);
7980
taskDto.setCreatorComment(sample.getNoTestPossibleReason());
@@ -98,12 +99,12 @@ public void onCommit() {
9899
VaadinUiUtil.showModalPopupWindow(createView, I18nProperties.getString(Strings.headingCreateNewTask));
99100
}
100101

101-
public void edit(TaskIndexDto dto, Runnable callback) {
102+
public void edit(TaskIndexDto dto, Runnable callback, boolean editedFromTaskGrid) {
102103

103104
// get fresh data
104105
TaskDto newDto = FacadeProvider.getTaskFacade().getByUuid(dto.getUuid());
105106

106-
TaskEditForm form = new TaskEditForm(false);
107+
TaskEditForm form = new TaskEditForm(false, editedFromTaskGrid);
107108
form.setValue(newDto);
108109
final CommitDiscardWrapperComponent<TaskEditForm> editView =
109110
new CommitDiscardWrapperComponent<TaskEditForm>(form, UserProvider.getCurrent().hasUserRight(UserRight.TASK_EDIT), form.getFieldGroup());
@@ -117,6 +118,11 @@ public void onCommit() {
117118
if (!form.getFieldGroup().isModified()) {
118119
TaskDto dto = form.getValue();
119120
FacadeProvider.getTaskFacade().saveTask(dto);
121+
122+
if (!editedFromTaskGrid && dto.getCaze() != null) {
123+
ControllerProvider.getCaseController().navigateToCase(dto.getCaze().getUuid());
124+
}
125+
120126
popupWindow.close();
121127
callback.run();
122128
}

sormas-ui/src/main/java/de/symeda/sormas/ui/task/TaskEditForm.java

Lines changed: 36 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,33 @@
1717
*******************************************************************************/
1818
package de.symeda.sormas.ui.task;
1919

20+
import static de.symeda.sormas.ui.utils.LayoutUtil.fluidRow;
21+
import static de.symeda.sormas.ui.utils.LayoutUtil.fluidRowLocs;
22+
import static de.symeda.sormas.ui.utils.LayoutUtil.loc;
23+
import static de.symeda.sormas.ui.utils.LayoutUtil.locs;
24+
25+
import java.util.ArrayList;
26+
import java.util.List;
27+
import java.util.Map;
28+
import java.util.stream.Collectors;
29+
30+
import com.vaadin.icons.VaadinIcons;
31+
import com.vaadin.shared.ui.ContentMode;
32+
import com.vaadin.shared.ui.MarginInfo;
33+
import com.vaadin.ui.HorizontalLayout;
34+
import com.vaadin.ui.Label;
2035
import com.vaadin.v7.ui.AbstractSelect.ItemCaptionMode;
2136
import com.vaadin.v7.ui.ComboBox;
2237
import com.vaadin.v7.ui.OptionGroup;
2338
import com.vaadin.v7.ui.TextArea;
39+
2440
import de.symeda.sormas.api.FacadeProvider;
2541
import de.symeda.sormas.api.ReferenceDto;
2642
import de.symeda.sormas.api.caze.CaseDataDto;
2743
import de.symeda.sormas.api.contact.ContactDto;
2844
import de.symeda.sormas.api.event.EventDto;
2945
import de.symeda.sormas.api.i18n.I18nProperties;
46+
import de.symeda.sormas.api.i18n.Strings;
3047
import de.symeda.sormas.api.i18n.Validations;
3148
import de.symeda.sormas.api.region.DistrictReferenceDto;
3249
import de.symeda.sormas.api.region.RegionReferenceDto;
@@ -44,20 +61,12 @@
4461
import de.symeda.sormas.ui.utils.FieldHelper;
4562
import de.symeda.sormas.ui.utils.TaskStatusValidator;
4663

47-
import java.util.ArrayList;
48-
import java.util.List;
49-
import java.util.Map;
50-
import java.util.stream.Collectors;
51-
52-
import static de.symeda.sormas.ui.utils.LayoutUtil.fluidRow;
53-
import static de.symeda.sormas.ui.utils.LayoutUtil.fluidRowLocs;
54-
import static de.symeda.sormas.ui.utils.LayoutUtil.loc;
55-
import static de.symeda.sormas.ui.utils.LayoutUtil.locs;
56-
5764
public class TaskEditForm extends AbstractEditForm<TaskDto> {
5865

5966
private static final long serialVersionUID = 1L;
6067

68+
private static final String SAVE_INFO = "saveInfo";
69+
6170
//@formatter:off
6271
private static final String HTML_LAYOUT =
6372
fluidRow(
@@ -68,15 +77,20 @@ public class TaskEditForm extends AbstractEditForm<TaskDto> {
6877
fluidRowLocs(TaskDto.ASSIGNEE_USER, TaskDto.PRIORITY) +
6978
fluidRowLocs(TaskDto.CREATOR_COMMENT) +
7079
fluidRowLocs(TaskDto.ASSIGNEE_REPLY) +
71-
fluidRowLocs(TaskDto.TASK_STATUS);
80+
fluidRowLocs(TaskDto.TASK_STATUS) +
81+
fluidRowLocs(SAVE_INFO);
7282
//@formatter:off
7383

7484
private UserRight editOrCreateUserRight;
85+
private boolean editedFromTaskGrid;
7586

76-
public TaskEditForm(boolean create) {
87+
public TaskEditForm(boolean create, boolean editedFromTaskGrid) {
7788

7889
super(TaskDto.class, TaskDto.I18N_PREFIX);
90+
91+
this.editedFromTaskGrid = editedFromTaskGrid;
7992
this.editOrCreateUserRight = editOrCreateUserRight;
93+
8094
addValueChangeListener(e -> {
8195
updateByTaskContext();
8296
updateByCreatingAndAssignee();
@@ -134,6 +148,16 @@ protected void addFields() {
134148
new TaskStatusValidator(
135149
taskDto.getCaze().getUuid(),
136150
I18nProperties.getValidationError(Validations.investigationStatusUnclassifiedCase)));
151+
152+
if (!editedFromTaskGrid) {
153+
final HorizontalLayout saveInfoLayout = new HorizontalLayout(
154+
new Label(
155+
VaadinIcons.INFO_CIRCLE.getHtml() + " " + I18nProperties.getString(Strings.infoSaveOfTask),
156+
ContentMode.HTML));
157+
saveInfoLayout.setSpacing(true);
158+
saveInfoLayout.setMargin(new MarginInfo(true, false, true, false));
159+
getContent().addComponent(saveInfoLayout, SAVE_INFO);
160+
}
137161
}
138162

139163
DistrictReferenceDto district = null;

sormas-ui/src/main/java/de/symeda/sormas/ui/task/TaskGrid.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ public TaskGrid(TaskCriteria criteria) {
7272
setCriteria(criteria);
7373
}
7474

75-
addEditColumn(e -> ControllerProvider.getTaskController().edit(e, this::reload));
75+
addEditColumn(e -> ControllerProvider.getTaskController().edit(e, this::reload, true));
7676

7777
setStyleGenerator(item -> {
7878
if (item != null && item.getTaskStatus() != null) {

sormas-ui/src/main/java/de/symeda/sormas/ui/task/TaskList.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ protected void drawDisplayedEntries() {
8787
if (UserProvider.getCurrent().hasUserRight(UserRight.TASK_EDIT)) {
8888
listEntry.addEditListener(
8989
i,
90-
(ClickListener) event -> ControllerProvider.getTaskController().edit(listEntry.getTask(), TaskList.this::reload));
90+
(ClickListener) event -> ControllerProvider.getTaskController().edit(listEntry.getTask(), TaskList.this::reload, false));
9191
}
9292
listLayout.addComponent(listEntry);
9393
}

0 commit comments

Comments
 (0)