Diff for /loncom/interface/spreadsheet/Spreadsheet.pm between versions 1.69 and 1.73.2.1

version 1.69, 2006/05/30 12:46:26 version 1.73.2.1, 2007/01/25 22:00:07
Line 172  sub filename { Line 172  sub filename {
                 $newfilename = 'default_'.$self->{'type'};                  $newfilename = 'default_'.$self->{'type'};
             }              }
         }          }
         if ($newfilename !~ /\w/ || $newfilename =~ /^\W*$/) {   if ($newfilename eq &mt('LON-CAPA Standard')) {
             $newfilename = 'default_'.$self->{'type'};      undef($newfilename);
         }   } else {
         if ($newfilename !~ /^default\.$self->{'type'}$/ &&      if ($newfilename !~ /\w/ || $newfilename =~ /^\W*$/) {
             $newfilename !~ /^\/res\/(.*)spreadsheet$/) {   $newfilename = 'default_'.$self->{'type'};
             if ($newfilename !~ /_$self->{'type'}$/) {      }
                 $newfilename =~ s/[\s_]*$//;      if ($newfilename !~ /^default\.$self->{'type'}$/ &&
                 $newfilename .= '_'.$self->{'type'};   $newfilename !~ /^\/res\/(.*)spreadsheet$/) {
             }   if ($newfilename !~ /_$self->{'type'}$/) {
         }      $newfilename =~ s/[\s_]*$//;
       $newfilename .= '_'.$self->{'type'};
    }
       }
    }
         $self->{'filename'} = $newfilename;          $self->{'filename'} = $newfilename;
         return;          return;
     }      }
Line 803  sub expandnamed { Line 807  sub expandnamed {
     if ($expression=~/^\&/) {      if ($expression=~/^\&/) {
  my ($func,$var,$formula)=($expression=~/^\&(\w+)\(([^\;]+)\;(.*)\)/);   my ($func,$var,$formula)=($expression=~/^\&(\w+)\(([^\;]+)\;(.*)\)/);
  my @vars=split(/\W+/,$formula);   my @vars=split(/\W+/,$formula);
    # make the list uniq
    @vars = keys(%{{ map { $_ => 1 } @vars }});
         my %values=();          my %values=();
  foreach my $varname ( @vars ) {   foreach my $varname ( @vars ) {
             if ($varname=~/^(parameter|stores|timestamp)/) {              if ($varname=~/^(parameter|stores|timestamp)/) {
Line 1286  sub html_template_row { Line 1292  sub html_template_row {
     $row_html .= '<td bgcolor="'.$importcolor.'">'.      $row_html .= '<td bgcolor="'.$importcolor.'">'.
                 &html_uneditable_cell($cell,'#FFDDDD',$allowed).'</td>';                  &html_uneditable_cell($cell,'#FFDDDD',$allowed).'</td>';
         } else {          } else {
     $row_html .= '<td bgcolor="#EOFFDD">'.      $row_html .= '<td bgcolor="#E0FFDD">'.
                 &html_editable_cell($cell,'#EOFFDD',$allowed,                  &html_editable_cell($cell,'#E0FFDD',$allowed,
                                     $self->{outputmode} eq 'source').'</td>';                                      $self->{outputmode} eq 'source').'</td>';
         }          }
     }      }
Line 1363  sub html_row { Line 1369  sub html_row {
     $row_html .= '<td bgcolor="'.$color.'">';      $row_html .= '<td bgcolor="'.$color.'">';
     $row_html .= &html_uneditable_cell($cell,'#FFDDDD');      $row_html .= &html_uneditable_cell($cell,'#FFDDDD');
  } else {   } else {
     $row_html .= '<td bgcolor="#EOFFDD">';      $row_html .= '<td bgcolor="#E0FFDD">';
     $row_html .= &html_editable_cell($cell,'#E0FFDD',$allowed,      $row_html .= &html_editable_cell($cell,'#E0FFDD',$allowed,
                                              $self->{outputmode} eq 'source');                                               $self->{outputmode} eq 'source');
  }   }
Line 1684  sub load { Line 1690  sub load {
             # Load the spreadsheet definition file from the save file              # Load the spreadsheet definition file from the save file
             my %tmphash = &Apache::lonnet::dump($filename,$cdom,$cnum);              my %tmphash = &Apache::lonnet::dump($filename,$cdom,$cnum);
             my ($tmp) = keys(%tmphash);              my ($tmp) = keys(%tmphash);
             if ($tmp !~ /^(con_lost|error|no_such_host)/i) {              if (%tmphash
    && $tmp !~ /^(con_lost|error|no_such_host)/i) {
                 while (my ($cell,$formula) = each(%tmphash)) {                  while (my ($cell,$formula) = each(%tmphash)) {
                     $formulas->{$cell}=$formula;                      $formulas->{$cell}=$formula;
                 }                  }
Line 1790  sub save { Line 1797  sub save {
     &Apache::lonnet::appenv('course.'.$self->{'cid'}.'.spreadsheet_default_'.      &Apache::lonnet::appenv('course.'.$self->{'cid'}.'.spreadsheet_default_'.
     $self->{'type'} => $self->filename());      $self->{'type'} => $self->filename());
         }           } 
         if ($self->is_default()) {   if ($self->{'type'} eq 'studentcalc') {
             if ($self->{'type'} eq 'studentcalc') {      &Apache::lonnet::expirespread('','','studentcalc','');
                 &Apache::lonnet::expirespread('','','studentcalc','');   } elsif ($self->{'type'} eq 'assesscalc') {
             } elsif ($self->{'type'} eq 'assesscalc') {      &Apache::lonnet::expirespread('','','assesscalc','');
                 &Apache::lonnet::expirespread('','','assesscalc','');      &Apache::lonnet::expirespread('','','studentcalc','');
                 &Apache::lonnet::expirespread('','','studentcalc','');  
             }  
         }          }
         return $reply;          return $reply;
     }      }
Line 1881  sub othersheets { Line 1886  sub othersheets {
     my ($stype) = @_;      my ($stype) = @_;
     $stype = $self->{'type'} if (! defined($stype) || $stype !~ /calc$/);      $stype = $self->{'type'} if (! defined($stype) || $stype !~ /calc$/);
     #      #
     my @alternatives=();      my @alternatives=(&mt('Default'), &mt('LON-CAPA Standard'));
     my %results=&Apache::lonnet::dump($stype.'_spreadsheets',      my %results=&Apache::lonnet::dump($stype.'_spreadsheets',
                                       $self->{'cdom'}, $self->{'cnum'});                                        $self->{'cdom'}, $self->{'cnum'});
     my ($tmp) = keys(%results);      my ($tmp) = keys(%results);
     if ($tmp =~ /^(con_lost|error|no_such_host)/i ) {      if (%results
         @alternatives = (&mt('Default'));   && $tmp !~ /^(con_lost|error|no_such_host)/i ) {
     } else {          push(@alternatives, sort(keys(%results)));
         @alternatives = (&mt('Default'), sort (keys(%results)));  
     }      }
     return @alternatives;       return @alternatives; 
 }  }

Removed from v.1.69  
changed lines
  Added in v.1.73.2.1


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