From 8ad4a477c15f928323da24aff4188bd7f0dca1d9 Mon Sep 17 00:00:00 2001 From: Jean-Michel Vedrine Date: Fri, 2 Feb 2018 16:53:59 +0100 Subject: Ajax dynamic formula display --- amd/build/display.min.js | 1 + amd/src/display.js | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 amd/build/display.min.js create mode 100644 amd/src/display.js (limited to 'amd') diff --git a/amd/build/display.min.js b/amd/build/display.min.js new file mode 100644 index 0000000..cd5da13 --- /dev/null +++ b/amd/build/display.min.js @@ -0,0 +1 @@ +define(["jquery","core/config","core/notification"],function(a,b,c){return{init:function(){a(".algebra_answer").on("input paste keyup",null,null,function(){var d=a(this).attr("id"),e=d.replace(":","_"),f=a("#"+e+"_vars").html(),g=a(this).val(),h={vars:f,expr:g,sesskey:b.sesskey};a.post(b.wwwroot+"/question/type/algebra/ajax.php",h,null,"json").done(function(b){a("#"+e+"_display").html(''+b+""),MathJax.Hub.Queue(["Typeset",MathJax.Hub])}).fail(function(a,b,d){c.exception(d)})})}}}); \ No newline at end of file diff --git a/amd/src/display.js b/amd/src/display.js new file mode 100644 index 0000000..e2131b7 --- /dev/null +++ b/amd/src/display.js @@ -0,0 +1,28 @@ +define(['jquery', 'core/config', 'core/notification'], function($, config, notification) { + return { + init: function() { + $(".algebra_answer").on('input paste keyup', null, null, function() { + // Convert answer id to valid javascript name. + var id = $(this).attr('id'); + var display = id.replace(':', '_'); + var varnames = $('#' + display + '_vars').html(); + var currentanswer = $(this).val(); + var params = { + vars: varnames, + expr: currentanswer, + sesskey: config.sesskey, + }; + $.post(config.wwwroot + '/question/type/algebra/ajax.php', params, null, 'json') + .done(function(data) { + // Replace TeX form in page. + $('#' + display + '_display').html("" + data +""); + // MathJax update. + MathJax.Hub.Queue(["Typeset", MathJax.Hub]); + }) + .fail(function(jqXHR, status, error) { + notification.exception(error); + }); + }); + } + }; +}); \ No newline at end of file -- cgit v1.2.3