Diff for /loncom/interface/lonprintout.pm between versions 1.383 and 1.384

version 1.383, 2005/08/15 22:39:43 version 1.384, 2005/08/16 03:34:34
Line 46  my $resources_printed = ''; Line 46  my $resources_printed = '';
   
 #  Determine if a code is a valid numeric code.  Valid  #  Determine if a code is a valid numeric code.  Valid
 #  numeric codes must be comprised entirely of digits and  #  numeric codes must be comprised entirely of digits and
 #  have a maximum number of allowable digits.  #  have a correct number of digits.
 #  #
 #  Parameters:  #  Parameters:
 #     value      - proposed code value.  #     value      - proposed code value.
 #     max_digits - Maximum digits allowed.  #     num_digits - Number of digits required.
 #  #
 sub is_valid_numeric_code {  sub is_valid_numeric_code {
     my ($value, $max_digits) = @_;      my ($value, $num_digits) = @_;
     #   Remove leading/trailing whitespace;      #   Remove leading/trailing whitespace;
     $value =~ s/^\s*//;      $value =~ s/^\s*//;
     $value =~ s/\s*$//;      $value =~ s/\s*$//;
           
     #  All digits?      #  All digits?
   
     if ($value =~ /^[0-9]+$/) {      if ($value =~ /^[0-9]+$/) {
  if (length($value) <= $max_digits) {  
     return undef;  
  } else {  
     return "Numeric code $value  has too many digits (max = $max_digits)";  
  }  
     } else {  
  return "Numeric code $value has invalid characters - must only be digits";   return "Numeric code $value has invalid characters - must only be digits";
     }      }
       if (length($value) != $num_digits) {
    return "Numeric code $value incorrect number of digits (correct = $num_digits)";
       }
 }  }
 #   Determines if a code is a valid alhpa code.  Alpha codes  #   Determines if a code is a valid alhpa code.  Alpha codes
 #   are ciphers that map  [A-J,a-j] -> 0..9 0..9.  #   are ciphers that map  [A-J,a-j] -> 0..9 0..9.
 #   They also have a maximum digit count.  #   They also have a correct digit count.
 # Parameters:  # Parameters:
 #     value          - Proposed code value.  #     value          - Proposed code value.
 #     max_letters    - Maximum number of letters.  #     num_letters    - correct number of letters.
 # Note:  # Note:
 #    leading and trailing whitespace are ignored.  #    leading and trailing whitespace are ignored.
 #  #
 sub is_valid_alpha_code {  sub is_valid_alpha_code {
     my ($value, $max_letters) = @_;      my ($value, $num_letters) = @_;
           
      # strip leading and trailing spaces.       # strip leading and trailing spaces.
   
Line 88  sub is_valid_alpha_code { Line 84  sub is_valid_alpha_code {
     $value =~ s/\s*$//g;      $value =~ s/\s*$//g;
   
     #  All alphas in the right range?      #  All alphas in the right range?
       if ($value !~ /^[A-J,a-j]+$/) {
     if ($value =~ /^[A-J,a-j]+$/) {  
  if (length($value) <= $max_letters) {  
     return undef;  
  } else {  
     return "Letter code $value has too many letters (max = $max_letters)";  
  }  
     } else {  
  return "Invalid letter code $value must only contain A-J";   return "Invalid letter code $value must only contain A-J";
     }      }
       if (length($value) != $num_letters) {
    return "Letter code $value has incorrect number of letters (correct = $num_letters)";
       }
 }  }
   
 #   Determine if a code entered by the user in a helper is valid.  #   Determine if a code entered by the user in a helper is valid.
Line 133  sub is_code_valid { Line 125  sub is_code_valid {
     } else {      } else {
  $valid = &is_valid_alpha_code($code_value, $code_length);   $valid = &is_valid_alpha_code($code_value, $code_length);
     }      }
     
   
     return "Entering a single code is not supported (yet): $code_type $code_length $valid";      return "Entering a single code is not supported (yet): $code_type $code_length $valid";
 }  }
Line 2094  CHOOSE_STUDENTS Line 2085  CHOOSE_STUDENTS
     <message><b>Value of CODE to print?</b></td><td></message>      <message><b>Value of CODE to print?</b></td><td></message>
     <string variable="SINGLE_CODE" size="10" defaultvalue="zzzz">      <string variable="SINGLE_CODE" size="10" defaultvalue="zzzz">
         <validator>          <validator>
            # Not sure of exact call context so...  
    use Apache::lonprintout;  
    if(!\$helper->{'VARS'}{'NUMBER_TO_PRINT_TOTAL'}           &&     if(!\$helper->{'VARS'}{'NUMBER_TO_PRINT_TOTAL'}           &&
       !\$helper->{'VARS'}{'REUSE_OLD_CODES'}) {        !\$helper->{'VARS'}{'REUSE_OLD_CODES'}) {
       return &Apache::lonprintout::is_code_valid(\$helper->{'VARS'}{'SINGLE_CODE'},        return &Apache::lonprintout::is_code_valid(\$helper->{'VARS'}{'SINGLE_CODE'},

Removed from v.1.383  
changed lines
  Added in v.1.384


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