version 1.237, 2014/09/24 18:14:27
|
version 1.243, 2015/03/09 16:19:54
|
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 $btype = $env{'browser.type'}; |
my $field = 'HWVAL_'.$partid.'_'.$id; |
my $bversion = $env{'browser.version'}; |
my $eqneditor = 'lcmath'; |
if (($btype eq 'explorer' && $bversion < 9) || ($btype eq 'safari' && $bversion < 3) || |
if ($env{'browser.type'} eq 'safari') { |
($btype eq 'mozilla' && $bversion < 3)) { |
if ($env{'browser.os'} eq 'mac') { |
# DragMath applet |
my ($prefix,$version) = ($env{'browser.version'} =~ /^(\d*)(\d{3})\./); |
my $button=&mt('Edit Answer'); |
if ($env{'browser.mobile'}) { |
# my $helplink=&Apache::loncommon::help_open_topic('Formula_Editor'); |
if (($version < 531) || (($prefix eq '') && ($version < 533))) { |
my $iconpath=$Apache::lonnet::perlvar{'lonIconsURL'}; |
$eqneditor = ''; |
return(<<ENDFORMULABUTTON); |
} |
|
} elsif ($version < 533) { |
|
$eqneditor = 'dragmath'; |
|
} |
|
} elsif ($env{'browser.os'} eq 'win') { |
|
if ($env{'browser.version'} < 533) { |
|
$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'} < 5) { |
|
$eqneditor = 'dragmath'; |
|
} else { |
|
if ($env{'browser.info'} =~ /^firefox\-([\d\.]+)/) { |
|
my $firefox = $1; |
|
if ($firefox < 4) { |
|
$eqneditor = 'dragmath'; |
|
} |
|
} |
|
} |
|
} elsif ($env{'browser.type'} eq 'chrome') { |
|
if ($env{'browser.version'} < 5) { |
|
$eqneditor = 'dragmath'; |
|
} |
|
} elsif ($env{'browser.type'} eq 'opera') { |
|
if ($env{'browser.version'} < 12) { |
|
$eqneditor = 'dragmath'; |
|
} |
|
} |
|
if ($eqneditor eq 'lcmath') { |
|
if (($env{'request.course.id'}) && ($env{'request.state'} ne 'construct')) { |
|
if (exists($env{'course.'.$env{'request.course.id'}.'.uselcmath'})) { |
|
if ($env{'course.'.$env{'request.course.id'}.'.uselcmath'} eq '0') { |
|
$eqneditor = 'dragmath'; |
|
} |
|
} else { |
|
my %domdefs = &Apache::lonnet::get_domain_defaults($env{'course.'.$env{'request.course.id'}.'.domain'}); |
|
if ($domdefs{'uselcmath'} eq '0') { |
|
$eqneditor = 'dragmath'; |
|
} |
|
} |
|
} else { |
|
my %domdefs = &Apache::lonnet::get_domain_defaults($env{'course.'.$env{'request.course.id'}.'.domain'}); |
|
if ($domdefs{'uselcmath'} eq '0') { |
|
$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') { |
} else { |
# LON-CAPA math equation editor |
# LON-CAPA math equation editor |
my $mathjaxjs; |
return(<<EQ_EDITOR_SCRIPT); |
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"> |
<script type="text/javascript"> |
var field = document.getElementById('${field}'); |
var LCmathField = document.getElementById('${field}'); |
field.className += ' math'; // note the space |
LCmathField.className += ' math'; // note the space |
|
LCmathField.setAttribute('data-implicit_operators', 'true'); |
var LCMATH_started; |
var LCMATH_started; |
if (typeof LCMATH_started === 'undefined') { |
if (typeof LCMATH_started === 'undefined') { |
|
$mathjaxjs |
LCMATH_started = true; |
LCMATH_started = true; |
var script = document.createElement("script"); |
var script = document.createElement("script"); |
script.type = "text/javascript"; |
script.type = "text/javascript"; |
Line 679 sub end_mathresponse {
|
Line 748 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); |
} |
} |
} |
} |
|
|