Diff for /loncom/homework/inputtags.pm between versions 1.63 and 1.74

version 1.63, 2002/10/01 21:05:45 version 1.74, 2002/11/19 14:59:35
Line 32  use HTML::Entities(); Line 32  use HTML::Entities();
 use strict;  use strict;
   
 BEGIN {  BEGIN {
   &Apache::lonxml::register('Apache::inputtags',('textfield','textline','datasubmission'));    &Apache::lonxml::register('Apache::inputtags',('textfield','textline'));
 }  }
   
   
Line 146  sub start_textline { Line 146  sub start_textline {
     $Apache::lonxml::evaluate--;      $Apache::lonxml::evaluate--;
     if ($Apache::inputtags::status[-1] eq 'CAN_ANSWER') {      if ($Apache::inputtags::status[-1] eq 'CAN_ANSWER') {
       my $size = &Apache::lonxml::get_param('size',$parstack,$safeeval);        my $size = &Apache::lonxml::get_param('size',$parstack,$safeeval);
       if ($size eq '') { $size=20; }        my $maxlength;
         if ($size eq '') { $size=20; } else {
    if ($size < 20) { $maxlength=$size; }
         }
       my $partid=$Apache::inputtags::part;        my $partid=$Apache::inputtags::part;
       my $id=$Apache::inputtags::response[-1];        my $id=$Apache::inputtags::response[-1];
       my $oldresponse = &HTML::Entities::encode($Apache::lonhomework::history{"resource.$partid.$id.submission"});        my $oldresponse = &HTML::Entities::encode($Apache::lonhomework::history{"resource.$partid.$id.submission"});
       $result= '<input type="text" name="HWVAL'.$id.'" value="'.        if ($Apache::lonhomework::type ne 'exam') {
  $oldresponse.'" size="'.$size.'" />';          $result= '<input type="text" name="HWVAL'.$id.'" value="'.
       $oldresponse.'" size="'.$size.'" maxlength="'.$maxlength.'" />';
         }
     } else {      } else {
       #right or wrong don't show what was last typed in.        #right or wrong don't show what was last typed in.
       #$result='<i>'.$oldresponse.'</i>';        #$result='<i>'.$oldresponse.'</i>';
Line 164  sub start_textline { Line 169  sub start_textline {
   } elsif ($target eq 'modified') {    } elsif ($target eq 'modified') {
     my $constructtag=&Apache::edit::get_new_args($token,$parstack,$safeeval,'size');      my $constructtag=&Apache::edit::get_new_args($token,$parstack,$safeeval,'size');
     if ($constructtag) { $result = &Apache::edit::rebuild_tag($token); }      if ($constructtag) { $result = &Apache::edit::rebuild_tag($token); }
     } elsif ($target eq 'tex') {
         $result='\framebox[1cm][s]{\hfill}';
   }    }
   return $result;    return $result;
 }  }
Line 175  sub end_textline { Line 182  sub end_textline {
   return "";    return "";
 }  }
   
 sub start_datasubmission {  
   my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;  
   my $id = &Apache::response::start_response($parstack,$safeeval);  
   my $result;  
   if ($target eq 'meta') {  
     $result = &Apache::response::meta_stores_write($token->[2]->{'name'},  
    $token->[2]->{'type'},  
    $token->[2]->{'display'});  
     $result .= &Apache::response::meta_package_write('datasubmission');  
   }  
   return $result;  
 }  
   
 sub end_datasubmission {  
   my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;  
   my $result;  
   if ( $target eq 'web' ) {  
   } elsif ($target eq 'grade' ) {  
     if ( defined $ENV{'form.submitted'}) {  
       &Apache::response::setup_params('datasubmission');  
       my $partid = $Apache::inputtags::part;  
       my $id = $Apache::inputtags::response['-1'];  
       my $response = $ENV{'form.HWVAL'.$id};  
       my $name = &Apache::lonxml::get_param('name',$parstack,$safeeval);  
       if ( $response =~ /[^\s]/) {  
  $Apache::lonhomework::results{"resource.$partid.$id.$name"}=  
   $response;  
       }  
     }  
   }  
   &Apache::response::end_response;  
   return $result;  
 }  
   
 sub finalizeawards {  sub finalizeawards {
   my $result='';    my $result='';
   my $award;    my $award;
Line 268  sub finalizeawards { Line 241  sub finalizeawards {
 }  }
   
 sub decideoutput {  sub decideoutput {
   my ($award,$solved,$previous)=@_;    my ($award,$solved,$previous,$target)=@_;
   my $message='';    my $message='';
   my $button=0;    my $button=0;
   my $previousmsg;    my $previousmsg;
Line 276  sub decideoutput { Line 249  sub decideoutput {
   if ($previous) { $previousmsg='You have entered that answer before'; }    if ($previous) { $previousmsg='You have entered that answer before'; }
   
   if      ($solved =~ /^correct/) {    if      ($solved =~ /^correct/) {
     $message = "<b>You are correct.</b> Your receipt is ".      if ($target eq 'tex') {
         $message = '\textbf{You are correct}. Your receipt is '.
       &Apache::lonnet::receipt;        &Apache::lonnet::receipt;
       } else {
         $message = "<b>You are correct.</b> Your receipt is ".
         &Apache::lonnet::receipt;
       }
     $button=0;      $button=0;
     $previousmsg='';      $previousmsg='';
   } elsif ($solved =~ /^excused/) {    } elsif ($solved =~ /^excused/) {
Line 337  sub decideoutput { Line 315  sub decideoutput {
 sub setgradedata {  sub setgradedata {
   my ($award,$id,$previously_used) = @_;    my ($award,$id,$previously_used) = @_;
   # if the student already has it correct, don't modify the status    # if the student already has it correct, don't modify the status
   if ($Apache::inputtags::status['-1'] ne 'CAN_ANSWER') {    if ($Apache::inputtags::status['-1'] ne 'CAN_ANSWER' &&
         $Apache::inputtags::status['-1'] ne 'CANNOT_ANSWER') {
     $Apache::lonhomework::results{"resource.$id.afterduedate"}=$award;      $Apache::lonhomework::results{"resource.$id.afterduedate"}=$award;
     return '';      return '';
   } elsif ( $Apache::lonhomework::history{"resource.$id.solved"} !~    } elsif ( $Apache::lonhomework::history{"resource.$id.solved"} !~
Line 442  sub gradestatus { Line 421  sub gradestatus {
     if ( $award ne '' ) {      if ( $award ne '' ) {
       &Apache::lonxml::debug('Getting message');        &Apache::lonxml::debug('Getting message');
       ($showbutton,$message,$previousmsg) =        ($showbutton,$message,$previousmsg) =
  &decideoutput($award,$solved,$previous);   &decideoutput($award,$solved,$previous,$target);
       if ($target eq 'tex') {        if ($target eq 'tex') {
  $message=' '.$message.' ';   $message=' '.$message.' ';
       } else {        } else {
Line 460  sub gradestatus { Line 439  sub gradestatus {
     if ( $maxtries eq 'con_lost' ) { $maxtries = '0'; }       if ( $maxtries eq 'con_lost' ) { $maxtries = '0'; } 
     if ( $showbutton ) {      if ( $showbutton ) {
       if ($target eq 'tex') {        if ($target eq 'tex') {
  $trystr = ' '.$tries.'/'.$maxtries.' ';    if ($ENV{'request.state'} ne "construct") {
         $trystr = ' {\small \textit{Tries} '.$tries.'/'.$maxtries.'} \vskip 0 mm ';
     }
       } else {        } else {
          $trystr = "<td>Tries $tries/$maxtries</td>";           $trystr = "<td>Tries $tries/$maxtries</td>";
       }        }

Removed from v.1.63  
changed lines
  Added in v.1.74


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