From 49be9303023c01693ba32d1c98f47d4101fe1ece Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Tue, 27 Jun 2017 13:58:52 +0200 Subject: [PATCH] OO-2842: add MathJax to the offline results reports --- .../velocity/VelocityRenderDecorator.java | 10 +++++ .../resultexport/_content/qti21results.html | 11 ----- .../QTI21ResultsExportMediaResource.java | 6 ++- .../resultexport/_content/qti21results.html | 40 +++++++++++++++++++ 4 files changed, 54 insertions(+), 13 deletions(-) delete mode 100644 src/main/java/org/olat/ims/qti/resultexport/_content/qti21results.html diff --git a/src/main/java/org/olat/core/gui/render/velocity/VelocityRenderDecorator.java b/src/main/java/org/olat/core/gui/render/velocity/VelocityRenderDecorator.java index b4310e42c3a..4040d196834 100644 --- a/src/main/java/org/olat/core/gui/render/velocity/VelocityRenderDecorator.java +++ b/src/main/java/org/olat/core/gui/render/velocity/VelocityRenderDecorator.java @@ -344,6 +344,16 @@ public class VelocityRenderDecorator implements Closeable { return sb; } + public StringOutput mathJaxCdnFullUrl() { + StringOutput sb = new StringOutput(100); + if(WebappHelper.getMathJaxCdn().startsWith("http")) { + sb.append(WebappHelper.getMathJaxCdn()); + } else { + sb.append("https:").append(WebappHelper.getMathJaxCdn()); + } + return sb; + } + public StringOutput contextPath() { StringOutput sb = new StringOutput(100); sb.append(Settings.getServerContextPath()); diff --git a/src/main/java/org/olat/ims/qti/resultexport/_content/qti21results.html b/src/main/java/org/olat/ims/qti/resultexport/_content/qti21results.html deleted file mode 100644 index f5e4a281298..00000000000 --- a/src/main/java/org/olat/ims/qti/resultexport/_content/qti21results.html +++ /dev/null @@ -1,11 +0,0 @@ -<!DOCTYPE HTML> -<html> -<head> - <title>$rootTitle</title> - <link rel='stylesheet' href='../../../css/offline/qti/theme.css' /> - <meta http-equiv="Content-type" content="text/html; charset=utf-8"> -</head> -<body class="o_page_margins"> - <div id="o_main">$r.render("results")</div> -</body> -</html> \ No newline at end of file diff --git a/src/main/java/org/olat/ims/qti21/resultexport/QTI21ResultsExportMediaResource.java b/src/main/java/org/olat/ims/qti21/resultexport/QTI21ResultsExportMediaResource.java index 2f4f9574546..f8de7f6bcea 100644 --- a/src/main/java/org/olat/ims/qti21/resultexport/QTI21ResultsExportMediaResource.java +++ b/src/main/java/org/olat/ims/qti21/resultexport/QTI21ResultsExportMediaResource.java @@ -53,6 +53,7 @@ import org.olat.core.gui.render.Renderer; import org.olat.core.gui.render.StringOutput; import org.olat.core.gui.render.URLBuilder; import org.olat.core.gui.render.velocity.VelocityHelper; +import org.olat.core.gui.render.velocity.VelocityRenderDecorator; import org.olat.core.gui.translator.Translator; import org.olat.core.gui.util.WindowControlMocker; import org.olat.core.id.Identity; @@ -306,9 +307,10 @@ public class QTI21ResultsExportMediaResource implements MediaResource { mainVC.contextPut("rootTitle", translator.translate("table.grading")); mainVC.put("results", results); - //render VelocityContainer to StringOutPut - Renderer renderer = Renderer.getInstance(mainVC, translator, ubu, new RenderResult(), new EmptyGlobalSettings()); + Renderer renderer = Renderer.getInstance(mainVC, translator, ubu, new RenderResult(), new EmptyGlobalSettings()); + VelocityRenderDecorator vrdec = new VelocityRenderDecorator(renderer, mainVC, sb); + mainVC.contextPut("r", vrdec); renderer.render(sb, mainVC, null); return sb.toString(); } diff --git a/src/main/java/org/olat/ims/qti21/resultexport/_content/qti21results.html b/src/main/java/org/olat/ims/qti21/resultexport/_content/qti21results.html index 90fa8303e96..072e0bfd56f 100644 --- a/src/main/java/org/olat/ims/qti21/resultexport/_content/qti21results.html +++ b/src/main/java/org/olat/ims/qti21/resultexport/_content/qti21results.html @@ -1,3 +1,4 @@ + <!DOCTYPE HTML> <html> <head> @@ -23,6 +24,45 @@ function setFlexiFormDirtyByListener(e){ // } +function o_mathjax() { + jQuery.ajax("${r.mathJaxCdnFullUrl()}MathJax.js?config=TeX-AMS-MML_HTMLorMML", { + cache: true, + dataType: "script", + success: function() { + MathJax.Hub.Config({ + extensions: ["jsMath2jax.js"], + messageStyle: 'none', + showProcessingMessages: false, + showMathMenu: false, + menuSettings: { }, + jsMath2jax: { + preview: "none" + }, + tex2jax: { + ignoreClass: "math" + }, + "HTML-CSS": { + EqnChunk: 5, EqnChunkFactor: 1, EqnChunkDelay: 100 + }, + "fast-preview": { + disabled: true + } + }); + } + }); +} +var BFormatter = { + // format on load + formatLatexFormulas : function(domId) {} +}; +jQuery(function() { + if ((window.unsafeWindow == null ? window : unsafeWindow).MathJax == null) { + var count = jQuery('div.math,span.math,math,div.mathEntryInteraction').length; + if (count > 0) { + o_mathjax(); + } + } +}); /* ]]> */ </script> </head> -- GitLab