From 33ab131f0abcd521754af50aafcf67c3b0ddc849 Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Mon, 29 Aug 2016 09:20:35 +0200 Subject: [PATCH] OO-1593: fix return by essay / extendedTextInteraction --- .../ims/qti21/ui/AssessmentTestDisplayController.java | 1 - .../ui/components/AssessmentObjectComponentRenderer.java | 9 ++++++++- .../qti21/ui/components/AssessmentRenderFunctions.java | 4 +++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/olat/ims/qti21/ui/AssessmentTestDisplayController.java b/src/main/java/org/olat/ims/qti21/ui/AssessmentTestDisplayController.java index cf758f12027..1c372f7a7bf 100644 --- a/src/main/java/org/olat/ims/qti21/ui/AssessmentTestDisplayController.java +++ b/src/main/java/org/olat/ims/qti21/ui/AssessmentTestDisplayController.java @@ -1263,7 +1263,6 @@ public class AssessmentTestDisplayController extends BasicController implements @Override protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { mainForm.setMultipartEnabled(true); - mainForm.setOnSubmitCallback("QtiWorksRendering.maySubmit();"); FormSubmit submit = uifactory.addFormSubmitButton("submit", formLayout); submit.setElementCssClass("o_sel_assessment_item_submit"); diff --git a/src/main/java/org/olat/ims/qti21/ui/components/AssessmentObjectComponentRenderer.java b/src/main/java/org/olat/ims/qti21/ui/components/AssessmentObjectComponentRenderer.java index 65b64235fbb..0ece50676f8 100644 --- a/src/main/java/org/olat/ims/qti21/ui/components/AssessmentObjectComponentRenderer.java +++ b/src/main/java/org/olat/ims/qti21/ui/components/AssessmentObjectComponentRenderer.java @@ -967,8 +967,9 @@ public abstract class AssessmentObjectComponentRenderer extends DefaultComponent ResponseDeclaration responseDeclaration = getResponseDeclaration(assessmentItem, interaction.getResponseIdentifier()); String checkJavascript = checkJavaScript(responseDeclaration, interaction.getPatternMask()); if(StringHelper.containsNonWhitespace(checkJavascript)) { - sb.append(" onchange=\"").append(checkJavascript).append("\">"); + sb.append(" onchange=\"").append(checkJavascript).append("\""); } + sb.append(">"); if(renderer.isSolutionMode()) { String placeholder = interaction.getPlaceholderText(); @@ -980,6 +981,12 @@ public abstract class AssessmentObjectComponentRenderer extends DefaultComponent } sb.append("</textarea>"); FormJSHelper.appendFlexiFormDirty(sb, component.getQtiItem().getRootForm(), responseUniqueId); + sb.append(FormJSHelper.getJSStartWithVarDeclaration(responseUniqueId)) + //plain textAreas should not propagate the keypress "enter" (keynum = 13) as this would submit the form + .append(responseUniqueId).append(".on('keypress', function(event, target){if (13 == event.keyCode) {event.stopPropagation()} })") + .append(FormJSHelper.getJSEnd()); + + } protected abstract void renderPrintedVariable(AssessmentRenderer renderer, StringOutput sb, diff --git a/src/main/java/org/olat/ims/qti21/ui/components/AssessmentRenderFunctions.java b/src/main/java/org/olat/ims/qti21/ui/components/AssessmentRenderFunctions.java index 1565f28ca8e..caa34803e7c 100644 --- a/src/main/java/org/olat/ims/qti21/ui/components/AssessmentRenderFunctions.java +++ b/src/main/java/org/olat/ims/qti21/ui/components/AssessmentRenderFunctions.java @@ -505,7 +505,9 @@ public class AssessmentRenderFunctions { checks.add(patternMask); } - if(checks == null || checks.isEmpty()) return "()"; + if(checks == null || checks.isEmpty()) { + return null; + } StringBuilder out = new StringBuilder(128); out.append("QtiWorksRendering.validateInput(this"); -- GitLab