Diff for /loncom/homework/structuretags.pm between versions 1.332.2.3 and 1.341

version 1.332.2.3, 2006/04/20 19:08:41 version 1.341, 2006/04/11 18:42:58
Line 36  use Apache::File(); Line 36  use Apache::File();
 use Apache::lonmenu;  use Apache::lonmenu;
 use Apache::lonlocal;  use Apache::lonlocal;
 use Apache::lonxml;  use Apache::lonxml;
   use Apache::lonenc();
 use Time::HiRes qw( gettimeofday tv_interval );  use Time::HiRes qw( gettimeofday tv_interval );
 BEGIN {  BEGIN {
     &Apache::lonxml::register('Apache::structuretags',('block','languageblock','instructorcomment','while','randomlist','problem','library','web','tex','part','preduedate','postanswerdate','solved','notsolved','problemtype','startouttext','endouttext','simpleeditbutton','definetag'));      &Apache::lonxml::register('Apache::structuretags',('block','languageblock','instructorcomment','while','randomlist','problem','library','web','tex','part','preduedate','postanswerdate','solved','notsolved','problemtype','startouttext','endouttext','simpleeditbutton','definetag'));
Line 88  sub body_tag_start { Line 89  sub body_tag_start {
     }      }
     $body_tag_start.='>'.&Apache::lonmenu::menubuttons(undef,$target,1);      $body_tag_start.='>'.&Apache::lonmenu::menubuttons(undef,$target,1);
           
     &Apache::lontexconvert::jsMath_reset();      $body_tag_start.=&Apache::lontexconvert::init_math_support();
     if ($env{'environment.texengine'} eq 'jsMath') {  
  $body_tag_start.=&Apache::lontexconvert::jsMath_header();  
     }  
     return $body_tag_start;      return $body_tag_start;
 }  }
   
