Diff for /loncom/homework/bridgetask.pm between versions 1.225 and 1.230

version 1.225, 2007/02/18 02:04:04 version 1.230, 2007/04/06 21:22:24
Line 38  use Apache::lonlocal; Line 38  use Apache::lonlocal;
 use Apache::lonxml;  use Apache::lonxml;
 use Apache::slotrequest();  use Apache::slotrequest();
 use Time::HiRes qw( gettimeofday tv_interval );  use Time::HiRes qw( gettimeofday tv_interval );
 use lib '/home/httpd/lib/perl/';  
 use LONCAPA;  use LONCAPA;
     
   
Line 1332  DONEBUTTON Line 1331  DONEBUTTON
  $result.=&Apache::response::meta_stores_write('status','string',   $result.=&Apache::response::meta_stores_write('status','string',
       'Bridge Task Status');        'Bridge Task Status');
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
  &Apache::structuretags::reset_problem_globals('Task');   $result.= &Apache::structuretags::problem_edit_footer();
  undef($Apache::lonhomework::parsing_a_task);  
  return ('','no');  
     }      }
     &Apache::structuretags::reset_problem_globals('Task');      &Apache::structuretags::reset_problem_globals('Task');
     undef($Apache::lonhomework::parsing_a_task);      undef($Apache::lonhomework::parsing_a_task);
Line 2078  sub start_ClosingParagraph { Line 2075  sub start_ClosingParagraph {
     } elsif ($target eq 'webgrade') {      } elsif ($target eq 'webgrade') {
  &Apache::lonxml::startredirection();   &Apache::lonxml::startredirection();
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
  my $bodytext=&Apache::lonxml::get_all_text("/closingparagraph",  
    $parser);  
  $result = &Apache::edit::tag_start($target,$token);   $result = &Apache::edit::tag_start($target,$token);
  $result.= &Apache::edit::editfield($token->[1],$bodytext,'',80,4);  
     } elsif ($target eq 'modified') {      } elsif ($target eq 'modified') {
  $result = $token->[4].&Apache::edit::modifiedfield('/closingparagraph',  
    $parser);  
     }      }
     return $result;      return $result;
 }  }
Line 2099  sub end_ClosingParagraph { Line 2091  sub end_ClosingParagraph {
     return $result;      return $result;
 }  }
   
   sub insert_ClosingParagraph {
       return '
   <ClosingParagraph>
       <startouttext />
       <endouttext />
   </ClosingParagraph>';
   }
   
 sub get_dim_id {  sub get_dim_id {
     if (@Apache::bridgetask::dimension) {      if (@Apache::bridgetask::dimension) {
  return $Apache::bridgetask::dimension[-1];   return $Apache::bridgetask::dimension[-1];
Line 2225  sub start_QuestionText { Line 2225  sub start_QuestionText {
     my $dim = &get_dim_id();      my $dim = &get_dim_id();
  $dimension{$dim}{'questiontext'}=$text;   $dimension{$dim}{'questiontext'}=$text;
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
  my $bodytext=&Apache::lonxml::get_all_text("/questiontext",$parser);  
  $result = &Apache::edit::tag_start($target,$token);   $result = &Apache::edit::tag_start($target,$token);
  $result.= &Apache::edit::editfield($token->[1],$bodytext,'',80,4);  
     } elsif ($target eq 'modified') {      } elsif ($target eq 'modified') {
  $result = $token->[4].&Apache::edit::modifiedfield('/questiontext',  
    $parser);  
     }      }
     return $result;      return $result;
 }  }
Line 2239  sub end_QuestionText { Line 2235  sub end_QuestionText {
     return '';      return '';
 }  }
   
   sub insert_QuestionText {
       return '
   <QuestionText>
       <startouttext />
       <endouttext />
   </QuestionText>';
   }
   
 sub get_instance {  sub get_instance {
     my ($dim)=@_;      my ($dim)=@_;
     my $rand_alg=&Apache::lonnet::get_rand_alg();      my $rand_alg=&Apache::lonnet::get_rand_alg();
Line 2383  sub end_Dimension { Line 2387  sub end_Dimension {
     }      }
  }   }
  # puts the results at the end of the dimension   # puts the results at the end of the dimension
  $result .= $dim_info;   if ($result =~m{<QuestionGradeInfo\s*/>}) {
       $result=~s{<QuestionGradeInfo\s*/>}{$dim_info};
    } else {
       $result .= $dim_info;
    }
  # puts the results at the beginning of the dimension   # puts the results at the beginning of the dimension
  # my $internal_location=&internal_location($dim);   # my $internal_location=&internal_location($dim);
  # $result=~s/\Q$internal_location\E/$dim_info/;   # $result=~s/\Q$internal_location\E/$dim_info/;
Line 2704  sub start_IntroParagraph { Line 2711  sub start_IntroParagraph {
  }   }
   
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
  my $bodytext=&Apache::lonxml::get_all_text("/introparagraph",$parser);  
  $result = &Apache::edit::tag_start($target,$token);   $result = &Apache::edit::tag_start($target,$token);
  $result.= &Apache::edit::editfield($token->[1],$bodytext,'',80,4);  
     } elsif ($target eq 'modified') {      } elsif ($target eq 'modified') {
  $result = $token->[4].&Apache::edit::modifiedfield('/introparagraph',  
    $parser);  
     }      }
     return $result;      return $result;
 }  }
