--- loncom/homework/bridgetask.pm	2006/04/10 18:08:11	1.139
+++ loncom/homework/bridgetask.pm	2006/05/09 15:09:21	1.144
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA 
 # definition of tags that give a structure to a document
 #
-# $Id: bridgetask.pm,v 1.139 2006/04/10 18:08:11 albertel Exp $
+# $Id: bridgetask.pm,v 1.144 2006/05/09 15:09:21 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -170,8 +170,8 @@ sub add_grading_button {
     my (undef,$cid)=&Apache::lonxml::whichuser();
     my $cnum=$env{'course.'.$cid.'.num'};
     my $cdom=$env{'course.'.$cid.'.domain'};
-    my %sections;
-    my $numsections=&Apache::loncommon::get_sections($cdom,$cnum,\%sections);
+    my %sections = &Apache::loncommon::get_sections($cdom,$cnum);
+
     my $size=5;
     if (scalar(keys(%sections)) < 3) {
 	$size=scalar(keys(%sections))+2;
@@ -214,7 +214,7 @@ sub add_grading_button {
 						   'gradingdomain');
 	$result.=&Apache::loncommon::studentbrowser_javascript();
 	$result.= '</p>';
-  }
+    }
     return $result;
 }
 
@@ -349,12 +349,15 @@ sub webgrade_standard_info {
 
     my %lt=&Apache::lonlocal::texthash('done' => 'Next Item',
 				       'stop' => 'Quit Grading',
+				       'fail' => 'Fail Rest',
 				       );
 				       
     my $result=<<INFO;
   <div class="LC_GRADING_maincontrols">
     <input type="submit" name="next" value="$lt{'done'}" />
     <input type="submit" name="stop" value="$lt{'stop'}" />
+    <input type="button" name="fail" value="$lt{'fail'}" 
+           onclick="javascript:onFailRest()" />
   </div>
   $file_list
 INFO
@@ -375,28 +378,28 @@ sub start_Task {
     } 
 
     $Apache::lonhomework::parsing_a_task=1;
-    #should get back a <html> or the neccesary stuff to start XML/MathML
-    my ($result,$head_tag_start,$body_tag_start,$form_tag_start)=
-	&Apache::structuretags::page_start($target,$token,$tagstack,$parstack,$parser,$safeeval);
-    
-    $head_tag_start .= &style($target);
-    $body_tag_start .= '<div class="LC_task">'."\n";
 
+    my $name;
     if ($target eq 'web' || $target eq 'webgrade') {
-	$head_tag_start.='<title>'.
-	    &Apache::structuretags::get_resource_name($parstack,$safeeval).
-	    '</title>';
+	$name = &Apache::structuretags::get_resource_name($parstack,$safeeval);
     }
 
+    my ($result,$form_tag_start)=
+	&Apache::structuretags::page_start($target,$token,$tagstack,$parstack,
+					   $parser,$safeeval,$name,&style());
+    
+    $result .= '<div class="LC_task">'."\n";
+
+
     if ($target eq 'web' && $env{'request.state'} ne 'construct') {
 	if ($Apache::lonhomework::modifygrades) {
-	    $body_tag_start.='<form name="gradesubmission" method="post" action="';
+	    $result.='<form name="gradesubmission" method="post" action="';
 	    my $uri=$env{'request.uri'};
 	    if ($env{'request.enc'}) { $uri=&Apache::lonenc::encrypted($uri); }
-	    $body_tag_start.=$uri.'">'.&add_grading_button()."</form>";
+	    $result.=$uri.'">'.&add_grading_button()."</form>";
 	    my $symb=&Apache::lonnet::symbread();
 	    if (&Apache::lonnet::allowed('mgq',$env{'request.course.id'})) {
-		$body_tag_start.='<form method="post" name="slotrequest" action="/adm/slotrequest">'.
+		$result.='<form method="post" name="slotrequest" action="/adm/slotrequest">'.
 		    '<input type="hidden" name="symb" value="'.$symb.'" />'.
 		    '<input type="hidden" name="command" value="showslots" />'.
 		    '<input type="submit" name="requestattempt" value="'.
@@ -405,7 +408,7 @@ sub start_Task {
 		my $target_id = 
 		    &Apache::lonstathelpers::make_target_id({symb => $symb,
 							     part => '0'});
-		$body_tag_start.='<form method="post" name="gradingstatus" action="/adm/statistics">'.
+		$result.='<form method="post" name="gradingstatus" action="/adm/statistics">'.
 		    '<input type="hidden" name="problemchoice" value="'.$target_id.'" />'.
 		    '<input type="hidden" name="reportSelected" value="grading_analysis" />'.
 		    '<input type="submit" name="grading" value="'.
@@ -428,11 +431,10 @@ sub start_Task {
 	$expression.='$external::gradestatus="'.$Apache::lonhomework::history{"resource.$version.0.solved"}.'";';
 	&Apache::run::run($expression,$safeeval);
 	&Apache::lonxml::debug("Got $status");
-	$body_tag_start.=&add_previous_version_button($status);
+	$result.=&add_previous_version_button($status);
 	if (!&show_task($status,$previous)) {
 	    my $bodytext=&Apache::lonxml::get_all_text("/task",$parser,$style);
 	    if ( $target eq "web" ) {
-		$result.= $head_tag_start.'</head>'.$body_tag_start;
 		if ($env{'request.state'} eq 'construct') {
 		    $result.=$form_tag_start;
 		}
@@ -497,9 +499,7 @@ DONESCREEN
 		}
 	    }
 	} elsif ($target eq 'web') {
-	    $result.="$head_tag_start</head>
-              $body_tag_start \n";
-	    
+
 	    $result.=&preserve_grade_info();
 	    $result.=&internal_location();
 	    $result.=$form_tag_start.
@@ -510,9 +510,7 @@ DONESCREEN
 	      $target eq 'webgrade') {
 	my $webgrade='yes';
 	if ($target eq 'webgrade') {
-	    $result.=$head_tag_start.
-		'</head>'.$body_tag_start.
-		"\n".'<div class="LC_GRADING_task">'."\n".
+	    $result.= "\n".'<div class="LC_GRADING_task">'."\n".
 		'<script type="text/javascript" 
                          src="/res/adm/includes/task_grading.js"></script>';
 	    #$result.='<br />Review'.&show_queue('reviewqueue');
@@ -596,7 +594,7 @@ DONESCREEN
 	    $result.="\n".'<div id="LC_GRADING_criterialist">';
 	}
     } elsif ($target eq 'edit') {
-	$result.=$head_tag_start."</head>".$body_tag_start.$form_tag_start.
+	$result.=$form_tag_start.
 	    &Apache::structuretags::problem_edit_header();
 	$Apache::lonxml::warnings_error_header=
 	    &mt("Editor Errors - these errors might not effect the running of the problem, but they will likely cause problems with further use of the Edit mode. Please use the EditXML mode to fix these errors.")."<br />";
@@ -844,7 +842,8 @@ DONEBUTTON
 		}
 	    } 
 	    if ($target eq 'web') {
-		$result.="\n</div>\n".&Apache::lonxml::xmlend().'</html>';
+		$result.="\n</div>\n".
+		    &Apache::loncommon::end_page({'discussion' => 1});
 	    }
 	}
 	if ($target eq 'grade' && !$env{'form.webgrade'} && !$previous) {
@@ -984,7 +983,7 @@ DONEBUTTON
 	#$result.='<input type="submit" name="save" value="'.
 	#    &mt('Save Partial Grade and Continue Grading').'" /> ';
 	$result.='</form>'."\n</div>\n</div>\n".
-	    &Apache::loncommon::endbodytag().'</html>';
+	    &Apache::loncommon::end_page();
     } elsif ($target eq 'meta') {
 	$result.=&Apache::response::meta_package_write('Task');
         $result.=&Apache::response::meta_stores_write('solved','string',