Diff for /loncom/interface/spreadsheet/Spreadsheet.pm between versions 1.48 and 1.53

version 1.48, 2005/05/15 04:02:17 version 1.53, 2005/08/24 18:14:47
Line 111  sub new { Line 111  sub new {
         #          #
         # Flags          # Flags
         temporary => 0,  # true if this sheet has been modified but not saved          temporary => 0,  # true if this sheet has been modified but not saved
         new_rows  => 0, # true if this sheet has new rows          new_rows  => 0,  # true if this sheet has new rows
    loaded    => 0,  # true if the formulas have been loaded
         #          #
         # blackout is used to determine if any data needs to be hidden from the          # blackout is used to determine if any data needs to be hidden from the
         # student.          # student.
Line 126  sub new { Line 127  sub new {
     };      };
     #      #
     bless($self,$class);      bless($self,$class);
     #  
     # Load in the spreadsheet definition  
     $self->filename($filename);      $self->filename($filename);
     if (exists($env{'form.workcopy'}) &&       #
         $self->{'type'} eq $env{'form.workcopy'}) {  
         $self->load_tmp();  
     } else {  
         $self->load();  
     }  
     return $self;      return $self;
 }  }
   
Line 976  sub formulas { Line 970  sub formulas {
         $self->{'template_cells'} = [];          $self->{'template_cells'} = [];
         return;          return;
     } else {      } else {
    if (!$self->{'loaded'}) {
       $self->{'loaded'}=1;
       # Load in the spreadsheet definition
       if (exists($env{'form.workcopy'}) && 
    $self->{'type'} eq $env{'form.workcopy'}) {
    $self->load_tmp();
       } else {
    $self->load();
       }
    }
         return %{$self->{'formulas'}};          return %{$self->{'formulas'}};
     }      }
 }  }
Line 1611  sub load { Line 1615  sub load {
     my ($formulas);      my ($formulas);
     if (exists($spreadsheets{$cachekey})) {      if (exists($spreadsheets{$cachekey})) {
         $formulas = $spreadsheets{$cachekey}->{'formulas'};          $formulas = $spreadsheets{$cachekey}->{'formulas'};
     } else {   $self->formulas($formulas);
           $self->{'row_source'}=$spreadsheets{$cachekey}->{'row_source'};
           $self->{'row_numbers'}=$spreadsheets{$cachekey}->{'row_numbers'};
           $self->{'maxrow'}=$spreadsheets{$cachekey}->{'maxrow'};
      } 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 1645  sub load { Line 1653  sub load {
             }              }
         }          }
         $filename=$self->filename(); # filename may have changed          $filename=$self->filename(); # filename may have changed
         $cachekey = join('_',($cnum,$cdom,$stype,$filename));   $cachekey = join('_',($cnum,$cdom,$stype,$filename));
         %{$spreadsheets{$cachekey}->{'formulas'}} = %{$formulas};   if (ref($formulas) eq 'HASH') {
       %{$spreadsheets{$cachekey}->{'formulas'}} = %{$formulas};
    }
    $self->formulas($formulas);
    $self->set_row_sources();
    $self->set_row_numbers();
    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'};
     }      }
     $self->formulas($formulas);  
     $self->set_row_sources();  
     $self->set_row_numbers();  
 }  }
   
 sub set_row_sources {  sub set_row_sources {

Removed from v.1.48  
changed lines
  Added in v.1.53


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