--- loncom/homework/imageresponse.pm 2004/11/13 16:28:21 1.57 +++ loncom/homework/imageresponse.pm 2005/01/31 23:09:55 1.61 @@ -1,7 +1,8 @@ + # The LearningOnline Network with CAPA # image click response style # -# $Id: imageresponse.pm,v 1.57 2004/11/13 16:28:21 albertel Exp $ +# $Id: imageresponse.pm,v 1.61 2005/01/31 23:09:55 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -119,7 +120,7 @@ sub prep_image { my ($x,$y)=split(/:/,$Apache::lonhomework::history{"resource.$part.$respid.submission"}); #draws 2 xs on the image at the clicked location #one in white and then one in red on top of the one in white - if (defined($x) && $x=~/\S/ && defined($y) && $y =~/\S/) { + if (defined($x) && $x=~/\S/ && defined($y) && $y =~/\S/ && !&Apache::response::show_answer()) { my $length = 6; my $width = 1; my $extrawidth = 2; @@ -130,19 +131,19 @@ sub prep_image { $x{"cgi.$id.OBJTYPE"}.='LINE:'; $i=$x{"cgi.$id.OBJCOUNT"}++; - $x{"cgi.$id.OBJ$i"}=join(':',(($x),($ymin),($x),($ymax), + $x{"cgi.$id.OBJ$i"}=join(':',(($xmin),($ymin),($xmax),($ymax), "FFFFFF",($width+$extrawidth))); $x{"cgi.$id.OBJTYPE"}.='LINE:'; $i=$x{"cgi.$id.OBJCOUNT"}++; - $x{"cgi.$id.OBJ$i"}=join(':',(($xmin),($y),($xmax),($y), + $x{"cgi.$id.OBJ$i"}=join(':',(($xmin),($ymax),($xmax),($ymin), "FFFFFF",($width+$extrawidth))); $x{"cgi.$id.OBJTYPE"}.='LINE:'; $i=$x{"cgi.$id.OBJCOUNT"}++; - $x{"cgi.$id.OBJ$i"}=join(':',(($x),($ymin),($x),($ymax), + $x{"cgi.$id.OBJ$i"}=join(':',(($xmin),($ymin),($xmax),($ymax), "FF0000",($width))); $x{"cgi.$id.OBJTYPE"}.='LINE:'; $i=$x{"cgi.$id.OBJCOUNT"}++; - $x{"cgi.$id.OBJ$i"}=join(':',(($xmin),($y),($xmax),($y), + $x{"cgi.$id.OBJ$i"}=join(':',(($xmin),($ymax),($xmax),($ymin), "FF0000",($width))); } if ($mode eq 'answer') { @@ -269,10 +270,14 @@ sub gradefoils { $temp++; } } + my $responsestr="$x:$y"; + my $part=$Apache::inputtags::part; + my %previous=&Apache::response::check_for_previous($responsestr,$part,$id); if ($result && $Apache::lonhomework::type eq 'survey') { $result='SUBMITTED'; } - $Apache::lonhomework::results{"resource.$Apache::inputtags::part.$id.submission"}="$x:$y"; - $Apache::lonhomework::results{"resource.$Apache::inputtags::part.$id.awarddetail"}=$result; + &Apache::response::handle_previous(\%previous,$result); + $Apache::lonhomework::results{"resource.$part.$id.submission"}=$responsestr; + $Apache::lonhomework::results{"resource.$part.$id.awarddetail"}=$result; return ''; } @@ -339,7 +344,10 @@ sub start_foil { if ($target eq 'web' || $target eq 'grade' || $target eq 'tex' || $target eq 'analyze') { my $name = &Apache::lonxml::get_param('name',$parstack,$safeeval); - if ($name eq '') { $name=$Apache::lonxml::curdepth; } + if (!$name) { + &Apache::lonxml::error("Foils without names exist. This can cause problems to malfunction."); + $name=$Apache::lonxml::curdepth; + } if (defined($Apache::response::foilnames{$name})) { &Apache::lonxml::error(&mt("Foil name [_1] appears more than once. Foil names need to be unique.",$name)); }