Line 2721  sub end_IntroParagraph { Line 2724  sub end_IntroParagraph {
     }      }
 }  }
   
   sub insert_IntroParagraph {
       return '
   <IntroParagraph>
       <startouttext />
       <endouttext />
   </IntroParagraph>';
   }
   
 sub start_Instance {  sub start_Instance {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
     my $dim = &get_dim_id();      my $dim = &get_dim_id();
Line 2777  sub start_InstanceText { Line 2788  sub start_InstanceText {
  my $instance_id=$Apache::bridgetask::instance{$dim}[-1];   my $instance_id=$Apache::bridgetask::instance{$dim}[-1];
  $dimension{$dim}{$instance_id.'.text'}=$text;   $dimension{$dim}{$instance_id.'.text'}=$text;
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
  my $bodytext=&Apache::lonxml::get_all_text("/instancetext",$parser);  
  $result = &Apache::edit::tag_start($target,$token);   $result = &Apache::edit::tag_start($target,$token);
  $result.= &Apache::edit::editfield($token->[1],$bodytext,'',80,4);  
     } elsif ($target eq 'modified') {      } elsif ($target eq 'modified') {
  $result = $token->[4].&Apache::edit::modifiedfield('/instancetext',  
    $parser);  
     }      }
     return $result;      return $result;
 }  }
