--- loncom/homework/imageresponse.pm 2004/01/28 20:00:26 1.46 +++ loncom/homework/imageresponse.pm 2004/02/18 00:23:01 1.48 @@ -2,7 +2,7 @@ # The LearningOnline Network with CAPA # image click response style # -# $Id: imageresponse.pm,v 1.46 2004/01/28 20:00:26 sakharuk Exp $ +# $Id: imageresponse.pm,v 1.48 2004/02/18 00:23:01 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -113,26 +113,31 @@ sub prep_image { my $respid=$Apache::inputtags::response['-1']; my $id=&Apache::loncommon::get_cgi_id(); my %x; - $x{"cgi.$id.BGIMG"}=$image; + $x{"cgi.$id.BGIMG"}=&Apache::lonnet::escape($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) && defined($y)) { + if (defined($x) && $x=~/\S/ && defined($y) && $y =~/\S/) { $x{"cgi.$id.LINECOUNT"}=4; my $length = 6; my $width = 1; my $extrawidth = 2; + my $xmin=($x-$length); + my $xmax=($x+$length); + my $ymin=($y-$length); + my $ymax=($y+$length); + $x{"cgi.$id.LINE0"}= - join(':',(($x-$length),($y-$length),($x+$length),($y+$length), + join(':',(($xmin),($ymin),($xmax),($ymax), "FFFFFF",($width+$extrawidth))); $x{"cgi.$id.LINE1"}= - join(':',(($x-$length),($y+$length),($x+$length),($y-$length), + join(':',(($xmin),($ymax),($xmax),($ymin), "FFFFFF",($width+$extrawidth))); $x{"cgi.$id.LINE2"}= - join(':',(($x-$length),($y-$length),($x+$length),($y+$length), + join(':',(($xmin),($ymin),($xmax),($ymax), "FF0000",($width))); $x{"cgi.$id.LINE3"}= - join(':',(($x-$length),($y+$length),($x+$length),($y-$length), + join(':',(($xmin),($ymax),($xmax),($ymin), "FF0000",($width))); } if ($mode eq 'answer') { @@ -174,11 +179,8 @@ sub displayfoils { my $image=$Apache::response::foilgroup{"$name.image"}; &Apache::lonxml::debug("image is $image"); if ( $target eq 'web' && $image !~ /^http:/ ) { - $image=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$image); - if (&Apache::lonnet::repcopy($image) ne OK) { - $image='/home/httpd/html/adm/lonKaputt/lonlogo_broken.gif'; - } - } + $image=&clean_up_image($image); + } &Apache::lonxml::debug("image is $image"); if ( &Apache::response::show_answer() ) { if ($target eq 'tex') { @@ -203,6 +205,25 @@ sub displayfoils { return $result; } +sub clean_up_image { + my ($image)=@_; + if ($image =~ /\s*