From 67ba4fa95abf34c82311f6cddb46c64b37d5392e Mon Sep 17 00:00:00 2001 From: srosse <stephane.rosse@frentix.com> Date: Fri, 21 Jun 2019 13:27:51 +0200 Subject: [PATCH] OO-4095: enable dirty check in survey with quick save --- .../ui/EvaluationFormExecutionController.java | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/main/java/org/olat/modules/forms/ui/EvaluationFormExecutionController.java b/src/main/java/org/olat/modules/forms/ui/EvaluationFormExecutionController.java index 6d09a5706cd..388ca0f0d94 100644 --- a/src/main/java/org/olat/modules/forms/ui/EvaluationFormExecutionController.java +++ b/src/main/java/org/olat/modules/forms/ui/EvaluationFormExecutionController.java @@ -33,6 +33,7 @@ import org.olat.core.gui.components.form.flexible.FormItemContainer; import org.olat.core.gui.components.form.flexible.elements.FormLink; import org.olat.core.gui.components.form.flexible.impl.FormBasicController; import org.olat.core.gui.components.form.flexible.impl.FormEvent; +import org.olat.core.gui.components.form.flexible.impl.elements.FormSubmit; import org.olat.core.gui.components.link.Link; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.Event; @@ -80,7 +81,7 @@ public class EvaluationFormExecutionController extends FormBasicController imple private final Map<String, EvaluationFormElementHandler> handlerMap = new HashMap<>(); private final List<ExecutionFragment> fragments = new ArrayList<>(); private FormLink saveLink; - private FormLink doneLink; + private FormSubmit doneLink; private DialogBoxController confirmDoneCtrl; private PageFragmentsElementImpl fragmentsEl; @@ -91,8 +92,6 @@ public class EvaluationFormExecutionController extends FormBasicController imple private boolean readOnly; private boolean showDoneButton; - private boolean immediateSave = false; - private EvaluationFormSession session; private final EvaluationFormResponses responses; @@ -196,9 +195,11 @@ public class EvaluationFormExecutionController extends FormBasicController imple && !session.getParticipation().isAnonymous(); boolean anonymous = !notAnonymous; flc.contextPut("anonymous", Boolean.valueOf(showDoneButton && anonymous)); + + // force it to have always the same settings + mainForm.setMultipartEnabled(true); - doneLink = uifactory.addFormLink("save.as.done", "save.as.done", null, flc, Link.BUTTON); - doneLink.setPrimary(true); + doneLink = uifactory.addFormSubmitButton("save.as.done", "save.as.done", formLayout); saveLink = uifactory.addFormLink("save.intermediate", "save.intermediate", null, flc, Link.BUTTON); showHideButtons(); } @@ -270,11 +271,10 @@ public class EvaluationFormExecutionController extends FormBasicController imple @Override protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) { if (saveLink == source) { - immediateSave = true; - mainForm.submit(ureq); - } else if (doneLink == source) { - immediateSave = false; - mainForm.submit(ureq); + if(mainForm.validate(ureq)) { + mainForm.forceSubmittedAndValid(); + doSaveResponses(); + } } super.formInnerEvent(ureq, source, event); } @@ -292,7 +292,7 @@ public class EvaluationFormExecutionController extends FormBasicController imple @Override protected void formOK(UserRequest ureq) { boolean responsesSaved = doSaveResponses(); - if (!immediateSave && responsesSaved) { + if (responsesSaved) { doConfirmDone(ureq); } } @@ -342,7 +342,7 @@ public class EvaluationFormExecutionController extends FormBasicController imple List<ValidationMessage> messages = new ArrayList<>(); validate(ureq, messages); - if (messages.size() > 0) { + if (!messages.isEmpty()) { for (ValidationMessage message : messages) { sb.append("<p class='o_warning'>").append(message.getMessage()).append("</p>"); } -- GitLab