From 500464cfd8885146b93fcc867341bba5c7ae1dd1 Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Mon, 3 Jul 2017 10:21:14 +0200
Subject: [PATCH] OO-2858: unescape solution of gap text from the tinymce mce
 plugin because they are send to it escaped

---
 .../qti21/ui/editor/interactions/FIBEditorController.java    | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/FIBEditorController.java b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/FIBEditorController.java
index 8be0c78c466..e8ac6312d5c 100644
--- a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/FIBEditorController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/FIBEditorController.java
@@ -22,6 +22,7 @@ package org.olat.ims.qti21.ui.editor.interactions;
 import java.io.ByteArrayInputStream;
 import java.io.File;
 
+import org.apache.commons.lang.StringEscapeUtils;
 import org.cyberneko.html.parsers.SAXParser;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.form.flexible.FormItem;
@@ -330,6 +331,7 @@ public class FIBEditorController extends FormBasicController {
 			if("true".equals(solutionEmpty)) {
 				((TextEntry)entry).setSolution("");
 			} else {
+				solution = StringEscapeUtils.unescapeHtml(solution);
 				((TextEntry)entry).setSolution(solution);
 			}
 		} else if(entry instanceof NumericalEntry) {
@@ -356,6 +358,9 @@ public class FIBEditorController extends FormBasicController {
 					String name = attributes.getLocalName(i);
 					if("data-qti-solution".equals(name)) {
 						solution = attributes.getValue(i);
+						if(solution != null) {
+							solution = StringEscapeUtils.unescapeHtml(solution);
+						}
 					} else if("data-qti-solution-empty".equals(name)) {
 						solutionEmpty = attributes.getValue(i);
 					} else if("responseIdentifier".equalsIgnoreCase(name)) {
-- 
GitLab