Diff for /loncom/interface/spreadsheet/Spreadsheet.pm between versions 1.56 and 1.61

version 1.56, 2005/09/01 21:52:56 version 1.61, 2006/01/10 16:38:47
Line 378  Calls the system EXT function to determi Line 378  Calls the system EXT function to determi
   
 #-------------------------------------------------------  #-------------------------------------------------------
 sub EXT {  sub EXT {
     my ($parameter) = @_;      my ($parameter,$specific_symb) = @_;
     return '' if (! defined($parameter) || $parameter eq '');      return '' if (! defined($parameter) || $parameter eq '');
     $parameter =~ s/^parameter\./resource\./;      $parameter =~ s/^parameter\./resource\./;
     my $value = &Apache::lonnet::EXT($parameter,$symb,$domain,$name,$usection);      if ($specific_symb eq '') { $specific_symb = $symb; }
       my $value = &Apache::lonnet::EXT($parameter,$specific_symb,$domain,$name,
        $usection);
     return $value;      return $value;
 }  }
   
Line 697  sub get_values { Line 699  sub get_values {
  }   }
  return \@values;   return \@values;
     } else {      } else {
  $num = '(\d+)';   $num = '([1-9]\d*)';
     }      }
     if (($la eq '*') || ($ua eq '*')) {      if (($la eq '*') || ($ua eq '*')) {
         $alpha='[A-z]';          $alpha='[A-z]';
Line 1623  sub load { Line 1625  sub load {
         $self->{'row_source'}=$spreadsheets{$cachekey}->{'row_source'};          $self->{'row_source'}=$spreadsheets{$cachekey}->{'row_source'};
         $self->{'row_numbers'}=$spreadsheets{$cachekey}->{'row_numbers'};          $self->{'row_numbers'}=$spreadsheets{$cachekey}->{'row_numbers'};
         $self->{'maxrow'}=$spreadsheets{$cachekey}->{'maxrow'};          $self->{'maxrow'}=$spreadsheets{$cachekey}->{'maxrow'};
    } else {      } else {
         # Not cached, need to read          # Not cached, need to read
         if (! defined($filename)) {          if (! defined($filename)) {
             $formulas = $self->load_system_default_sheet();              $formulas = $self->load_system_default_sheet();
Line 1656  sub load { Line 1658  sub load {
                 $formulas = $self->load_system_default_sheet();                  $formulas = $self->load_system_default_sheet();
             }              }
         }          }
         $filename=$self->filename(); # filename may have changed  
  $cachekey = join('_',($cnum,$cdom,$stype,$filename));  
  if (ref($formulas) eq 'HASH') {  
     %{$spreadsheets{$cachekey}->{'formulas'}} = %{$formulas};  
  }  
  $self->formulas($formulas);   $self->formulas($formulas);
  $self->set_row_sources();   $self->set_row_sources();
  $self->set_row_numbers();   $self->set_row_numbers();
  if (ref($self->{'row_source'})) {   $self->cache_sheet($formulas);
     %{$spreadsheets{$cachekey}->{'row_source'}} =       }
  %{$self->{'row_source'}};  }
  }  
  if (ref($self->{'row_numbers'})) {  sub cache_sheet {
     %{$spreadsheets{$cachekey}->{'row_numbers'}} =       my $self = shift;
  %{$self->{'row_numbers'}};      my ($formulas) = @_;
  }      my $stype = $self->{'type'};
         $spreadsheets{$cachekey}->{'maxrow'} = $self->{'maxrow'};      my $cnum  = $self->{'cnum'};
       my $cdom  = $self->{'cdom'};
       #
       my $filename = $self->filename();
       my $cachekey = join('_',($cnum,$cdom,$stype,$filename));
   
       if (ref($formulas) eq 'HASH') {
    %{$spreadsheets{$cachekey}->{'formulas'}} = %{$formulas};
       }
       if (ref($self->{'row_source'})) {
    %{$spreadsheets{$cachekey}->{'row_source'}} =%{$self->{'row_source'}};
       }
       if (ref($self->{'row_numbers'})) {
    %{$spreadsheets{$cachekey}->{'row_numbers'}}=%{$self->{'row_numbers'}};
     }      }
       $spreadsheets{$cachekey}->{'maxrow'} = $self->{'maxrow'};
 }  }
   
 sub set_row_sources {  sub set_row_sources {
Line 1725  sub save { Line 1736  sub save {
         my $cnum  = $self->{'cnum'};          my $cnum  = $self->{'cnum'};
         my $cdom  = $self->{'cdom'};          my $cdom  = $self->{'cdom'};
         my $filename    = $self->{'filename'};          my $filename    = $self->{'filename'};
         my $cachekey = join('_',($cnum,$cdom,$stype,$filename));  
         # Cache new sheet          # Cache new sheet
         %{$spreadsheets{$cachekey}->{'formulas'}}=%f;   $self->cache_sheet(\%f);
         # Write sheet          # Write sheet
         foreach (keys(%f)) {          foreach (keys(%f)) {
             delete($f{$_}) if ($f{$_} eq 'import');              delete($f{$_}) if ($f{$_} eq 'import');

Removed from v.1.56  
changed lines
  Added in v.1.61


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