--- loncom/homework/response.pm 2014/08/28 14:41:18 1.236 +++ loncom/homework/response.pm 2015/03/09 16:19:54 1.243 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # various response type definitons response definition # -# $Id: response.pm,v 1.236 2014/08/28 14:41:18 raeburn Exp $ +# $Id: response.pm,v 1.243 2015/03/09 16:19:54 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -56,6 +56,7 @@ use Apache::lonnet; use Apache::inputtags(); use Apache::lonmaxima(); use Apache::lonr(); +use Apache::lontexconvert(); BEGIN { &Apache::lonxml::register('Apache::response',('responseparam','parameter','dataresponse','customresponse','mathresponse')); @@ -180,7 +181,6 @@ sub setrandomnumber { } else { ($rndmod,$rndmod2)=&Apache::lonnet::digest("$id1,$id2"); } - $Apache::lonhomework::results{'resource.'.$id1.'.rawrndseed'}=$rndseed; if ($rndseed =~/([,:])/) { my $char=$1; use integer; @@ -197,7 +197,6 @@ sub setrandomnumber { } } &Apache::lonxml::debug("randseed $rndmod $rndseed"); - $Apache::lonhomework::results{'resource.'.$id1.'.rndseed'}=$rndseed; &Apache::lonnet::setup_random_from_rndseed($rndseed); return ''; } @@ -577,20 +576,116 @@ sub start_mathresponse { } sub edit_mathresponse_button { - my ($id,$field)=@_; - my $button=&mt('Edit Answer'); -# my $helplink=&Apache::loncommon::help_open_topic('Formula_Editor'); - my $iconpath=$Apache::lonnet::perlvar{'lonIconsURL'}; - return(< -function edit_${id}_${field} (textarea) { - thenumber = textarea; - thedata = document.forms['lonhomework'].elements[textarea].value; +function LC_mathedit_${field} (LCtextline) { + thenumber = LCtextline; + var thedata = ''; + if (document.getElementById(LCtextline)) { + thedata = document.getElementById(LCtextline).value; + } newwin = window.open("/adm/dragmath/MaximaPopup.html","","width=565,height=400,resizable"); } -$button +$button ENDFORMULABUTTON + } elsif ($eqneditor eq 'lcmath') { + # LON-CAPA math equation editor + my $mathjaxjs; + unless (lc(&Apache::lontexconvert::tex_engine()) eq 'mathjax') { + $mathjaxjs = <<"MATHJAX_SCRIPT"; +var mathjaxscript = document.createElement("script"); + mathjaxscript.type = "text/javascript"; + mathjaxscript.src = "/adm/MathJax/MathJax.js?config=TeX-AMS-MML_HTMLorMML"; + document.body.appendChild(mathjaxscript); +MATHJAX_SCRIPT + } + return(< + var LCmathField = document.getElementById('${field}'); + LCmathField.className += ' math'; // note the space + LCmathField.setAttribute('data-implicit_operators', 'true'); + var LCMATH_started; + if (typeof LCMATH_started === 'undefined') { + $mathjaxjs + LCMATH_started = true; + var script = document.createElement("script"); + script.type = "text/javascript"; + script.src = "/adm/LC_math_editor/LC_math_editor.min.js"; + document.body.appendChild(script); + window.addEventListener('load', function(e) { + LCMATH.initEditors(); + }, false); + } + +EQ_EDITOR_SCRIPT + } } sub end_mathresponse { @@ -653,7 +748,7 @@ sub end_mathresponse { my $id = $Apache::inputtags::response[-1]; if (($Apache::inputtags::status['-1'] eq 'CAN_ANSWER') && (&Apache::lonnet::EXT('resource.'.$partid.'_'.$id.'.turnoffeditor') ne 'yes')) { - $result.=&edit_mathresponse_button($id,"HWVAL_$id"); + $result.=&edit_mathresponse_button($partid,$id); } }