Line 2791  sub end_InstanceText { Line 2798  sub end_InstanceText {
     return '';      return '';
 }  }
   
   sub insert_InstanceText {
       return '
   <InstanceText>
       <startouttext />
       <endouttext />
   </InstanceText>';
   }
   
 sub start_Criteria {  sub start_Criteria {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
     my $result = '';      my $result = '';
Line 2823  sub start_Criteria { Line 2838  sub start_Criteria {
     push(@{$dimension{$dim}{'criterias'}},$id);      push(@{$dimension{$dim}{'criterias'}},$id);
  }   }
     } elsif ($target eq 'edit') {      } 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::tag_start($target,$token);
  $result.=     $result.=  
     &Apache::edit::text_arg('Id:','id',$token,10).' '.      &Apache::edit::text_arg('Id:','id',$token,10).' '.
Line 2957  sub end_Criteria { Line 2943  sub end_Criteria {
     } elsif ($target eq 'modified') {      } elsif ($target eq 'modified') {
     }      }
 }  }
   sub insert_Criteria {
       return '
   <Criteria>
       <CriteriaText>
           <startouttext />
           <endouttext />
       </CriteriaText>
   </Criteria>';
   }
   
 sub start_CriteriaText {  sub start_CriteriaText {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
Line 2964  sub start_CriteriaText { Line 2959  sub start_CriteriaText {
     if ($target eq 'grade' || $target eq 'web' || $target eq 'webgrade') {      if ($target eq 'grade' || $target eq 'web' || $target eq 'webgrade') {
   
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
  my $bodytext=&Apache::lonxml::get_all_text("/criteriatext",$parser);  
  $result = &Apache::edit::tag_start($target,$token);   $result = &Apache::edit::tag_start($target,$token);
  $result.= &Apache::edit::editfield($token->[1],$bodytext,'',80,4);  
     } elsif ($target eq 'modified') {      } elsif ($target eq 'modified') {
  $result = $token->[4].&Apache::edit::modifiedfield('/criteriatext',  
    $parser);  
     }      }
     return $result;      return $result;
 }  }
Line 2978  sub end_CriteriaText { Line 2969  sub end_CriteriaText {
     return '';      return '';
 }  }
   
   sub insert_CriteriaText {
       return '
   <CriteriaText>
       <startouttext />
       <endouttext />
   </CriteriaText>';
   }
   
 sub start_GraderNote {  sub start_GraderNote {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
     my $result;      my $result;
Line 2985  sub start_GraderNote { Line 2984  sub start_GraderNote {
  $result = '<div class="LC_GRADING_gradernote"><b>'.   $result = '<div class="LC_GRADING_gradernote"><b>'.
     &mt('Note to graders:').'</b>';      &mt('Note to graders:').'</b>';
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
  my $bodytext=&Apache::lonxml::get_all_text("/gradernote",$parser);  
  $result = &Apache::edit::tag_start($target,$token);   $result = &Apache::edit::tag_start($target,$token);
  $result.= &Apache::edit::editfield($token->[1],$bodytext,'',80,4);  
     } elsif ($target eq 'modified') {      } elsif ($target eq 'modified') {
  $result = $token->[4].&Apache::edit::modifiedfield('/gradernote',  
    $parser);  
     } elsif ($target eq 'web' || $target eq 'grade') {      } elsif ($target eq 'web' || $target eq 'grade') {
  my $note=&Apache::lonxml::get_all_text('/gradernote',$parser,$style);    my $note=&Apache::lonxml::get_all_text('/gradernote',$parser,$style); 
     }      }
Line 3006  sub end_GraderNote { Line 3001  sub end_GraderNote {
     return;      return;
 }  }
   
   sub insert_GraderNote {
       return '
   <GraderNote>
       <startouttext />
       <endouttext />
   </GraderNote>';
   }
   
   
 sub proctor_validation_screen {  sub proctor_validation_screen {
     my ($slot) = @_;      my ($slot) = @_;
     my (undef,undef,$domain,$user) = &Apache::lonnet::whichuser();      my (undef,undef,$domain,$user) = &Apache::lonnet::whichuser();
     my $url=&Apache::lonnet::studentphoto($domain,$user,'jpg');      my $url=&Apache::lonnet::studentphoto($domain,$user,'jpg');
       if ($url ne '/adm/lonKaputt/lonlogo_broken.gif') {
    $url = "<tr><td colspan=\"2\"><img src=\"$url\" /></td></tr>";
       } else {
    undef($url);
       }
   
     my $name=&Apache::loncommon::plainname($user,$domain);      my $name=&Apache::loncommon::plainname($user,$domain);
           
     my $msg;      my $msg;
     if ($env{'form.proctorpassword'}) {      if ($env{'form.proctorpassword'}) {
  $msg='<p><font color="red">'.&mt("Failed to authenticate the proctor.")   $msg.='<p><span class="LC_warning">'
     .'</font></p>';      .&mt("Failed to authenticate the proctor.")
       .'</span></p>';
     }      }
   
       my $valid;
       my @possible_proctors=split(",",$slot->{'proctor'});
       foreach my $proctor (@possible_proctors) {
    if ($proctor =~ /$LONCAPA::username_re:$LONCAPA::domain_re/) {
       $valid = 1;
       last;
    }
       }
       if (!$valid) {
    $msg.='<p><span class="LC_error">'
       .&mt("No valid poctors are defined.")
       .'</span></p>';
       }
       
     if (!$env{'form.proctordomain'}) { $env{'form.proctordomain'}=$domain; }      if (!$env{'form.proctordomain'}) { $env{'form.proctordomain'}=$domain; }
       my $uri = &Apache::lonenc::check_encrypt($env{'request.uri'});
       $uri = &HTML::Entities::encode($uri,'<>&"');
     my $result= (<<ENDCHECKOUT);      my $result= (<<ENDCHECKOUT);
 <h2>Proctor Validation</h2>  <h2>Proctor Validation</h2>
     <p>Your room's proctor needs to validate your access to this resource.</p>      <p>Your room's proctor needs to validate your access to this resource.</p>
     $msg      $msg
 <form name="checkout" method="post" action="$env{'request.uri'}">  <form name="checkout" method="post" action="$uri">
 <input type="hidden" name="validate" value="yes" />  <input type="hidden" name="validate" value="yes" />
 <input type="hidden" name="submitted" value="yes" />  <input type="hidden" name="submitted" value="yes" />
 <table>  <table>
Line 3040  sub proctor_validation_screen { Line 3066  sub proctor_validation_screen {
       <tr><td>Name:</td><td>$name</td></tr>        <tr><td>Name:</td><td>$name</td></tr>
       <tr><td>Student ID:</td><td>$env{'environment.id'}</td></tr>        <tr><td>Student ID:</td><td>$env{'environment.id'}</td></tr>
       <tr><td>Usename</td><td>$user:$domain</td></tr>        <tr><td>Usename</td><td>$user:$domain</td></tr>
       <tr><td colspan="2"><img src="$url" /></td></tr>        $url
     </table>      </table>
   </tr></td>    </tr></td>
 </table>  </table>

Removed from v.1.225  
changed lines
  Added in v.1.230


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>