Diff for /loncom/homework/structuretags.pm between versions 1.203 and 1.212

version 1.203, 2003/08/13 17:54:12 version 1.212, 2003/10/03 15:27:02
Line 36  use strict; Line 36  use strict;
 use Apache::lonnet;  use Apache::lonnet;
 use Apache::File();  use Apache::File();
 use Apache::lonmenu;  use Apache::lonmenu;
   use Apache::lonlocal;
   
 BEGIN {  BEGIN {
     &Apache::lonxml::register('Apache::structuretags',('block','languageblock','instructorcomment','while','randomlist','problem','library','web','tex','part','preduedate','postanswerdate','solved','notsolved','startouttext','endouttext',      &Apache::lonxml::register('Apache::structuretags',('block','languageblock','instructorcomment','while','randomlist','problem','library','web','tex','part','preduedate','postanswerdate','solved','notsolved','startouttext','endouttext',
Line 72  sub end_tex { Line 73  sub end_tex {
 sub page_start {  sub page_start {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
     my %found;      my %found;
     foreach my $taginside ($tagstack) {      foreach my $taginside (@$tagstack) {
  foreach my $taglookedfor ('html','body','form') {   foreach my $taglookedfor ('html','body','form') {
     if ($taginside =~ /^$taglookedfor$/i) {$found{$taglookedfor} = 1;}      if ($taginside =~ /^$taglookedfor$/i) {$found{$taglookedfor} = 1;}
  }   }
Line 114  sub page_start { Line 115  sub page_start {
  &Apache::lonxml::whichuser();   &Apache::lonxml::whichuser();
     if ($symb eq '' && !$publicuser) {      if ($symb eq '' && !$publicuser) {
  my $help = &Apache::loncommon::help_open_topic("Ambiguous_Reference");   my $help = &Apache::loncommon::help_open_topic("Ambiguous_Reference");
  $help="Browsing resource, all submissions are temporary.<br />";   $help=&mt("Browsing resource, all submissions are temporary.")."<br />";
  $body_tag_start.=$help;   $body_tag_start.=$help;
     }      }
  }   }
Line 130  sub page_start { Line 131  sub page_start {
 #use Time::HiRes();  #use Time::HiRes();
 sub get_resource_name {  sub get_resource_name {
     my ($parstack,$safeeval)=@_;      my ($parstack,$safeeval)=@_;
       if (defined($Apache::lonhomework::name)) {
    return $Apache::lonhomework::name;
       }
     my $name=&Apache::lonnet::gettitle();      my $name=&Apache::lonnet::gettitle();
     if ($name eq '') {      if ($name eq '') {
  $name=&Apache::lonnet::EXT('resource.title');   $name=&Apache::lonnet::EXT('resource.title');
  if ($name eq 'con_lost') { $name = ''; }   if ($name eq 'con_lost') { $name = ''; }
     }      }
       if ($name!~/\S+/) {
    $name=$ENV{'request.uri'};
    $name=~s-.*/([^/]+)$-$1-;
       }
     $Apache::lonhomework::name=$name;      $Apache::lonhomework::name=$name;
     return $name;      return $name;
 }  }
Line 152  sub setup_rndseed { Line 160  sub setup_rndseed {
  $ENV{'form.rndseed'}=$rndseed;   $ENV{'form.rndseed'}=$rndseed;
     }      }
  }   }
  if ($ENV{'form.resetdata'} eq 'New Problem Variation' ||   if ($ENV{'form.resetdata'} eq &mt('New Problem Variation') ||
     $ENV{'form.newrandomization'} eq 'New Randomization') {      $ENV{'form.newrandomization'} eq &mt('New Randomization')) {
     srand(time);      srand(time);
     $rndseed=int(rand(2100000000));      $rndseed=int(rand(2100000000));
     $ENV{'form.rndseed'}=$rndseed;      $ENV{'form.rndseed'}=$rndseed;
Line 171  sub setup_rndseed { Line 179  sub setup_rndseed {
   
 sub problem_edit_header {  sub problem_edit_header {
     return '<input type="hidden" name="submitted" value="edit" />      return '<input type="hidden" name="submitted" value="edit" />
        <input type="hidden" name="problemmode" value="Edit" />         <input type="hidden" name="problemmode" value="'.&mt('Edit').'" />
        <input type="submit" name="problemmode" value="Discard Edits and View" />         <input type="submit" name="problemmode" value="'.&mt('Discard Edits and View').'" />
        <input type="submit" name="problemmode" value="EditXML" />         <input type="submit" name="problemmode" value="'.&mt('EditXML').'" />
        <input type="submit" name="Undo" value="undo" /> <hr />         <input type="submit" name="Undo" value="'.&mt('undo').'" /> <hr />
        <input type="submit" name="submit" value="Submit Changes and Edit" />         <input type="submit" name="submit" value="'.&mt('Submit Changes and Edit').'" />
        <input type="submit" name="submit" value="Submit Changes and View" /><br /><p>&nbsp;</p><table border="0"><tr><td bgcolor="#DDDDDD">         <input type="submit" name="submit" value="'.&mt('Submit Changes and View').'" /><br /><p>&nbsp;</p><table border="0"><tr><td bgcolor="#DDDDDD">
       ';        ';
 }  }
   
 sub problem_edit_footer {  sub problem_edit_footer {
     return '</td></tr></table><br /><input type="submit" name="submit" value="Submit Changes and Edit" />      return '</td></tr></table><br /><input type="submit" name="submit" value="'.&mt('Submit Changes and Edit').'" />
     <input type="submit" name="submit" value="Submit Changes and View" />';      <input type="submit" name="submit" value="'.&mt('Submit Changes and View').'" />';
 }  }
   
 sub problem_web_to_edit_header {  sub problem_web_to_edit_header {
     my ($rndseed)=@_;      my ($rndseed)=@_;
     my $result.='<input type="hidden" name="problemmode" value="View" />      my $result.='<input type="hidden" name="problemmode" value="'.&mt('View').'" />
              <input type="submit" name="problemmode" value="Edit" />               <input type="submit" name="problemmode" value="'.&mt('Edit').'" />
              <input type="submit" name="problemmode" value="EditXML" />               <input type="submit" name="problemmode" value="'.&mt('EditXML').'" />
              <input type="submit" name="newrandomization" value="New Randomization" />               <input type="submit" name="newrandomization" value="'.&mt('New Randomization').'" />
              <input type="submit" name="resetdata" value="Reset Submissions" />               <input type="submit" name="resetdata" value="'.&mt('Reset Submissions').'" />
              <nobr><input type="submit" name="changerandseed" value="Change Random Seed To:" />               <nobr><input type="submit" name="changerandseed" value="'.&mt('Change Random Seed To:').'" />
               <input type="text" name="rndseed" width="10" value="'.                <input type="text" name="rndseed" width="10" value="'.
        $rndseed.'"         $rndseed.'"
            onChange="javascript:document.lonhomework.changerandseed.click()" /></nobr>             onChange="javascript:document.lonhomework.changerandseed.click()" /></nobr>
              <input type="checkbox" name="showallfoils" ';               <input type="checkbox" name="showallfoils" ';
     if (defined($ENV{'form.showallfoils'})) { $result.='checked="on"'; }      if (defined($ENV{'form.showallfoils'})) { $result.='checked="on"'; }
     $result.= ' />&nbsp;Show&nbsp;All&nbsp;Foils      $result.= ' />'.&mt('&nbsp;Show&nbsp;All&nbsp;Foils').'
              <hr />';               <hr />';
     my $numtoanalyze=$ENV{'form.numtoanalyze'};      my $numtoanalyze=$ENV{'form.numtoanalyze'};
     if (!$numtoanalyze) { $numtoanalyze=20; }      if (!$numtoanalyze) { $numtoanalyze=20; }
     $result.= '<input type="submit" name="problemmode" value="Calculate answers" /> for      $result.= '<input type="submit" name="problemmode" value='.
    &mt('"Calculate answers').'" /> for
              <input type="text" name="numtoanalyze" value="'.               <input type="text" name="numtoanalyze" value="'.
  $numtoanalyze.'" size="5" /> versions of this problem.'.       $numtoanalyze.'" size="5" /> '.&mt('versions of this problem').
      &Apache::loncommon::help_open_topic("Analyze_Problem",       '.'.&Apache::loncommon::help_open_topic("Analyze_Problem",
      '',undef,undef,300).       '',undef,undef,300).
      '<hr />';       '<hr />';
     return $result;      return $result;
 }  }
   
Line 253  sub finalize_storage { Line 262  sub finalize_storage {
 }  }
   
 sub checkout_msg {  sub checkout_msg {
       my %lt=&Apache::lonlocal::texthash( 
    'resource'=>'The resource needs to be checked out',
    'id_expln'=>'As a resource gets checked out, a unique timestamped ID is given to it, and a permanent record is left in the system.',
                   'warning'=>'Checking out resources is subject to course policies, and may exclude future credit even if done erroneously.',
                   'checkout'=>'Check out Exam for Viewing',
    'checkout?'=>'Check out Exam?');
     return (<<ENDCHECKOUT);      return (<<ENDCHECKOUT);
 <h2>The resource needs to be checked out</h2>  <h2>$lt{'resource'}</h2>
 As a resource gets checked out, a unique timestamped ID is given to it, and a      <p>$lt{'id_expln'}</p>
 permanent record is left in the system.<p />  <font color="red">
 <font color=red>  <p>$lt{'warning'}</p>
 Checking out resources is subject to course policies, and may exclude future  
 credit even if done erroneously.<p />  
 </font>  </font>
 <form name="checkout" method="POST" action="$ENV{'request.uri'}">  <form name="checkout" method="POST" action="$ENV{'request.uri'}">
 <input type="hidden" name="doescheckout" value="yes" />  <input type="hidden" name="doescheckout" value="yes" />
 <input type="button" name="checkoutbutton" value="Check out Exam for Viewing" onClick="javascript:if (confirm('Check out Exam?')) { document.checkout.submit(); }" />  <input type="button" name="checkoutbutton" value="$lt{'checkout'}" onClick="javascript:if (confirm('$lt{'checkout?'}')) { document.checkout.submit(); }" />
 </form>  </form>
 ENDCHECKOUT  ENDCHECKOUT
 }  }
   
   sub init_problem_globals {
       my ($type)=@_;
       #initialize globals
       if ($type eq 'problem') {
    $Apache::inputtags::part='0';
    @Apache::inputtags::partlist=('0');
    $Apache::lonhomework::problemstatus=
       &Apache::lonnet::EXT('resource.0.problemstatus');
       } else {
    $Apache::inputtags::part='';
    @Apache::inputtags::partlist=();
    $Apache::lonhomework::problemstatus='';
       }
       @Apache::inputtags::responselist = ();
       @Apache::inputtags::importlist = ();
       @Apache::inputtags::previous=();
       @Apache::inputtags::previous_version=();
       $Apache::structuretags::printanswer='No';
       @Apache::structuretags::whileconds=();
       @Apache::structuretags::whilebody=();
       @Apache::structuretags::whileline=();
       $Apache::lonhomework::scantronmode=0;
       undef($Apache::lonhomework::name);
   
   }
   
   sub reset_problem_globals {
       my ($type)=@_;
       undef(%Apache::lonhomework::history);
       undef(%Apache::lonhomework::results);
       undef($Apache::inputtags::part);
   #don't undef this, lonhomework.pm takes care of this, we use this to 
   #detect if we try to do 2 problems in one file
   #   undef($Apache::lonhomework::parsing_a_problem);
       undef($Apache::lonhomework::name);
   }
   
 sub start_problem {  sub start_problem {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
   
Line 279  sub start_problem { Line 329  sub start_problem {
     }      }
   
     $Apache::lonhomework::parsing_a_problem=1;      $Apache::lonhomework::parsing_a_problem=1;
 #initialize globals      &init_problem_globals('problem');
     $Apache::inputtags::part='0';  
     @Apache::inputtags::partlist=('0');  
     @Apache::inputtags::responselist = ();  
     @Apache::inputtags::importlist = ();  
     @Apache::inputtags::previous=();  
     @Apache::inputtags::previous_version=();  
     $Apache::structuretags::printanswer='No';  
     @Apache::structuretags::whileconds=();  
     @Apache::structuretags::whilebody=();  
     @Apache::structuretags::whileline=();  
     $Apache::lonhomework::scantronmode=0;  
     $Apache::lonhomework::problemstatus=  
  &Apache::lonnet::EXT('resource.0.problemstatus');  
   
     if (defined($ENV{'scantron.maxquest'})) {      if (defined($ENV{'scantron.maxquest'})) {
  $Apache::lonhomework::scantronmode=1;   $Apache::lonhomework::scantronmode=1;
Line 350  sub start_problem { Line 387  sub start_problem {
     $form_tag_start.='<input type="hidden" name="rndseed" value="'.      $form_tag_start.='<input type="hidden" name="rndseed" value="'.
  $rndseed.'" />'.   $rndseed.'" />'.
     '<input type="submit" name="resetdata"      '<input type="submit" name="resetdata"
                              value="New Problem Variation" />'.                               value="'.&mt('New Problem Variation').'" />'.
     '<input type="hidden" name="username"      '<input type="hidden" name="username"
                              value="'.$ENV{'form.username'}.'" /> <br />';                               value="'.$ENV{'form.username'}.'" /> <br />';
  }   }
Line 369  sub start_problem { Line 406  sub start_problem {
  $result.= $head_tag_start.'</head>';   $result.= $head_tag_start.'</head>';
  my $msg=$body_tag_start;   my $msg=$body_tag_start;
  if ($status eq 'UNAVAILABLE') {   if ($status eq 'UNAVAILABLE') {
     $result.='<h1>Unable to determine if this resource is open due to network problems. Please try again later.</h1>';      $result.='<h1>'.&mt('Unable to determine if this resource is open due to network problems. Please try again later.').'</h1>';
  } else {   } else {
     $result.='<h1>Not open to be viewed</h1>';      $result.='<h1>'.&mt('Not open to be viewed').'</h1>';
  }   }
  if ($status eq 'CLOSED') {   if ($status eq 'CLOSED') {
     $msg.='The problem '.$accessmsg;      $msg.='The problem '.$accessmsg;
Line 382  sub start_problem { Line 419  sub start_problem {
     } elsif ($target eq 'tex') {      } elsif ($target eq 'tex') {
  $result.='\begin{document}\noindent \vskip 1 mm  \begin{minipage}{\textwidth}\vskip 0 mm';   $result.='\begin{document}\noindent \vskip 1 mm  \begin{minipage}{\textwidth}\vskip 0 mm';
  if ($status eq 'UNAVAILABLE') {   if ($status eq 'UNAVAILABLE') {
     $result.='Unable to determine if this resource is open due to network problems. Please try again later.\vskip 0 mm ';      $result.=&mt('Unable to determine if this resource is open due to network problems. Please try again later.').'\vskip 0 mm ';
  } else {   } else {
     $result.="Problem is not open to be viewed. It $accessmsg \\vskip 0 mm ";      $result.=&mt('Problem is not open to be viewed. It')." $accessmsg \\vskip 0 mm ";
  }   }
     }      }
  } elsif ($target eq 'web') {   } elsif ($target eq 'web') {
Line 414  sub start_problem { Line 451  sub start_problem {
     if (not $ENV{'form.problem_split'}=~/yes/) {      if (not $ENV{'form.problem_split'}=~/yes/) {
  $startminipage = '\begin{minipage}{\textwidth}';   $startminipage = '\begin{minipage}{\textwidth}';
     }      }
     my $name= &Apache::lonxml::get_param('name',$parstack,$safeeval);  
     if ($name eq '') {  
  $name=&Apache::lonnet::EXT('resource.title');  
  if ($name eq 'con_lost') { $name = ''; }  
     }  
     $Apache::lonhomework::name=$name;  
     my $id = $Apache::inputtags::part;      my $id = $Apache::inputtags::part;
     my $weight = &Apache::lonnet::EXT("resource.$id.weight");      my $weight = &Apache::lonnet::EXT("resource.$id.weight");
     my $allkeys=&Apache::lonnet::metadata($ENV{'request.uri'},'keys');      my $allkeys=&Apache::lonnet::metadata($ENV{'request.uri'},'keys');
Line 443  sub start_problem { Line 474  sub start_problem {
     my $due_file_content = $due_file_content[$#due_file_content];      my $due_file_content = $due_file_content[$#due_file_content];
     chomp $due_file_content;      chomp $due_file_content;
     my $name_of_resourse= &get_resource_name($parstack,$safeeval);      my $name_of_resourse= &get_resource_name($parstack,$safeeval);
     if (not $name_of_resourse=~/\S+/) {  
  $name_of_resourse=$ENV{'request.uri'};  
  $name_of_resourse=~/\/([^\/]+)$/;  
  $name_of_resourse=$1;  
     }  
     if ($due_file_content ne $duedate) {      if ($due_file_content ne $duedate) {
  $temp_file = Apache::File->new('>'.$filename);   $temp_file = Apache::File->new('>'.$filename);
  print $temp_file "$duedate\n";   print $temp_file "$duedate\n";
  if (not $ENV{'request.symb'} =~ m/\.page_/) {   if (not $ENV{'request.symb'} =~ m/\.page_/) {
     if(not $duedate=~m/1969/ and $Apache::lonhomework::type ne 'exam') {      if(not $duedate=~m/1969/ and $Apache::lonhomework::type ne 'exam') {
  $result .= '\begin{document} \typeout{STAMPOFPASSEDRESOURCESTART Resource <h2>"'.$name_of_resourse.'"</h2> located in <br /><small><b>'.$ENV{'request.uri'}.'</b></small><br /> STAMPOFPASSEDRESOURCEEND}\addcontentsline{toc}{subsection}{'.$name_of_resourse.'} \noindent\textit{Due date: '.$duedate.'} \vskip 1 mm\noindent '.$startminipage;   $result .= '\begin{document} \typeout{STAMPOFPASSEDRESOURCESTART Resource <h2>"'.$name_of_resourse.'"</h2> located in <br /><small><b>'.$ENV{'request.uri'}.'</b></small><br /> STAMPOFPASSEDRESOURCEEND} \noindent\textit{Due date: '.$duedate.'} \vskip 1 mm\noindent '.$startminipage.'\addcontentsline{toc}{subsection}{'.$name_of_resourse.'}';
     } else {      } else {
  $result .= '\begin{document} \typeout{STAMPOFPASSEDRESOURCESTART Resource <h2>"'.$name_of_resourse.'"</h2> located in <br /><small><b>'.$ENV{'request.uri'}.'</b></small><br /> STAMPOFPASSEDRESOURCEEND}\addcontentsline{toc}{subsection}{'.$name_of_resourse.'} \noindent \vskip 1 mm \noindent'.$startminipage;   $result .= '\begin{document} \typeout{STAMPOFPASSEDRESOURCESTART Resource <h2>"'.$name_of_resourse.'"</h2> located in <br /><small><b>'.$ENV{'request.uri'}.'</b></small><br /> STAMPOFPASSEDRESOURCEEND} \noindent \vskip 1 mm \noindent'.$startminipage.'\addcontentsline{toc}{subsection}{'.$name_of_resourse.'}';
  if ($Apache::lonhomework::type eq 'exam' and $allow_print_points==1) { $result .= '\fbox{\textit{'.$weight.' pt}}';}   if ($Apache::lonhomework::type eq 'exam' and $allow_print_points==1) { $result .= '\fbox{\textit{'.$weight.' pt}}';}
     }      }
  } else {   } else {
Line 463  sub start_problem { Line 489  sub start_problem {
  }   }
     } else {      } else {
  if (not $ENV{'request.symb'} =~ m/\.page_/) {   if (not $ENV{'request.symb'} =~ m/\.page_/) {
     $result .= '\begin{document} \typeout{STAMPOFPASSEDRESOURCESTART Resource <h2>"'.$name_of_resourse.'"</h2> located in <br /><small><b>'.$ENV{'request.uri'}.'</b></small><br /> STAMPOFPASSEDRESOURCEEND}\addcontentsline{toc}{subsection}{'.$name_of_resourse.'} \noindent \vskip 1 mm\noindent'.$startminipage;      $result .= '\begin{document} \typeout{STAMPOFPASSEDRESOURCESTART Resource <h2>"'.$name_of_resourse.'"</h2> located in <br /><small><b>'.$ENV{'request.uri'}.'</b></small><br /> STAMPOFPASSEDRESOURCEEND} \noindent \vskip 1 mm\noindent'.$startminipage.'\addcontentsline{toc}{subsection}{'.$name_of_resourse.'}';
     if (($Apache::lonhomework::type eq 'exam') and ($allow_print_points==1)) { $result .= '\fbox{\textit{'.$weight.' pt}}';}      if (($Apache::lonhomework::type eq 'exam') and ($allow_print_points==1)) { $result .= '\fbox{\textit{'.$weight.' pt}}';}
  } else {   } else {
     $result .= '\vskip 1mm \\\\\\\\';      $result .= '\vskip 1mm \\\\\\\\';
Line 556  sub end_problem { Line 582  sub end_problem {
     if ($ENV{'request.state'} eq 'construct' && $target eq 'web') {      if ($ENV{'request.state'} eq 'construct' && $target eq 'web') {
  &Apache::inputtags::check_for_duplicate_ids();   &Apache::inputtags::check_for_duplicate_ids();
     }      }
     undef(%Apache::lonhomework::history);  
     undef(%Apache::lonhomework::results);      &reset_problem_globals('problem');
     undef($Apache::inputtags::part);  
     undef($Apache::lonhomework::parsing_a_problem);  
   
     return $result;      return $result;
 }  }
Line 568  sub end_problem { Line 592  sub end_problem {
 sub start_library {  sub start_library {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
     my ($result,$head_tag_start,$body_tag_start,$form_tag_start);      my ($result,$head_tag_start,$body_tag_start,$form_tag_start);
       if ($$tagstack[0] eq 'library') { &init_problem_globals('library') };
     if ($target eq 'edit') {      if ($target eq 'edit') {
  ($result,$head_tag_start,$body_tag_start,$form_tag_start)=   ($result,$head_tag_start,$body_tag_start,$form_tag_start)=
     &page_start($target,$token,$tagstack,$parstack,$parser,$safeeval);      &page_start($target,$token,$tagstack,$parstack,$parser,$safeeval);
Line 602  sub end_library { Line 626  sub end_library {
      $ENV{'request.state'} eq "construct") {       $ENV{'request.state'} eq "construct") {
  $result.='</form></body>'.&Apache::lonxml::xmlend();   $result.='</form></body>'.&Apache::lonxml::xmlend();
     }      }
       if ($$tagstack[0] eq 'library') { &reset_problem_globals('library') };
     return $result;      return $result;
 }  }
   
Line 703  sub start_languageblock { Line 728  sub start_languageblock {
  $result='';   $result='';
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
  $result .=&Apache::edit::tag_start($target,$token);   $result .=&Apache::edit::tag_start($target,$token);
  $result .=&Apache::edit::text_arg('Include Language:','include',   $result .=&Apache::edit::text_arg(&mt('Include Language:'),'include',
   $token,40);    $token,40);
  $result .=&Apache::edit::text_arg('Exclude Language:','exclude',   $result .=&Apache::edit::text_arg(&mt('Exclude Language:'),'exclude',
   $token,40);    $token,40);
  $result .=&Apache::edit::end_row().&Apache::edit::start_spanning_row();   $result .=&Apache::edit::end_row().&Apache::edit::start_spanning_row();
     } elsif ($target eq 'modified') {      } elsif ($target eq 'modified') {
Line 778  sub start_while { Line 803  sub start_while {
  }   }
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
  $result .=&Apache::edit::tag_start($target,$token);   $result .=&Apache::edit::tag_start($target,$token);
  $result .=&Apache::edit::text_arg('Test Condition:','condition',   $result .=&Apache::edit::text_arg(&mt('Test Condition:'),'condition',
   $token,40);    $token,40);
  $result .=&Apache::edit::end_row().&Apache::edit::start_spanning_row();   $result .=&Apache::edit::end_row().&Apache::edit::start_spanning_row();
     } elsif ($target eq 'modified') {      } elsif ($target eq 'modified') {
Line 810  sub end_while { Line 835  sub end_while {
     $return = &Apache::run::run($code,$safeeval);      $return = &Apache::run::run($code,$safeeval);
  }   }
  if ($error) {   if ($error) {
     &Apache::lonxml::error('<pre>Code ran too long. It ran for more than '.$Apache::lonnet::perlvar{'lonScriptTimeout'}.' seconds occured while running &lt;while$gt; on line '.$line.'</pre>');      &Apache::lonxml::error('<pre>'.&mt('Code ran too long. It ran for more than').' '.$Apache::lonnet::perlvar{'lonScriptTimeout'}.' '.&mt('seconds occured while running &lt;while$gt; on line').' '.$line.'</pre>');
  }   }
     } elsif ($target eq "edit") {      } elsif ($target eq "edit") {
  $result.= &Apache::edit::tag_end($target,$token,'');   $result.= &Apache::edit::tag_end($target,$token,'');
Line 914  sub start_part { Line 939  sub start_part {
     $Apache::lonhomework::problemstatus=      $Apache::lonhomework::problemstatus=
  &Apache::lonnet::EXT("resource.$id.problemstatus");   &Apache::lonnet::EXT("resource.$id.problemstatus");
     my $hidden=&Apache::loncommon::check_if_partid_hidden($Apache::inputtags::part);      my $hidden=&Apache::loncommon::check_if_partid_hidden($Apache::inputtags::part);
       my $expression='$external::part='.$Apache::inputtags::part.';';
       &Apache::run::run($expression,$safeeval);
   
     if ($target eq 'meta') {      if ($target eq 'meta') {
  return &Apache::response::mandatory_part_meta;   return &Apache::response::mandatory_part_meta;
Line 930  sub start_part { Line 957  sub start_part {
     if ( $status eq 'CLOSED' ) {      if ( $status eq 'CLOSED' ) {
  my $bodytext=&Apache::lonxml::get_all_text("/part",$parser);   my $bodytext=&Apache::lonxml::get_all_text("/part",$parser);
  if ( $target eq "web" ) {   if ( $target eq "web" ) {
     $result="<br />Part is not open to be viewed. It $accessmsg<br />";      $result="<br />".&mt('Part is not open to be viewed. It')." $accessmsg<br />";
  } elsif ( $target eq 'tex' ) {   } elsif ( $target eq 'tex' ) {
     if (not $ENV{'form.problem_split'}=~/yes/) {      if (not $ENV{'form.problem_split'}=~/yes/) {
  $result="\\end{minipage}\\vskip 0 mm Part is not open to be viewed. It $accessmsg \\\\\\begin{minipage}{\\textwidth}";   $result="\\end{minipage}\\vskip 0 mm ".&mt('Part is not open to be viewed. It')." $accessmsg \\\\\\begin{minipage}{\\textwidth}";
     } else {      } else {
  $result="\\vskip 0 mm Part is not open to be viewed. It $accessmsg \\\\";   $result="\\vskip 0 mm ".&mt('Part is not open to be viewed. It')." $accessmsg \\\\";
     }      }
  }   }
     } else {      } else {
Line 977  sub end_part { Line 1004  sub end_part {
     } elsif (($target eq 'web' || $target eq 'tex') && !$hidden ) {      } elsif (($target eq 'web' || $target eq 'tex') && !$hidden ) {
  my $gradestatus=&Apache::inputtags::gradestatus($Apache::inputtags::part,   my $gradestatus=&Apache::inputtags::gradestatus($Apache::inputtags::part,
  $target);   $target);
  if ($Apache::lonhomework::type eq 'exam') {$gradestatus='';}   if ($Apache::lonhomework::type eq 'exam' && $target eq 'tex') {
       $gradestatus='';
    }
  $result=$gradestatus;   $result=$gradestatus;
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
  $result=&Apache::edit::end_table();   $result=&Apache::edit::end_table();
Line 1067  sub end_startouttext { Line 1096  sub end_startouttext {
   
     if ($target eq 'edit') {      if ($target eq 'edit') {
  $text=&Apache::lonxml::get_all_text("endouttext",$parser);   $text=&Apache::lonxml::get_all_text("endouttext",$parser);
  $result.=&Apache::edit::start_table($token)."<tr><td>Text Block</td>   $result.=&Apache::edit::start_table($token)."<tr><td>".&mt('Text Block')."</td>
 <td>Delete:".  <td>".&mt('Delete:').
                  &Apache::edit::deletelist($target,$token)                   &Apache::edit::deletelist($target,$token)
  ."</td>   ."</td>
 <td>".  <td>".
Line 1127  sub start_simpleeditbutton { Line 1156  sub start_simpleeditbutton {
         my $url=$ENV{'REQUEST_URI'};          my $url=$ENV{'REQUEST_URI'};
         $url=~s/\?.*$//;          $url=~s/\?.*$//;
  $result='<table width="100%" bgcolor="#FFFFAA" border="2"><tr><td>'.   $result='<table width="100%" bgcolor="#FFFFAA" border="2"><tr><td>'.
                 '<a href="'.$url.'/smpedit">Simple Problem Editor</a> - Note: it can take up to 10 minutes for changes to take effect for all users.'.                  '<a href="'.$url.'/smpedit">'.&mt('Simple Problem Editor').'</a> - '.&mt('Note: it can take up to 10 minutes for changes to take effect for all users.').
 &Apache::loncommon::help_open_topic('Caching').'</td></tr></table><br />';  &Apache::loncommon::help_open_topic('Caching').'</td></tr></table><br />';
     }      }
     return $result;      return $result;

Removed from v.1.203  
changed lines
  Added in v.1.212


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