--- loncom/homework/imageresponse.pm 2005/06/21 21:00:55 1.71 +++ loncom/homework/imageresponse.pm 2006/03/09 01:11:12 1.74 @@ -2,7 +2,7 @@ # The LearningOnline Network with CAPA # image click response style # -# $Id: imageresponse.pm,v 1.71 2005/06/21 21:00:55 albertel Exp $ +# $Id: imageresponse.pm,v 1.74 2006/03/09 01:11:12 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -63,12 +63,25 @@ sub start_imageresponse { sub end_imageresponse { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; - &Apache::response::end_response; - pop @Apache::lonxml::namespace; + + pop(@Apache::lonxml::namespace); &Apache::lonxml::deregister('Apache::imageresponse',('foilgroup','foil','text','image','rectangle','conceptgroup')); + my $result; - if ($target eq 'edit') { $result=&Apache::edit::end_table(); } + if ($target eq 'edit') { + $result=&Apache::edit::end_table(); + } elsif ($target eq 'tex') { + $result=&Apache::inputtags::exam_score_line($target); + } + undef(%Apache::response::foilnames); + + if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' || + $target eq 'tex' || $target eq 'analyze') { + &Apache::lonxml::increment_counter(&Apache::response::repetition()); + } + &Apache::response::end_response(); + return $result; } @@ -238,10 +251,18 @@ sub clean_up_image { sub gradefoils { my (@whichopt) = @_; + + my $partid = $Apache::inputtags::part; + my $id = $Apache::inputtags::response['-1']; + + if ($Apache::lonhomework::type eq 'exam') { + &Apache::response::scored_response($partid,$id); + return; + } + my $x; my $y; my $result; - my $id=$Apache::inputtags::response['-1']; my $temp=1; foreach my $name (@whichopt) { $x=$env{"form.HWVAL_$id:$temp.x"}; @@ -280,7 +301,7 @@ sub gradefoils { &Apache::response::handle_previous(\%previous,$result); $Apache::lonhomework::results{"resource.$part.$id.submission"}=$responsestr; $Apache::lonhomework::results{"resource.$part.$id.awarddetail"}=$result; - return ''; + return; } sub end_foilgroup { @@ -347,7 +368,7 @@ 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) { + if ($name eq "") { &Apache::lonxml::warning("Foils without names exist. This can cause problems to malfunction."); $name=$Apache::lonxml::curdepth; } @@ -391,7 +412,7 @@ sub start_text { if ($target eq 'web' || $target eq 'tex' || $target eq 'analyze') { &Apache::lonxml::startredirection; } elsif ($target eq 'edit') { - my $descr=&Apache::lonxml::get_all_text('/text',$parser); + my $descr=&Apache::lonxml::get_all_text('/text',$parser,$style); $result=&Apache::edit::tag_start($target,$token,'Task Description'). &Apache::edit::editfield($token->[1],$descr,'Text',60,2). &Apache::edit::end_row(); @@ -425,7 +446,7 @@ sub start_image { if ($target eq 'web' || $target eq 'tex' || $target eq 'analyze') { &Apache::lonxml::startredirection; } elsif ($target eq 'edit') { - my $bgimg=&Apache::lonxml::get_all_text('/image',$parser); + my $bgimg=&Apache::lonxml::get_all_text('/image',$parser,$style); $Apache::edit::bgimgsrc=$bgimg; $Apache::edit::bgimgsrcdepth=$Apache::lonxml::curdepth; @@ -502,7 +523,7 @@ sub start_rectangle { $target eq 'analyze') { &Apache::lonxml::startredirection; } elsif ($target eq 'edit') { - my $coords=&Apache::lonxml::get_all_text('/rectangle',$parser); + my $coords=&Apache::lonxml::get_all_text('/rectangle',$parser,$style); $result=&Apache::edit::tag_start($target,$token,'Rectangle'). &Apache::edit::editline($token->[1],$coords,'Coordinate Pairs',40). &Apache::edit::entercoord(undef,'textnode',undef,undef,'box'). @@ -556,7 +577,7 @@ sub start_polygon { $target eq 'analyze') { &Apache::lonxml::startredirection; } elsif ($target eq 'edit') { - my $coords=&Apache::lonxml::get_all_text('/polygon',$parser); + my $coords=&Apache::lonxml::get_all_text('/polygon',$parser,$style); $result=&Apache::edit::tag_start($target,$token,'Polygon'). &Apache::edit::editline($token->[1],$coords,'Coordinate list',40). &Apache::edit::entercoord(undef,'textnode',undef,undef,'polygon').