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

version 1.56, 2005/09/01 21:52:56 version 1.57, 2005/10/12 21:48:32
Line 1623  sub load { Line 1623  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 1656  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'})) {  
     %{$spreadsheets{$cachekey}->{'row_numbers'}} =   
  %{$self->{'row_numbers'}};  
  }  
         $spreadsheets{$cachekey}->{'maxrow'} = $self->{'maxrow'};  
     }      }
 }  }
   
   sub cache_sheet {
       my $self = shift;
       my $formulas=(@_);
       my $stype = $self->{'type'};
       my $cnum  = $self->{'cnum'};
       my $cdom  = $self->{'cdom'};
       #
       my $filename = $self->filename();
       my $cachekey = join('_',($cnum,$cdom,$stype,$filename));
   
       if (ref($self->{'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 {
     my $self = shift;      my $self = shift;
     $self->check_formulas_loaded();      $self->check_formulas_loaded();
Line 1725  sub save { Line 1734  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.57


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