--- loncom/homework/bridgetask.pm	2007/02/22 21:40:40	1.226
+++ loncom/homework/bridgetask.pm	2007/02/23 17:14:20	1.228
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA 
 # definition of tags that give a structure to a document
 #
-# $Id: bridgetask.pm,v 1.226 2007/02/22 21:40:40 albertel Exp $
+# $Id: bridgetask.pm,v 1.228 2007/02/23 17:14:20 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -1332,9 +1332,7 @@ DONEBUTTON
 	$result.=&Apache::response::meta_stores_write('status','string',
 						      'Bridge Task Status');
     } elsif ($target eq 'edit') {
-	&Apache::structuretags::reset_problem_globals('Task');
-	undef($Apache::lonhomework::parsing_a_task);
-	return ('','no');
+	$result.= &Apache::structuretags::problem_edit_footer();
     }
     &Apache::structuretags::reset_problem_globals('Task');
     undef($Apache::lonhomework::parsing_a_task);
@@ -2078,13 +2076,8 @@ sub start_ClosingParagraph {
     } elsif ($target eq 'webgrade') {
 	&Apache::lonxml::startredirection();
     } elsif ($target eq 'edit') {
-	my $bodytext=&Apache::lonxml::get_all_text("/closingparagraph",
-						   $parser);
 	$result = &Apache::edit::tag_start($target,$token);
-	$result.= &Apache::edit::editfield($token->[1],$bodytext,'',80,4);
     } elsif ($target eq 'modified') {
-	$result = $token->[4].&Apache::edit::modifiedfield('/closingparagraph',
-							   $parser);
     }
     return $result;
 }
@@ -2099,6 +2092,14 @@ sub end_ClosingParagraph {
     return $result;
 }
 
+sub insert_ClosingParagraph {
+    return '
+<ClosingParagraph>
+    <startouttext />
+    <endouttext />
+</ClosingParagraph>';
+}
+
 sub get_dim_id {
     if (@Apache::bridgetask::dimension) {
 	return $Apache::bridgetask::dimension[-1];
@@ -2225,12 +2226,8 @@ sub start_QuestionText {
     my $dim = &get_dim_id();
 	$dimension{$dim}{'questiontext'}=$text;
     } elsif ($target eq 'edit') {
-	my $bodytext=&Apache::lonxml::get_all_text("/questiontext",$parser);
 	$result = &Apache::edit::tag_start($target,$token);
-	$result.= &Apache::edit::editfield($token->[1],$bodytext,'',80,4);
     } elsif ($target eq 'modified') {
-	$result = $token->[4].&Apache::edit::modifiedfield('/questiontext',
-							   $parser);
     }
     return $result;
 }
@@ -2239,6 +2236,14 @@ sub end_QuestionText {
     return '';
 }
 
+sub insert_QuestionText {
+    return '
+<QuestionText>
+    <startouttext />
+    <endouttext />
+</QuestionText>';
+}
+
 sub get_instance {
     my ($dim)=@_;
     my $rand_alg=&Apache::lonnet::get_rand_alg();
@@ -2707,12 +2712,8 @@ sub start_IntroParagraph {
 	}
 	
     } elsif ($target eq 'edit') {
-	my $bodytext=&Apache::lonxml::get_all_text("/introparagraph",$parser);
 	$result = &Apache::edit::tag_start($target,$token);
-	$result.= &Apache::edit::editfield($token->[1],$bodytext,'',80,4);
     } elsif ($target eq 'modified') {
-	$result = $token->[4].&Apache::edit::modifiedfield('/introparagraph',
-							   $parser);
     }
     return $result;
 }
@@ -2724,6 +2725,14 @@ sub end_IntroParagraph {
     }
 }
 
+sub insert_IntroParagraph {
+    return '
+<IntroParagraph>
+    <startouttext />
+    <endouttext />
+</IntroParagraph>';
+}
+
 sub start_Instance {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
     my $dim = &get_dim_id();
@@ -2780,12 +2789,8 @@ sub start_InstanceText {
 	my $instance_id=$Apache::bridgetask::instance{$dim}[-1];
 	$dimension{$dim}{$instance_id.'.text'}=$text;
     } elsif ($target eq 'edit') {
-	my $bodytext=&Apache::lonxml::get_all_text("/instancetext",$parser);
 	$result = &Apache::edit::tag_start($target,$token);
-	$result.= &Apache::edit::editfield($token->[1],$bodytext,'',80,4);
     } elsif ($target eq 'modified') {
-	$result = $token->[4].&Apache::edit::modifiedfield('/instancetext',
-							   $parser);
     }
     return $result;
 }
