version 1.465.2.9, 2010/12/31 19:24:48
|
version 1.480, 2010/12/19 21:12:20
|
Line 128 sub homework_js {
|
Line 128 sub homework_js {
|
&setmode_javascript(). |
&setmode_javascript(). |
<<'JS'; |
<<'JS'; |
<script type="text/javascript"> |
<script type="text/javascript"> |
// <![CDATA[ |
|
function setSubmittedPart (part) { |
function setSubmittedPart (part) { |
this.document.lonhomework.submitted.value="part_"+part; |
this.document.lonhomework.submitted.value="part_"+part; |
} |
} |
Line 144 function image_response_click (which, e)
|
Line 143 function image_response_click (which, e)
|
var y= e.clientY-getY(img_element)+Geometry.getVerticalScroll(); |
var y= e.clientY-getY(img_element)+Geometry.getVerticalScroll(); |
var click = x+':'+y; |
var click = x+':'+y; |
input_element.value = click; |
input_element.value = click; |
img_element.src = '/adm/randomlabel.png?token='+token+'&clickdata='+click; |
img_element.src = '/adm/randomlabel.png?token='+token+'&clickdata='+click; |
} |
} |
// ]]> |
|
</script> |
</script> |
JS |
JS |
} |
} |
Line 168 sub file_delchk_js {
|
Line 167 sub file_delchk_js {
|
&mt('Submit Answer?'); |
&mt('Submit Answer?'); |
return <<"ENDSCRIPT"; |
return <<"ENDSCRIPT"; |
<script type="text/javascript"> |
<script type="text/javascript"> |
// <![CDATA[ |
|
function file_deletion_check(formname) { |
function file_deletion_check(formname) { |
|
var str = new RegExp("^HWFILE.+_delete\$"); |
|
var delfilecount = 0; |
var elemnum = formname.elements.length; |
var elemnum = formname.elements.length; |
if (elemnum == 0) { |
if (elemnum == 0) { |
return true; |
return true; |
} |
} |
var str = new RegExp("^HWFILE.+_delete\$"); |
|
var delboxes = new Array(); |
|
for (i=0; i<formname.elements.length; i++) { |
for (i=0; i<formname.elements.length; i++) { |
var id = formname.elements[i].id; |
var id = formname.elements[i].id; |
if (id != '') { |
if (id != '') { |
if (str.test(id)) { |
if (str.test(id)) { |
if (formname.elements[i].type == 'checkbox') { |
if (formname.elements[i].type == 'checkbox') { |
if (formname.elements[i].checked) { |
if (formname.elements[i].checked) { |
delboxes.push(id); |
delfilecount ++; |
} |
} |
} |
} |
} |
} |
} |
} |
} |
} |
if (delboxes.length > 0) { |
if (delfilecount > 0) { |
if (confirm("$delfilewarn")) { |
if (confirm("$delfilewarn")) { |
return true; |
return true; |
} else { |
} else { |
for (var j=0; j<delboxes.length; j++) { |
|
formname.elements[delboxes[j]].checked = false; |
|
} |
|
return false; |
return false; |
} |
} |
} else { |
} else { |
return true; |
return true; |
} |
} |
} |
} |
// ]]> |
|
</script> |
</script> |
ENDSCRIPT |
ENDSCRIPT |
} |
} |
Line 259 sub page_start {
|
Line 253 sub page_start {
|
} elsif (!defined($found{'body'}) |
} elsif (!defined($found{'body'}) |
&& $env{'request.state'} eq 'construct') { |
&& $env{'request.state'} eq 'construct') { |
if ($target eq 'web' || $target eq 'edit') { |
if ($target eq 'web' || $target eq 'edit') { |
if ($env{'environment.remote'} ne 'off') { |
|
$body_args{'only_body'} = 1; |
|
} |
|
# Breadcrumbs for Construction Space |
# Breadcrumbs for Construction Space |
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
&Apache::lonhtmlcommon::add_breadcrumb({ |
&Apache::lonhtmlcommon::add_breadcrumb({ |
Line 295 sub page_start {
|
Line 286 sub page_start {
|
# $body_args{'no_title'} = 1; |
# $body_args{'no_title'} = 1; |
$body_args{'force_register'} = 1; |
$body_args{'force_register'} = 1; |
$body_args{'add_entries'} = \%add_entries; |
$body_args{'add_entries'} = \%add_entries; |
if ($env{'environment.remote'} eq 'off' |
if ( $env{'request.state'} eq 'construct') { |
&& $env{'request.state'} eq 'construct') { |
|
$body_args{'only_body'} = 1; |
$body_args{'only_body'} = 1; |
} |
} |
} |
} |
Line 397 sub setup_rndseed {
|
Line 387 sub setup_rndseed {
|
} |
} |
$env{'form.rndseed'}=$rndseed; |
$env{'form.rndseed'}=$rndseed; |
} |
} |
if (($env{'request.state'} eq "construct") && |
if (($env{'request.state'} eq "construct") && |
($Apache::lonhomework::type eq 'randomizetry')) { |
($Apache::lonhomework::type eq 'randomizetry')) { |
my $tries = $Apache::lonhomework::history{"resource.$Apache::inputtags::part.tries"}; |
my $tries = $Apache::lonhomework::history{"resource.$Apache::inputtags::part.tries"}; |
if ($tries) { |
if ($tries) { |
Line 763 sub store_aggregates {
|
Line 753 sub store_aggregates {
|
foreach my $part (@parts) { |
foreach my $part (@parts) { |
if ($env{'request.role'} =~/^st/) { |
if ($env{'request.role'} =~/^st/) { |
if ($Apache::lonhomework::results{'resource.'.$part.'.award'} |
if ($Apache::lonhomework::results{'resource.'.$part.'.award'} |
eq 'APPROX_ANS' || |
eq 'APPROX_ANS' || |
$Apache::lonhomework::results{'resource.'.$part.'.award'} |
$Apache::lonhomework::results{'resource.'.$part.'.award'} |
eq 'EXACT_ANS') { |
eq 'EXACT_ANS') { |
$aggregate{$symb."\0".$part."\0correct"} = 1; |
$aggregate{$symb."\0".$part."\0correct"} = 1; |
} |
} |
if ($Apache::lonhomework::results{'resource.'.$part.'.tries'} == 1) { |
if ($Apache::lonhomework::results{'resource.'.$part.'.tries'} == 1) { |
$aggregate{$symb."\0".$part."\0users"} = 1; |
$aggregate{$symb."\0".$part."\0users"} = 1; |
} else { |
} else { |
my (undef,$last_reset) = &Apache::grades::get_last_resets($symb,$env{'request.course.id'},[$part]); |
my (undef,$last_reset) = &Apache::grades::get_last_resets($symb,$env{'request.course.id'},[$part]); |
if ($last_reset) { |
if ($last_reset) { |
if (&Apache::grades::get_num_tries(\%Apache::lonhomework::history,$last_reset,$part) == 0) { |
if (&Apache::grades::get_num_tries(\%Apache::lonhomework::history,$last_reset,$part) == 0) { |
$aggregate{$symb."\0".$part."\0users"} = 1; |
$aggregate{$symb."\0".$part."\0users"} = 1; |
Line 780 sub store_aggregates {
|
Line 770 sub store_aggregates {
|
} |
} |
$aggregate{$symb."\0".$part."\0attempts"} = 1; |
$aggregate{$symb."\0".$part."\0attempts"} = 1; |
} |
} |
if (($Apache::lonhomework::results{'resource.'.$part.'.type'} eq 'anonsurvey') || |
if (($Apache::lonhomework::results{'resource.'.$part.'.type'} eq 'anonsurvey') || |
($Apache::lonhomework::results{'resource.'.$part.'.type'} eq 'anonsurveycred') || |
($Apache::lonhomework::results{'resource.'.$part.'.type'} eq 'anonsurveycred') || |
($Apache::lonhomework::results{'resource.'.$part.'.type'} eq 'randomizetry')) { |
($Apache::lonhomework::results{'resource.'.$part.'.type'} eq 'randomizetry')) { |
if ($Apache::lonhomework::results{'resource.'.$part.'.type'} eq 'randomizetry') { |
if ($Apache::lonhomework::results{'resource.'.$part.'.type'} eq 'randomizetry') { |
Line 788 sub store_aggregates {
|
Line 778 sub store_aggregates {
|
} else { |
} else { |
$anoncounter{$symb."\0".$part} = 1; |
$anoncounter{$symb."\0".$part} = 1; |
} |
} |
$anoncounter{$symb."\0".$part} = 1; |
|
my $needsrelease = $Apache::lonnet::needsrelease{'parameter:type:'.$Apache::lonhomework::results{'resource.'.$part.'.type'}}; |
my $needsrelease = $Apache::lonnet::needsrelease{'parameter:type:'.$Apache::lonhomework::results{'resource.'.$part.'.type'}}; |
if ($needsrelease) { |
if ($needsrelease) { |
my $curr_required = $env{'course.'.$env{'request.course.id'}.'.internal.releaserequired'}; |
my $curr_required = $env{'course.'.$env{'request.course.id'}.'.internal.releaserequired'}; |
if ($curr_required eq '') { |
if ($curr_required eq '') { |
&Apache::lonnet::update_released_required($needsrelease); |
&Apache::lonnet::update_released_required($needsrelease); |
Line 809 sub store_aggregates {
|
Line 798 sub store_aggregates {
|
$cdomain,$cname); |
$cdomain,$cname); |
} |
} |
if (keys(%anoncounter) > 0) { |
if (keys(%anoncounter) > 0) { |
&Apache::lonnet::cput('nohist_anonsurveys',\%anoncounter, |
&Apache::lonnet::cinc('nohist_anonsurveys',\%anoncounter, |
$cdomain,$cname); |
$cdomain,$cname); |
} |
} |
if (keys(%randtrycounter) > 0) { |
if (keys(%randtrycounter) > 0) { |
&Apache::lonnet::cput('nohist_randomizetry',\%randtrycounter, |
&Apache::lonnet::cinc('nohist_randomizetry',\%randtrycounter, |
$cdomain,$cname); |
$cdomain,$cname); |
} |
} |
} |
} |
|
|
Line 896 sub init_problem_globals {
|
Line 885 sub init_problem_globals {
|
&Apache::lonhomework::reset_show_problem_status(); |
&Apache::lonhomework::reset_show_problem_status(); |
$Apache::lonhomework::ignore_response_errors=1; |
$Apache::lonhomework::ignore_response_errors=1; |
} |
} |
|
@Apache::functionplotresponse::callscripts=(); |
@Apache::inputtags::responselist = (); |
@Apache::inputtags::responselist = (); |
@Apache::inputtags::importlist = (); |
@Apache::inputtags::importlist = (); |
@Apache::inputtags::previous=(); |
@Apache::inputtags::previous=(); |
Line 923 sub reset_problem_globals {
|
Line 913 sub reset_problem_globals {
|
undef($Apache::lonhomework::type); |
undef($Apache::lonhomework::type); |
undef($Apache::lonhomework::scantronmode); |
undef($Apache::lonhomework::scantronmode); |
undef($Apache::lonhomework::ignore_response_errors); |
undef($Apache::lonhomework::ignore_response_errors); |
|
undef(@Apache::functionplotresponse::callscripts); |
&Apache::lonhomework::reset_show_problem_status(); |
&Apache::lonhomework::reset_show_problem_status(); |
} |
} |
|
|
Line 1026 sub start_problem {
|
Line 1017 sub start_problem {
|
if ($target eq 'analyze') { my $rndseed=&setup_rndseed($safeeval,$target); } |
if ($target eq 'analyze') { my $rndseed=&setup_rndseed($safeeval,$target); } |
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || |
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || |
$target eq 'tex') { |
$target eq 'tex') { |
#handle exam checkout |
|
if ($Apache::lonhomework::type eq 'exam') { |
|
my $token= |
|
$Apache::lonhomework::history{"resource.0.outtoken"}; |
|
if (($env{'form.doescheckout'}) && (!$token)) { |
|
$token=&Apache::lonxml::maketoken(); |
|
$Apache::lonhomework::history{"resource.0.outtoken"}= |
|
$token; |
|
} |
|
$result.=&Apache::lonxml::printtokenheader($target,$token); |
|
} |
|
if ($env{'form.markaccess'}) { |
if ($env{'form.markaccess'}) { |
my @interval=&Apache::lonnet::EXT("resource.0.interval"); |
my @interval=&Apache::lonnet::EXT("resource.0.interval"); |
&Apache::lonnet::set_first_access($interval[1]); |
&Apache::lonnet::set_first_access($interval[1]); |
Line 1162 sub start_problem {
|
Line 1142 sub start_problem {
|
$result .= '<input type="hidden" name="grade_'.$field. |
$result .= '<input type="hidden" name="grade_'.$field. |
'" value="'.$env{"form.grade_$field"}.'" />'."\n"; |
'" value="'.$env{"form.grade_$field"}.'" />'."\n"; |
} |
} |
foreach my $field ('questiontype','rndseed') { |
foreach my $field ('trial','questiontype') { |
if ($env{"form.grade_$field"} ne '') { |
if ($env{"form.grade_$field"} ne '') { |
$result .= '<input type="hidden" name="grade_'.$field. |
$result .= '<input type="hidden" name="grade_'.$field. |
'" value="'.$env{"form.grade_$field"}.'" />'."\n"; |
'" value="'.$env{"form.grade_$field"}.'" />'."\n"; |
} |
} |
} |
} |
|
|
} |
} |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$result .= 'INSERTTEXFRONTMATTERHERE'; |
$result .= 'INSERTTEXFRONTMATTERHERE'; |
Line 1341 sub end_problem {
|
Line 1320 sub end_problem {
|
} |
} |
} |
} |
} |
} |
|
if ($target eq 'web') { |
|
$result.=&Apache::functionplotresponse::init_script(); |
|
} |
if ($target eq 'grade') { |
if ($target eq 'grade') { |
&Apache::lonhomework::showhash(%Apache::lonhomework::results); |
&Apache::lonhomework::showhash(%Apache::lonhomework::results); |
&finalize_storage(); |
&finalize_storage(); |
Line 1842 sub ordered_show_check {
|
Line 1824 sub ordered_show_check {
|
return $in_order_show; |
return $in_order_show; |
} |
} |
|
|
|
|
sub start_startpartmarker { |
sub start_startpartmarker { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my $result=''; |
my $result=''; |
Line 1850 sub start_startpartmarker {
|
Line 1833 sub start_startpartmarker {
|
$result.=&mt('Marker for the start of a part. Place end marker below to wrap in-between tags into a new part.').'</td></tr>'; |
$result.=&mt('Marker for the start of a part. Place end marker below to wrap in-between tags into a new part.').'</td></tr>'; |
$result.=&Apache::edit::end_table(); |
$result.=&Apache::edit::end_table(); |
|
|
} |
} |
return $result; |
return $result; |
} |
} |
|
|
Line 1880 sub end_endpartmarker {
|
Line 1863 sub end_endpartmarker {
|
return @result; |
return @result; |
} |
} |
|
|
|
|
|
|
|
|
|
|
sub start_part { |
sub start_part { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; |
if (!$Apache::lonxml::metamode) { |
if (!$Apache::lonxml::metamode) { |
Line 1970 sub start_part {
|
Line 1957 sub start_part {
|
} |
} |
} elsif ($target eq 'web') { |
} elsif ($target eq 'web') { |
if ($status eq 'CAN_ANSWER') { |
if ($status eq 'CAN_ANSWER') { |
my $problemstatus = &get_problem_status($Apache::inputtags::part); |
my $problemstatus = &get_problem_status($Apache::inputtags::part); |
my $probrandomize = &Apache::lonnet::EXT("resource.$Apache::inputtags::partlist[0].type"); |
my $probrandomize = &Apache::lonnet::EXT("resource.$Apache::inputtags::partlist[0].type"); |
my $probrandtries = &Apache::lonnet::EXT("resource.$Apache::inputtags::partlist[0].randomizeontries"); |
my $probrandtries = &Apache::lonnet::EXT("resource.$Apache::inputtags::partlist[0].randomizeontries"); |
my $num = scalar(@Apache::inputtags::partlist)-1; |
my $num = scalar(@Apache::inputtags::partlist)-1; |
Line 1988 sub start_part {
|
Line 1975 sub start_part {
|
$result .= &randomizetry_part_header($problemstatus,$reqtries,$num); |
$result .= &randomizetry_part_header($problemstatus,$reqtries,$num); |
} |
} |
} |
} |
$result.='<a name="'.&escape($Apache::inputtags::part).'"></a>'; |
$result.='<a name="'.&escape($Apache::inputtags::part).'" ></a>'; |
} |
} |
} |
} |
} |
} |
Line 2202 sub end_startouttext {
|
Line 2189 sub end_startouttext {
|
.'</span></td>' |
.'</span></td>' |
.'<td align="left"><span id="math_'.$areaid.'" />' |
.'<td align="left"><span id="math_'.$areaid.'" />' |
.&Apache::lonhtmlcommon::dragmath_button($areaid,1) |
.&Apache::lonhtmlcommon::dragmath_button($areaid,1) |
.'</td>' |
.'<span></td>' |
.'<td>' |
.'<td>' |
.&Apache::edit::insertlist($target,$token) |
.&Apache::edit::insertlist($target,$token) |
.'</td>' |
.'</td>' |