--- loncom/homework/imageresponse.pm 2004/01/14 22:59:18 1.44 +++ 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.44 2004/01/14 22:59:18 albertel Exp $ +# $Id: imageresponse.pm,v 1.48 2004/02/18 00:23:01 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -33,6 +33,7 @@ package Apache::imageresponse; use strict; use Image::Magick; use Apache::randomlylabel; +use Apache::londefdef; use Apache::Constants qw(:common :http); BEGIN { @@ -112,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') { @@ -173,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') { @@ -202,6 +205,25 @@ sub displayfoils { return $result; } +sub clean_up_image { + my ($image)=@_; + if ($image =~ /\s*new('>>'.$filename); - print $temp_file "$src\n"; - $Apache::response::foilgroup{"$name.image"} ='\vskip 0 mm \graphicspath{{/home/httpd/prtspool/}}\includegraphics[width='.$width_param.' mm]{'.$file.'} '; + #care about eps dynamical generation + $Apache::response::foilgroup{"$name.image"}='\vskip 0 mm '.&Apache::londefdef::eps_generation($src,$file,$width_param); } } return $result; @@ -597,6 +616,7 @@ sub end_polygon { $target eq 'analyze') { my $name = $Apache::imageresponse::curname; my $area = &Apache::lonxml::endredirection; + $area=~s/\s*//g; &Apache::lonxml::debug("out is $area for $name"); if ( $Apache::imageresponse::conceptgroup && !&Apache::response::showallfoils()) {