Skip to content
Snippets Groups Projects
Commit 5cb9d711 authored by srosse's avatar srosse
Browse files

OO-4095: allow to call validation directly on the form object

parent 0f3f21fe
No related branches found
No related tags found
No related merge requests found
...@@ -437,14 +437,21 @@ public class Form { ...@@ -437,14 +437,21 @@ public class Form {
} }
private final void submit(UserRequest ureq, Event validationOkEvent) { private final void submit(UserRequest ureq, Event validationOkEvent) {
boolean isValid = validate(ureq);
formWrapperComponent.fireValidation(ureq, isValid, validationOkEvent);
isValidAndSubmitted = isValid;
hasAlreadyFired = true;
}
public boolean validate(UserRequest ureq) {
ValidatingFormComponentVisitor vfcv = new ValidatingFormComponentVisitor(); ValidatingFormComponentVisitor vfcv = new ValidatingFormComponentVisitor();
FormComponentTraverser ct = new FormComponentTraverser(vfcv, formLayout, false); FormComponentTraverser ct = new FormComponentTraverser(vfcv, formLayout, false);
ct.visitAll(ureq); ct.visitAll(ureq);
// validate all form elements and gather validation status // validate all form elements and gather validation status
ValidationStatus[] status = vfcv.getStatus(); ValidationStatus[] status = vfcv.getStatus();
//
boolean isValid = status == null || status.length == 0; boolean isValid = status == null || status.length == 0;
// let the businesslogic validate this is implemented by the outside listener // let the business logic validate this is implemented by the outside listener
for (Iterator<FormBasicController> iterator = formListeners.iterator(); iterator.hasNext();) { for (Iterator<FormBasicController> iterator = formListeners.iterator(); iterator.hasNext();) {
FormBasicController fbc = iterator.next(); FormBasicController fbc = iterator.next();
...@@ -452,10 +459,7 @@ public class Form { ...@@ -452,10 +459,7 @@ public class Form {
//let further validate even if one fails. //let further validate even if one fails.
isValid = fbc.validateFormLogic(ureq) && isValid; isValid = fbc.validateFormLogic(ureq) && isValid;
} }
return isValid;
formWrapperComponent.fireValidation(ureq, isValid, validationOkEvent);
isValidAndSubmitted = isValid;
hasAlreadyFired = true;
} }
......
...@@ -92,8 +92,6 @@ public class EvaluationFormExecutionController extends FormBasicController imple ...@@ -92,8 +92,6 @@ public class EvaluationFormExecutionController extends FormBasicController imple
private boolean readOnly; private boolean readOnly;
private boolean showDoneButton; private boolean showDoneButton;
private boolean immediateSave = false;
private EvaluationFormSession session; private EvaluationFormSession session;
private final EvaluationFormResponses responses; private final EvaluationFormResponses responses;
...@@ -270,11 +268,9 @@ public class EvaluationFormExecutionController extends FormBasicController imple ...@@ -270,11 +268,9 @@ public class EvaluationFormExecutionController extends FormBasicController imple
@Override @Override
protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) { protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) {
if (saveLink == source) { if (saveLink == source) {
immediateSave = true; if(mainForm.validate(ureq)) {
mainForm.submit(ureq); doSaveResponses();
} else if (doneLink == source) { }
immediateSave = false;
mainForm.submit(ureq);
} }
super.formInnerEvent(ureq, source, event); super.formInnerEvent(ureq, source, event);
} }
...@@ -292,7 +288,7 @@ public class EvaluationFormExecutionController extends FormBasicController imple ...@@ -292,7 +288,7 @@ public class EvaluationFormExecutionController extends FormBasicController imple
@Override @Override
protected void formOK(UserRequest ureq) { protected void formOK(UserRequest ureq) {
boolean responsesSaved = doSaveResponses(); boolean responsesSaved = doSaveResponses();
if (!immediateSave && responsesSaved) { if (responsesSaved) {
doConfirmDone(ureq); doConfirmDone(ureq);
} }
} }
...@@ -342,7 +338,7 @@ public class EvaluationFormExecutionController extends FormBasicController imple ...@@ -342,7 +338,7 @@ public class EvaluationFormExecutionController extends FormBasicController imple
List<ValidationMessage> messages = new ArrayList<>(); List<ValidationMessage> messages = new ArrayList<>();
validate(ureq, messages); validate(ureq, messages);
if (messages.size() > 0) { if (!messages.isEmpty()) {
for (ValidationMessage message : messages) { for (ValidationMessage message : messages) {
sb.append("<p class='o_warning'>").append(message.getMessage()).append("</p>"); sb.append("<p class='o_warning'>").append(message.getMessage()).append("</p>");
} }
......
...@@ -103,7 +103,7 @@ public class TextInputController extends FormBasicController implements Evaluati ...@@ -103,7 +103,7 @@ public class TextInputController extends FormBasicController implements Evaluati
@Override @Override
protected boolean validateFormLogic(UserRequest ureq) { protected boolean validateFormLogic(UserRequest ureq) {
boolean allOk = true; boolean allOk = super.validateFormLogic(ureq);
if (textInput.isNumeric()) { if (textInput.isNumeric()) {
String val = singleRowEl.getValue(); String val = singleRowEl.getValue();
...@@ -117,7 +117,7 @@ public class TextInputController extends FormBasicController implements Evaluati ...@@ -117,7 +117,7 @@ public class TextInputController extends FormBasicController implements Evaluati
} }
} }
return allOk & super.validateFormLogic(ureq); return allOk;
} }
@Override @Override
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment