--- loncom/homework/bridgetask.pm 2006/11/14 23:04:56 1.207 +++ loncom/homework/bridgetask.pm 2006/11/27 20:42:42 1.208 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # definition of tags that give a structure to a document # -# $Id: bridgetask.pm,v 1.207 2006/11/14 23:04:56 albertel Exp $ +# $Id: bridgetask.pm,v 1.208 2006/11/27 20:42:42 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -380,6 +380,13 @@ sub nest { } } +sub start_delay { + push(@delay,1); +} +sub end_delay { + pop(@delay); +} + sub nested_parse { my ($str,$env,$args) = @_; my @old_env = @Apache::scripttag::parser_env; @@ -791,6 +798,9 @@ sub start_Task { if ($target eq 'webgrade') { $result.="\n".'
'; &Apache::lonxml::startredirection(); + &start_delay(); + $dimension{$top}{'result'}=$result; + undef($result); } } elsif ($target eq 'edit') { $result.=$form_tag_start. @@ -1257,7 +1267,13 @@ DONEBUTTON &Apache::structuretags::finalize_storage(); } } elsif ($target eq 'webgrade') { - $result.=&Apache::lonxml::endredirection(); + if (&nest()) { + &Apache::lonxml::endredirection(); + &end_delay(); + $result.=$dimension{$top}{'result'}; + } else { + $result.=&Apache::lonxml::endredirection(); + } my $dim = $top; foreach my $id (@{$dimension{$dim}{'criterias'}} ) { my $type = $dimension{$dim}{'criteria.'.$id.'.type'}; @@ -2101,6 +2117,7 @@ sub start_Dimension { $dimension{$top}{'criteria.'.$dim.'.mandatory'}= &Apache::lonxml::get_param('Mandatory',$parstack,$safeeval); push(@{$dimension{$top}{'criterias'}},$dim); + $dimension{$dim}{'nested'}=$top; } push(@Apache::bridgetask::dimension,$dim); &Apache::lonxml::startredirection(); @@ -2606,7 +2623,7 @@ sub start_Criteria { my $dim = &get_dim_id(); my $id=&get_id($parstack,$safeeval); if ($target eq 'web' || $target eq 'webgrade') { - if ($target eq 'webgrade' && $dim ne 'top') { + if ($target eq 'webgrade') { &Apache::lonxml::debug(" for $dim $id stashing results into $dim "); $dimension{$dim}{'result'} .= &internal_location($id); } else {