--- loncom/homework/imageresponse.pm 2007/09/25 23:58:32 1.88 +++ loncom/homework/imageresponse.pm 2008/02/01 22:05:45 1.92 @@ -1,8 +1,8 @@ - +# # The LearningOnline Network with CAPA # image click response style # -# $Id: imageresponse.pm,v 1.88 2007/09/25 23:58:32 albertel Exp $ +# $Id: imageresponse.pm,v 1.92 2008/02/01 22:05:45 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -59,6 +59,7 @@ sub start_imageresponse { $result=&Apache::response::meta_package_write('imageresponse'); } elsif ($target eq 'analyze') { my $part_id="$Apache::inputtags::part.$id"; + $Apache::lonhomework::analyze{"$part_id.type"} = 'imageresponse'; push (@{ $Apache::lonhomework::analyze{"parts"} },$part_id); push (@{ $Apache::lonhomework::analyze{"$part_id.bubble_lines"} }, 1); @@ -79,6 +80,9 @@ sub start_imageresponse { sub end_imageresponse { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; + my $part_id = $Apache::inputtags::part; + my $response_id = $Apache::inputtags::response[-1]; + pop(@Apache::lonxml::namespace); &Apache::lonxml::deregister('Apache::imageresponse',('foilgroup','foil','text','image','rectangle','conceptgroup')); @@ -94,7 +98,12 @@ sub end_imageresponse { if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' || $target eq 'tex' || $target eq 'analyze') { - &Apache::lonxml::increment_counter(&Apache::response::repetition()); + &Apache::lonxml::increment_counter(&Apache::response::repetition(), + "$part_id.$response_id"); + if ($target eq 'analyze') { + &Apache::lonhomework::set_bubble_lines(); + } + } &Apache::response::end_response(); @@ -229,7 +238,8 @@ sub displayfoils { if ($target eq 'tex') {$result.="\\vskip 0 mm \n";} else {$result.="
\n";} my $image=$Apache::response::foilgroup{"$name.image"}; &Apache::lonxml::debug("image is $image"); - if ( $target eq 'web' && $image !~ /^http:/ ) { + if ( ($target eq 'web' || $target eq 'answer') + && $image !~ /^http:/ ) { $image=&clean_up_image($image); } push(@images,$image); @@ -294,7 +304,8 @@ sub display_answers { foreach my $name (@$whichopt) { my $image=$Apache::response::foilgroup{"$name.image"}; &Apache::lonxml::debug("image is $image"); - if ( $target eq 'web' && $image !~ /^http:/ ) { + if ( ($target eq 'web' || $target eq 'answer') + && $image !~ /^http:/ ) { $image = &clean_up_image($image); } my $token=&prep_image($image,'answeronly',$name);