Diff for /loncom/interface/spreadsheet/Spreadsheet.pm between versions 1.6 and 1.11

version 1.6, 2003/05/23 21:03:29 version 1.11, 2003/05/29 13:39:38
Line 142  sub filename { Line 142  sub filename {
     if (@_) {      if (@_) {
         my ($newfilename) = @_;          my ($newfilename) = @_;
         if (! defined($newfilename) || $newfilename eq 'Default' ||          if (! defined($newfilename) || $newfilename eq 'Default' ||
             $newfilename !~ /\w/    || $newfilename =~ /\W/) {              $newfilename !~ /\w/) {
             my %tmphash = &Apache::lonnet::get('environment',              my %tmphash = &Apache::lonnet::get('environment',
                                                ['spreadsheet_default_'.                                                 ['spreadsheet_default_'.
                                                 $self->{'type'}],                                                  $self->{'type'}],
Line 152  sub filename { Line 152  sub filename {
             if ($tmp !~ /^(con_lost|error|no_such_host)/i) {              if ($tmp !~ /^(con_lost|error|no_such_host)/i) {
                 $newfilename=$tmphash{'spreadsheet_default_'.$self->{'type'}};                  $newfilename=$tmphash{'spreadsheet_default_'.$self->{'type'}};
             }              }
         }              if (! defined($newfilename) || 
         if (! defined($newfilename) ||                   $newfilename !~ /\w/   || 
               $newfilename !~ /\w/   ||                   $newfilename =~ /^\W*$/) {
               $newfilename =~ /^\W*$/) {                  $newfilename = 'default.'.$self->{'type'};
             $newfilename = 'default.'.$self->{'type'};              }
         } else {          } elsif ($newfilename !~ /^\/res\/.*\.spreadsheet/ &&
                    $newfilename !~ /^default\.$self->{'type'}$/ ) {
             my $regexp = '_'.$self->{'type'}.'$';              my $regexp = '_'.$self->{'type'}.'$';
             if ($newfilename !~ /$regexp/) {              if ($newfilename !~ /$regexp/) {
                 $newfilename .= '_'.$self->{'type'};                  $newfilename .= '_'.$self->{'type'};
Line 221  sub is_default { Line 222  sub is_default {
     return 0;      return 0;
 }  }
   
   sub initialize {
       # This method is here to remind you that it will be overridden by
       # the descendents of the spreadsheet class.
   }
   
 sub initialize_spreadsheet_package {  sub initialize_spreadsheet_package {
     &load_spreadsheet_expirationdates();      &load_spreadsheet_expirationdates();
     &clear_spreadsheet_definition_cache();      &clear_spreadsheet_definition_cache();
Line 815  sub expandnamed { Line 821  sub expandnamed {
             push @matches,$parameter if ($parameter =~ /$expression/);              push @matches,$parameter if ($parameter =~ /$expression/);
         }          }
         if (scalar(@matches) == 0) {          if (scalar(@matches) == 0) {
             $returnvalue = 'unmatched parameter: '.$parameter;              $returnvalue = '""';#'"unmatched parameter: '.$parameter.'"';
         } elsif (scalar(@matches) == 1) {          } elsif (scalar(@matches) == 1) {
             # why do we not do this lookup here, instead of delaying it?              # why do we not do this lookup here, instead of delaying it?
             $returnvalue = '$c{\''.$matches[0].'\'}';              $returnvalue = '$c{\''.$matches[0].'\'}';
Line 831  sub expandnamed { Line 837  sub expandnamed {
         } else {          } else {
             # There was a negative number of matches, which indicates               # There was a negative number of matches, which indicates 
             # something is wrong with reality.  Better warn the user.              # something is wrong with reality.  Better warn the user.
             $returnvalue = 'bizzare parameter: '.$parameter;              $returnvalue = '"bizzare parameter: '.$parameter.'"';
         }          }
         return $returnvalue;          return $returnvalue;
     }      }
Line 1158  sub html_template_row { Line 1164  sub html_template_row {
     for (my $i = 0; $i<=$#rowdata; $i++) {      for (my $i = 0; $i<=$#rowdata; $i++) {
         my $cell = $rowdata[$i];          my $cell = $rowdata[$i];
         if ($i < $num_uneditable) {          if ($i < $num_uneditable) {
     $row_html .= '<td bgcolor="#DDCCFF">'.      $row_html .= '<td bgcolor="#FFDDDD">'.
                 &html_editable_cell($cell,'#DDCCFF',$allowed).'</td>';                  &html_uneditable_cell($cell,'#FFDDDD',$allowed).'</td>';
         } else {          } else {
     $row_html .= '<td bgcolor="#EOFFDD">'.      $row_html .= '<td bgcolor="#EOFFDD">'.
                 &html_editable_cell($cell,'#EOFFDD',$allowed).'</td>';                  &html_editable_cell($cell,'#EOFFDD',$allowed).'</td>';
Line 1497  sub load { Line 1503  sub load {
                 $sheetxml='<field row="0" col="A"></field>';                  $sheetxml='<field row="0" col="A"></field>';
             }              }
             ($formulas,undef) = &parse_sheet(\$sheetxml);              ($formulas,undef) = &parse_sheet(\$sheetxml);
         } elsif($self->filename() =~ /^\/*\.spreadsheet$/) {          } elsif($self->filename() =~ /^\/res\/.*\.spreadsheet$/) {
             # Load a spreadsheet definition file              # Load a spreadsheet definition file
             my $sheetxml=&Apache::lonnet::getfile              my $sheetxml=&Apache::lonnet::getfile
                 (&Apache::lonnet::filelocation('',$filename));                  (&Apache::lonnet::filelocation('',$filename));
Line 1604  sub save { Line 1610  sub save {
   
 sub save_tmp {  sub save_tmp {
     my $self = shift;      my $self = shift;
     my $fn=$ENV{'user.name'}.'_'.      my $filename=$ENV{'user.name'}.'_'.
         $ENV{'user.domain'}.'_spreadsheet_'.$self->{'usymb'}.'_'.          $ENV{'user.domain'}.'_spreadsheet_'.$self->{'usymb'}.'_'.
            $self->{'filename'};             $self->{'filename'};
     $fn=~s/\W/\_/g;      $filename=~s/\W/\_/g;
     $fn=$Apache::lonnet::tmpdir.$fn.'.tmp';      $filename=$Apache::lonnet::tmpdir.$filename.'.tmp';
     $self->temporary(1);      $self->temporary(1);
     my $fh;      my $fh;
     if ($fh=Apache::File->new('>'.$fn)) {      if ($fh=Apache::File->new('>'.$filename)) {
         my %f = $self->formulas();          my %f = $self->formulas();
         while( my ($cell,$formula) = each(%f)) {          while( my ($cell,$formula) = each(%f)) {
             next if ($formula eq 'import');              next if ($formula eq 'import');
Line 1653  sub temporary { Line 1659  sub temporary {
     if (@_) {      if (@_) {
         ($self->{'temporary'})= @_;          ($self->{'temporary'})= @_;
     }      }
     $self->logthis('temporary = '.$self->{'temporary'});  
     return $self->{'temporary'};      return $self->{'temporary'};
 }  }
   

Removed from v.1.6  
changed lines
  Added in v.1.11


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