version 1.236, 2014/08/28 14:41:18
|
version 1.241, 2015/02/23 19:46:19
|
Line 56 use Apache::lonnet;
|
Line 56 use Apache::lonnet;
|
use Apache::inputtags(); |
use Apache::inputtags(); |
use Apache::lonmaxima(); |
use Apache::lonmaxima(); |
use Apache::lonr(); |
use Apache::lonr(); |
|
use Apache::lontexconvert(); |
|
|
BEGIN { |
BEGIN { |
&Apache::lonxml::register('Apache::response',('responseparam','parameter','dataresponse','customresponse','mathresponse')); |
&Apache::lonxml::register('Apache::response',('responseparam','parameter','dataresponse','customresponse','mathresponse')); |
Line 180 sub setrandomnumber {
|
Line 181 sub setrandomnumber {
|
} else { |
} else { |
($rndmod,$rndmod2)=&Apache::lonnet::digest("$id1,$id2"); |
($rndmod,$rndmod2)=&Apache::lonnet::digest("$id1,$id2"); |
} |
} |
$Apache::lonhomework::results{'resource.'.$id1.'.rawrndseed'}=$rndseed; |
|
if ($rndseed =~/([,:])/) { |
if ($rndseed =~/([,:])/) { |
my $char=$1; |
my $char=$1; |
use integer; |
use integer; |
Line 197 sub setrandomnumber {
|
Line 197 sub setrandomnumber {
|
} |
} |
} |
} |
&Apache::lonxml::debug("randseed $rndmod $rndseed"); |
&Apache::lonxml::debug("randseed $rndmod $rndseed"); |
$Apache::lonhomework::results{'resource.'.$id1.'.rndseed'}=$rndseed; |
|
&Apache::lonnet::setup_random_from_rndseed($rndseed); |
&Apache::lonnet::setup_random_from_rndseed($rndseed); |
return ''; |
return ''; |
} |
} |
Line 577 sub start_mathresponse {
|
Line 576 sub start_mathresponse {
|
} |
} |
|
|
sub edit_mathresponse_button { |
sub edit_mathresponse_button { |
my ($id,$field)=@_; |
my ($partid,$id)=@_; |
my $button=&mt('Edit Answer'); |
my $field = 'HWVAL_'.$partid.'_'.$id; |
# my $helplink=&Apache::loncommon::help_open_topic('Formula_Editor'); |
my $eqneditor = 'lcmath'; |
my $iconpath=$Apache::lonnet::perlvar{'lonIconsURL'}; |
if ($env{'browser.type'} eq 'safari') { |
return(<<ENDFORMULABUTTON); |
if ($env{'browser.os'} eq 'mac') { |
|
my ($prefix,$version) = ($env{'browser.version'} =~ /^(\d*)(\d{3})\./); |
|
if ($env{'browser.mobile'}) { |
|
if (($version < 531) || (($prefix eq '') && ($version < 533))) { |
|
$eqneditor = ''; |
|
} |
|
} elsif ($version < 522) { |
|
$eqneditor = 'dragmath'; |
|
} |
|
} |
|
} elsif ($env{'browser.type'} eq 'explorer') { |
|
if ($env{'browser.version'} < 9) { |
|
$eqneditor = 'dragmath'; |
|
} |
|
} elsif ($env{'browser.type'} eq 'mozilla') { |
|
if ($env{'browser.version'} < 3) { |
|
$eqneditor = 'dragmath'; |
|
} else { |
|
if ($env{'browser.info'} =~ /^firefox\-([\d\.]+)/) { |
|
my $firefox = $1; |
|
if ($firefox < 3) { |
|
$eqneditor = 'dragmath'; |
|
} |
|
} |
|
} |
|
} |
|
if ($eqneditor eq 'dragmath') { |
|
# DragMath applet |
|
my $button=&mt('Edit Answer'); |
|
# my $helplink=&Apache::loncommon::help_open_topic('Formula_Editor'); |
|
my $iconpath=$Apache::lonnet::perlvar{'lonIconsURL'}; |
|
return(<<ENDFORMULABUTTON); |
<script type="text/javascript" language="JavaScript"> |
<script type="text/javascript" language="JavaScript"> |
function edit_${id}_${field} (textarea) { |
function LC_mathedit_${field} (LCtextline) { |
thenumber = textarea; |
thenumber = LCtextline; |
thedata = document.forms['lonhomework'].elements[textarea].value; |
var thedata = ''; |
|
if (document.getElementById(LCtextline)) { |
|
thedata = document.getElementById(LCtextline).value; |
|
} |
newwin = window.open("/adm/dragmath/MaximaPopup.html","","width=565,height=400,resizable"); |
newwin = window.open("/adm/dragmath/MaximaPopup.html","","width=565,height=400,resizable"); |
} |
} |
</script> |
</script> |
<a href="javascript:edit_${id}_${field}('${field}');void(0);"><img class="stift" src="$iconpath/stift.gif" alt="$button" title="$button" /></a> |
<a href="javascript:LC_mathedit_${field}('${field}');void(0);"><img class="stift" src="$iconpath/stift.gif" alt="$button" title="$button" /></a> |
ENDFORMULABUTTON |
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(<<EQ_EDITOR_SCRIPT); |
|
<script type="text/javascript"> |
|
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); |
|
} |
|
</script> |
|
EQ_EDITOR_SCRIPT |
|
} |
} |
} |
|
|
sub end_mathresponse { |
sub end_mathresponse { |
Line 653 sub end_mathresponse {
|
Line 717 sub end_mathresponse {
|
my $id = $Apache::inputtags::response[-1]; |
my $id = $Apache::inputtags::response[-1]; |
if (($Apache::inputtags::status['-1'] eq 'CAN_ANSWER') |
if (($Apache::inputtags::status['-1'] eq 'CAN_ANSWER') |
&& (&Apache::lonnet::EXT('resource.'.$partid.'_'.$id.'.turnoffeditor') ne 'yes')) { |
&& (&Apache::lonnet::EXT('resource.'.$partid.'_'.$id.'.turnoffeditor') ne 'yes')) { |
$result.=&edit_mathresponse_button($id,"HWVAL_$id"); |
$result.=&edit_mathresponse_button($partid,$id); |
} |
} |
} |
} |
|
|