Diff for /loncom/homework/structuretags.pm between versions 1.54 and 1.62

version 1.54, 2001/08/17 14:10:40 version 1.62, 2001/08/20 15:56:47
Line 2 Line 2
 # definition of tags that give a structure to a document  # definition of tags that give a structure to a document
 # 2/19 Guy  # 2/19 Guy
 # 6/26/2001 fixed extra web display at end of <web></web> tags  # 6/26/2001 fixed extra web display at end of <web></web> tags
 # 8/17 Gerd Kortemeyer  # 8/17,8/18,8/20 Gerd Kortemeyer
   
 package Apache::structuretags;   package Apache::structuretags; 
   
Line 82  sub start_problem { Line 82  sub start_problem {
       &Apache::lonxml::debug("Using default type, problem, :$uri:");        &Apache::lonxml::debug("Using default type, problem, :$uri:");
     }      }
   }    }
   
 #adeed vars to the scripting enviroment  #adeed vars to the scripting enviroment
   my $expression='$external::part='.$Apache::inputtags::part.';';    my $expression='$external::part='.$Apache::inputtags::part.';';
   &Apache::run::run($expression,$safeeval);    &Apache::run::run($expression,$safeeval);
   my $status;    my $status;
   my $datemsg;    my $accessmsg;
   
   #should get back a <html> or the neccesary stuff to start XML/MathML    #should get back a <html> or the neccesary stuff to start XML/MathML
   my ($result,$head_tag_start,$body_tag_start)=    my ($result,$head_tag_start,$body_tag_start)=
     &page_start($target,$token,$tagstack,$parstack,$parser,$safeeval);      &page_start($target,$token,$tagstack,$parstack,$parser,$safeeval);
   
     if ($Apache::lonhomework::type eq 'exam') {
         if ($target eq 'web') {
             my $token=$Apache::lonhomework::history{"resource.0.outtoken"};
             if (($ENV{'form.doescheckout'}) && (!$token)) {
        $token=&Apache::lonxml::maketoken();
                $Apache::lonhomework::history{"resource.0.outtoken"}=$token;
             }
             $body_tag_start.=&Apache::lonxml::printtokenheader($target,$token);
             if ($ENV{'user.adv'}) {
         $body_tag_start.=&Apache::lonxml::tokeninputfield;
             }
         }
         if ($target eq 'meta') {
        
     return (<<ENDSTORES);
   <stores part="0" name="outtoken" type="string" 
    display="Document ID checked out"></stores>
   <stores part="0" name="checkouttime" type="date"
    display="Time checked out"></stores>
   <stores part="0" name="outremote" type="string" 
    display="Client IP checked out from"></stores>
   
   <stores part="0" name="intoken" type="string" 
    display="Document ID checked in"></stores>
   <stores part="0" name="checkintime" type="date"
    display="Time checked in"></stores>
   <stores part="0" name="inremote" type="string" 
    display="Client IP checked in from"></stores>
   ENDSTORES
         }
     }
   if ($target eq 'web' || $target eq 'grade') {    if ($target eq 'web' || $target eq 'grade') {
     ($status,$datemsg) = &Apache::lonhomework::check_date('0');      ($status,$accessmsg) = &Apache::lonhomework::check_access('0');
     push (@Apache::inputtags::status,$status);      push (@Apache::inputtags::status,$status);
     my $expression='$external::datestatus="'.$status.'";';      my $expression='$external::datestatus="'.$status.'";';
     $expression.='$external::gradestatus="'.$Apache::lonhomework::history{"resource.0.solved"}.'";';      $expression.='$external::gradestatus="'.$Apache::lonhomework::history{"resource.0.solved"}.'";';
Line 107  sub start_problem { Line 139  sub start_problem {
         my $msg=$body_tag_start.          my $msg=$body_tag_start.
     '<h1>Not open to be viewed</h1>';      '<h1>Not open to be viewed</h1>';
         if ($status eq 'CLOSED') {          if ($status eq 'CLOSED') {
     $msg.='The problem '.$datemsg;      $msg.='The problem '.$accessmsg;
  } elsif ($status eq 'UNCHECKEDOUT') {   } elsif ($status eq 'UNCHECKEDOUT') {
             $msg.='The resource needs to be checked out';              $msg.=(<<ENDCHECKOUT);
   <h2>The resource needs to be checked out</h2>
   As a resource gets checked out, a unique timestamped ID is given to it, and a
   permanent record is left in the system.<p />
   <font color=red>
   Checking out resources is subject to course policies, and may exclude future
   credit even if done erroneously.<p />
   </font>  
   <form method=post>
   <input type=button name="doescheckout" 
   value="Check out Exam for Viewing" 
   onClick="if (confirm('Check out Exam?')) { this.form.submit(); }" />
   </form>
   ENDCHECKOUT
         }          }
  return $result.$msg.'<br />';   return $result.$msg.'<br />';
       }        }
Line 344  sub start_part { Line 389  sub start_part {
   if ($target eq 'meta') {    if ($target eq 'meta') {
     return &Apache::response::mandatory_part_meta;      return &Apache::response::mandatory_part_meta;
   } elsif ($target eq 'web' || $target eq 'grade') {    } elsif ($target eq 'web' || $target eq 'grade') {
     my ($status,$datemsg) = &Apache::lonhomework::check_date($id);      my ($status,$accessmsg) = &Apache::lonhomework::check_access($id);
     push (@Apache::inputtags::status,$status);      push (@Apache::inputtags::status,$status);
     my $expression='$external::datestatus="'.$status.'";';      my $expression='$external::datestatus="'.$status.'";';
     $expression.='$external::gradestatus="'.$Apache::lonhomework::history{"resource.$id.solved"}.'";';      $expression.='$external::gradestatus="'.$Apache::lonhomework::history{"resource.$id.solved"}.'";';
Line 352  sub start_part { Line 397  sub start_part {
     if ( $status eq 'CLOSED' ) {      if ( $status eq 'CLOSED' ) {
       my $bodytext=&Apache::lonxml::get_all_text("/part",$$parser[$#$parser]);        my $bodytext=&Apache::lonxml::get_all_text("/part",$$parser[$#$parser]);
       if ( $target eq "web" ) {        if ( $target eq "web" ) {
  return "<br />Part is not open to be viewed. It $datemsg<br />";   return "<br />Part is not open to be viewed. It $accessmsg<br />";
       }        }
     }      }
   }    }

Removed from v.1.54  
changed lines
  Added in v.1.62


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