@@ -2794,6 +2799,14 @@ sub end_InstanceText {
     return '';
 }
 
+sub insert_InstanceText {
+    return '
+<InstanceText>
+    <startouttext />
+    <endouttext />
+</InstanceText>';
+}
+
 sub start_Criteria {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
     my $result = '';
@@ -2826,35 +2839,6 @@ sub start_Criteria {
 	    push(@{$dimension{$dim}{'criterias'}},$id);
 	}
     } elsif ($target eq 'edit') {
-	if (0) {
-	    $result = &Apache::edit::tag_start($target,$token);
-	    my $text=&Apache::lonxml::get_all_text("/criteria",$parser);
-	    &Apache::lonnet::logthis("get_all_text criteria \n$text");
-	    my $local_parser = HTML::LCParser->new(\$text);
-	    $local_parser->xml_mode(1);
-	    $local_parser->marked_sections(1);
-	    while (1) {
-		my $criteria_text = 
-		    &Apache::lonxml::get_all_text('gradernote',$local_parser);
-		$result.=
-		    &Apache::edit::editfield($token->[1],$criteria_text,'',80,4);
-		
-		# check for a <GraderNote> next might be end
-		my $token = $local_parser->get_token();
-		# is the end
-		last if (!$token);
-		my $gradernote = &Apache::lonxml::get_all_text('/gradernote',
-							       $local_parser);
-		# purge the end tag
-		my $token = $local_parser->get_token();
-		$gradernote = '<GraderNote>'.$gradernote.'</GraderNote>';
-		@Apache::scripttag::parser_env = @_;
-		$result .= 
-		    &Apache::edit::end_row().&Apache::edit::start_spanning_row().
-		    &Apache::scripttag::xmlparse($gradernote).
-		    &Apache::edit::end_row().&Apache::edit::start_spanning_row();
-	    }
-	}
 	$result .=&Apache::edit::tag_start($target,$token);
 	$result.=  
 	    &Apache::edit::text_arg('Id:','id',$token,10).' '.
@@ -2960,6 +2944,15 @@ sub end_Criteria {
     } elsif ($target eq 'modified') {
     }
 }
+sub insert_Criteria {
+    return '
+<Criteria>
+    <CriteriaText>
+        <startouttext />
+        <endouttext />
+    </CriteriaText>
+</Criteria>';
+}
 
 sub start_CriteriaText {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
@@ -2967,12 +2960,8 @@ sub start_CriteriaText {
     if ($target eq 'grade' || $target eq 'web' || $target eq 'webgrade') {
 	
     } elsif ($target eq 'edit') {
-	my $bodytext=&Apache::lonxml::get_all_text("/criteriatext",$parser);
 	$result = &Apache::edit::tag_start($target,$token);
-	$result.= &Apache::edit::editfield($token->[1],$bodytext,'',80,4);
     } elsif ($target eq 'modified') {
-	$result = $token->[4].&Apache::edit::modifiedfield('/criteriatext',
-							   $parser);
     }
     return $result;
 }
@@ -2981,6 +2970,14 @@ sub end_CriteriaText {
     return '';
 }
 
+sub insert_CriteriaText {
+    return '
+<CriteriaText>
+    <startouttext />
+    <endouttext />
+</CriteriaText>';
+}
+
 sub start_GraderNote {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
     my $result;
@@ -2988,12 +2985,8 @@ sub start_GraderNote {
 	$result = '<div class="LC_GRADING_gradernote"><b>'.
 	    &mt('Note to graders:').'</b>';
     } elsif ($target eq 'edit') {
-	my $bodytext=&Apache::lonxml::get_all_text("/gradernote",$parser);
 	$result = &Apache::edit::tag_start($target,$token);
-	$result.= &Apache::edit::editfield($token->[1],$bodytext,'',80,4);
     } elsif ($target eq 'modified') {
-	$result = $token->[4].&Apache::edit::modifiedfield('/gradernote',
-							   $parser);
     } elsif ($target eq 'web' || $target eq 'grade') {
 	my $note=&Apache::lonxml::get_all_text('/gradernote',$parser,$style); 
     }
@@ -3009,6 +3002,13 @@ sub end_GraderNote {
     return;
 }
 
+sub insert_GraderNote {
+    return '
+<GraderNote>
+    <startouttext />
+    <endouttext />
+</GraderNote>';
+}
 
 
 sub proctor_validation_screen {