Line 156  sub page_start { Line 155  sub page_start {
     }      }
     my $form_tag_start;      my $form_tag_start;
     if (!defined($found{'form'})) {      if (!defined($found{'form'})) {
  $form_tag_start='<form name="lonhomework" enctype="multipart/form-data" method="POST" action="';   $form_tag_start='<form name="lonhomework" enctype="multipart/form-data" method="post" action="';
  my $uri=$env{'request.uri'};   my $uri = &Apache::lonenc::check_encrypt($env{'request.uri'});
  if ($env{'request.enc'}) { $uri=&Apache::lonenc::encrypted($uri); }  
  $form_tag_start.=$uri.'" ';   $form_tag_start.=$uri.'" ';
  if ($target eq 'edit') {   if ($target eq 'edit') {
     $form_tag_start.=&Apache::edit::form_change_detection();      $form_tag_start.=&Apache::edit::form_change_detection();
Line 192  sub setup_rndseed { Line 190  sub setup_rndseed {
     my ($safeeval)=@_;      my ($safeeval)=@_;
     my $rndseed;      my $rndseed;
     my ($symb)=&Apache::lonxml::whichuser();      my ($symb)=&Apache::lonxml::whichuser();
     if ($env{'request.state'} eq "construct" || $symb eq '' ||      if ($env{'request.state'} eq "construct" 
           $Apache::lonhomework::history{'resource.CODE'}) {   || $symb eq '' 
    || $Apache::lonhomework::type eq 'practice'
    || $Apache::lonhomework::history{'resource.CODE'}) {
  &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},   &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
  ['rndseed']);   ['rndseed']);
  $rndseed=$env{'form.rndseed'};   $rndseed=$env{'form.rndseed'};
Line 336  sub initialize_storage { Line 336  sub initialize_storage {
     %Apache::lonhomework::results=();      %Apache::lonhomework::results=();
     %Apache::lonhomework::history=();      %Apache::lonhomework::history=();
     my ($symb,$courseid,$domain,$name) = &Apache::lonxml::whichuser();      my ($symb,$courseid,$domain,$name) = &Apache::lonxml::whichuser();
     if ($env{'request.state'} eq 'construct' || $symb eq '') {      if ($env{'request.state'} eq 'construct' 
    || $symb eq ''
    || $Apache::lonhomework::type eq 'practice') {
   
    my $namespace = $symb || $env{'request.uri'};
    if ($env{'form.resetdata'} eq &mt('Reset Submissions') ||
       $env{'form.resetdata'} eq &mt('New Problem Variation') ||
       $env{'form.newrandomization'} eq &mt('New Randomization')) {
       &Apache::lonnet::tmpreset($namespace,'',$domain,$name);
       &Apache::lonxml::debug("Attempt reset");
    }
  %Apache::lonhomework::history=   %Apache::lonhomework::history=
     &Apache::lonnet::tmprestore($env{'request.uri'},'',$domain,$name);      &Apache::lonnet::tmprestore($namespace,'',$domain,$name);
  my ($temp)=keys %Apache::lonhomework::history ;   my ($temp)=keys %Apache::lonhomework::history ;
  &Apache::lonxml::debug("Return message of $temp");   &Apache::lonxml::debug("Return message of $temp");
     } else {      } else {
Line 362  sub finalize_storage { Line 372  sub finalize_storage {
  my @remove = grep(/^INTERNAL_/,keys(%Apache::lonhomework::results));   my @remove = grep(/^INTERNAL_/,keys(%Apache::lonhomework::results));
  delete(@Apache::lonhomework::results{@remove});   delete(@Apache::lonhomework::results{@remove});
  my ($symb,$courseid,$domain,$name) = &Apache::lonxml::whichuser();   my ($symb,$courseid,$domain,$name) = &Apache::lonxml::whichuser();
  if ($env{'request.state'} eq 'construct' || $symb eq '') {   if ($env{'request.state'} eq 'construct' 
       || $symb eq ''
       || $Apache::lonhomework::type eq 'practice') {
       my $namespace = $symb || $env{'request.uri'};
     $Apache::lonhomework::results{'rndseed'}=$env{'form.rndseed'};      $Apache::lonhomework::results{'rndseed'}=$env{'form.rndseed'};
     $result=&Apache::lonnet::tmpstore(\%Apache::lonhomework::results,      $result=&Apache::lonnet::tmpstore(\%Apache::lonhomework::results,
  $env{'request.uri'},'',$domain,$name);        $namespace,'',$domain,$name);
     &Apache::lonxml::debug('Construct Store return message:'.$result);      &Apache::lonxml::debug('Construct Store return message:'.$result);
  } else {   } else {
     $result=&Apache::lonnet::cstore(\%Apache::lonhomework::results,      $result=&Apache::lonnet::cstore(\%Apache::lonhomework::results,
Line 429  sub checkout_msg { Line 442  sub checkout_msg {
                 'warning'=>'Checking out resources is subject to course policies, and may exclude future credit even if done erroneously.',                  '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 for Viewing',
  'checkout?'=>'Check out Exam?');   'checkout?'=>'Check out Exam?');
     my $uri = &Apache::lonenc::check_encrypt($env{'request.uri'});  
     return (<<ENDCHECKOUT);      return (<<ENDCHECKOUT);
 <h2>$lt{'resource'}</h2>  <h2>$lt{'resource'}</h2>
     <p>$lt{'id_expln'}</p>      <p>$lt{'id_expln'}</p>
 <font color="red">  <font color="red">
 <p>$lt{'warning'}</p>  <p>$lt{'warning'}</p>
 </font>  </font>
 <form name="checkout" method="POST" action="$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="$lt{'checkout'}" onClick="javascript:if (confirm('$lt{'checkout?'}')) { document.checkout.submit(); }" />  <input type="button" name="checkoutbutton" value="$lt{'checkout'}" onClick="javascript:if (confirm('$lt{'checkout?'}')) { document.checkout.submit(); }" />
 </form>  </form>
Line 448  sub firstaccess_msg { Line 460  sub firstaccess_msg {
     my ($map)=&Apache::lonnet::decode_symb($symb);      my ($map)=&Apache::lonnet::decode_symb($symb);
     my $foldertitle=&Apache::lonnet::gettitle($map);      my $foldertitle=&Apache::lonnet::gettitle($map);
     &Apache::lonxml::debug("map is $map title is $foldertitle");      &Apache::lonxml::debug("map is $map title is $foldertitle");
     my $uri = &Apache::lonenc::check_encrypt($env{'request.uri'});  
     return (<<ENDCHECKOUT);      return (<<ENDCHECKOUT);
 <h2>The resources in "$foldertitle" are open for a limited time. Once you click the 'Show Resource' button below you have $time to complete all resources "$foldertitle".</h2>  <h2>The resources in "$foldertitle" are open for a limited time. Once you click the 'Show Resource' button below you have $time to complete all resources "$foldertitle".</h2>
 <form name="markaccess" method="POST" action="$uri">  <form name="markaccess" method="POST" action="$env{'request.uri'}">
 <input type="hidden" name="markaccess" value="yes" />  <input type="hidden" name="markaccess" value="yes" />
 <input type="button" name="accessbutton" value="Show Resource" onClick="javascript:if (confirm('Start Timer?')) { document.markaccess.submit(); }" />  <input type="button" name="accessbutton" value="Show Resource" onClick="javascript:if (confirm('Start Timer?')) { document.markaccess.submit(); }" />
 </form>  </form>
Line 610  sub start_problem { Line 621  sub start_problem {
  #handle rand seed in construction space   #handle rand seed in construction space
  my $rndseed=&setup_rndseed($safeeval);   my $rndseed=&setup_rndseed($safeeval);
  my ($symb)=&Apache::lonxml::whichuser();   my ($symb)=&Apache::lonxml::whichuser();
  if ($env{'request.state'} ne "construct" && $symb eq '') {   if ($env{'request.state'} ne "construct" && 
       ($symb eq '' || $Apache::lonhomework::type eq 'practice')) {
     $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="'.&mt('New Problem Variation').'" />'.                               value="'.&mt('New Problem Variation').'" />';
       if (exists($env{'form.username'})) {
    $form_tag_start.=
     '<input type="hidden" name="username"      '<input type="hidden" name="username"
                              value="'.$env{'form.username'}.'" />';                               value="'.$env{'form.username'}.'" />';
     if ($env{'user.adv'}) {      }
       if ($env{'request.role.adv'}) {
  $form_tag_start.=   $form_tag_start.=
     ' <label><input type="checkbox" name="showallfoils" ';      ' <label><input type="checkbox" name="showallfoils" ';
  if (defined($env{'form.showallfoils'})) {   if (defined($env{'form.showallfoils'})) {
Line 925  sub start_library { Line 940  sub start_library {
     } elsif ($target eq 'modified') {      } elsif ($target eq 'modified') {
  $result=$token->[4];   $result=$token->[4];
  $result.=&Apache::edit::handle_insert();   $result.=&Apache::edit::handle_insert();
     } elsif ($target eq 'web' && $$tagstack[0] ne 'problem' &&      } elsif (($target eq 'web' || $target eq 'webgrade')
      $env{'request.state'} eq "construct" ) {       && $$tagstack[0] eq 'library' 
        && $env{'request.state'} eq "construct" ) {
  ($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);
  my $name=&get_resource_name($parstack,$safeeval);   my $name=&get_resource_name($parstack,$safeeval);

Removed from v.1.332.2.3  
changed lines
  Added in v.1.341


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