Diff for /loncom/interface/spreadsheet/Spreadsheet.pm between versions 1.79 and 1.84

version 1.79, 2008/09/11 14:47:22 version 1.84, 2014/02/28 19:20:11
Line 726  sub get_values { Line 726  sub get_values {
  my @num=($ld..$ud);   my @num=($ld..$ud);
  foreach my $a (@alpha) {   foreach my $a (@alpha) {
     foreach my $n (@num) {      foreach my $n (@num) {
  if (exists($sheet_values{$a.$n})) {   if ((exists($sheet_values{$a.$n})) && ($sheet_values{$a.$n} ne '')) {
     push(@values,$sheet_values{$a.$n});      push(@values,$sheet_values{$a.$n});
  }   }
     }      }
Line 742  sub get_values { Line 742  sub get_values {
         $alpha=qq/[$la-$ua]/;          $alpha=qq/[$la-$ua]/;
     }      }
     my $expression = '^'.$alpha.$num.'$';      my $expression = '^'.$alpha.$num.'$';
     foreach (grep /$expression/,keys(%sheet_values)) {      foreach my $item (grep(/$expression/,keys(%sheet_values))) {
  push(@values,$sheet_values{$_});          unless ($sheet_values{$item} eq '') {
       push(@values,$sheet_values{$item});
           }
     }      }
     return \@values;      return \@values;
 }  }
Line 772  sub calc { Line 774  sub calc {
         $depth++;          $depth++;
         if ($depth>100) {          if ($depth>100) {
     undef %sheet_values;      undef %sheet_values;
             return $lastcalc.': Maximum calculation depth exceeded';              return $lastcalc.': '.&mt('Maximum calculation depth exceeded');
         }          }
     }      }
     return 'okay';      return 'okay';
Line 871  sub expandnamed { Line 873  sub expandnamed {
             $returnvalue = $values[0];              $returnvalue = $values[0];
         } elsif (scalar(@matches) > 0) {          } elsif (scalar(@matches) > 0) {
             # more than one match.  Look for a concise one              # more than one match.  Look for a concise one
             $returnvalue =  "'non-unique parameter name : $expression'";              $returnvalue =  "'".&mt('non-unique parameter name: [_1]',$expression).'"';
             for (my $i=0; $i<=$#matches;$i++) {              for (my $i=0; $i<=$#matches;$i++) {
                 if ($matches[$i] =~ /^$expression$/) {                  if ($matches[$i] =~ /^$expression$/) {
                     # why do we not do this lookup here?                      # why do we not do this lookup here?
Line 881  sub expandnamed { Line 883  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: '.$expression.'"';              $returnvalue = "'".&mt('bizzarre parameter: [_1]',$expression)."'";
         }          }
         return $returnvalue;          return $returnvalue;
     }      }
Line 1265  sub html_report_error { Line 1267  sub html_report_error {
     my $self = shift();      my $self = shift();
     my $Str = '';      my $Str = '';
     if ($self->badcalc()) {      if ($self->badcalc()) {
         $Str = '<h3 style="color:red">'.          $Str = '<p class="LC_error">'.
             &mt('An error occurred while calculating this spreadsheet').              &mt('An error occurred while calculating this spreadsheet').
             "</h3>\n".              "</p>\n".
             '<pre>'.$self->calcerror()."</pre>\n";              '<pre>'.$self->calcerror()."</pre>\n";
     }      }
     return $Str;      return $Str;
Line 1430  sub output_selector { Line 1432  sub output_selector {
     foreach  ($self->output_options()) {      foreach  ($self->output_options()) {
         $output_selector.='<option value="'.$_->{'value'}.'"';          $output_selector.='<option value="'.$_->{'value'}.'"';
         if ($_->{'value'} eq $default) {          if ($_->{'value'} eq $default) {
             $output_selector .= ' selected';              $output_selector .= ' selected="selected"';
         }          }
         $output_selector .= ">".&mt($_->{'description'})."</option>\n";          $output_selector .= ">".&mt($_->{'description'})."</option>\n";
     }      }
Line 1507  sub outsheet_excel { Line 1509  sub outsheet_excel {
     #      #
     # Write a link to allow them to download it      # Write a link to allow them to download it
     $r->print('<br />'.      $r->print('<br />'.
               '<a href="'.$filename.'">Your Excel spreadsheet.</a>'."\n");                '<a href="'.$filename.'">'.&mt('Your Excel spreadsheet').'</a>'."\n");
     return;      return;
 }  }
   
Line 1525  sub outsheet_csv   { Line 1527  sub outsheet_csv   {
     my $csvdata = '';      my $csvdata = '';
     my @Values;      my @Values;
     #      #
     # Open the csv file      # Open the CSV file
     my $filename = '/prtspool/'.      my $filename = '/prtspool/'.
         $env{'user.name'}.'_'.$env{'user.domain'}.'_'.          $env{'user.name'}.'_'.$env{'user.domain'}.'_'.
         time.'_'.rand(1000000000).'.csv';          time.'_'.rand(1000000000).'.csv';
     my $file;      my $file;
     unless ($file = Apache::File->new('>'.'/home/httpd'.$filename)) {      unless ($file = Apache::File->new('>'.'/home/httpd'.$filename)) {
         $r->log_error("Couldn't open $filename for output $!");          $r->log_error("Couldn't open $filename for output $!");
         $r->print(&mt('Problems occurred in writing the csv file. '          $r->print(
                      .'This error has been logged. '              '<p class="LC_error">'
                      .'Please alert your LON-CAPA administrator.'));             .&mt('Problems occurred in writing the CSV file.')
              .' '.&mt('This error has been logged.')
              .' '.&mt('Please alert your LON-CAPA administrator.')
              .'</p>'
           );
         $r->print("<pre>\n".$csvdata."</pre>\n");          $r->print("<pre>\n".$csvdata."</pre>\n");
         return 0;          return 0;
     }      }
Line 1547  sub outsheet_csv   { Line 1553  sub outsheet_csv   {
     # Output the body of the spreadsheet      # Output the body of the spreadsheet
     $self->csv_rows($connection,$file);      $self->csv_rows($connection,$file);
     #      #
     # Close the csv file      # Close the CSV file
     close($file);      close($file);
     $r->print('<br /><br />'.      $r->print('<br /><br />'.
               '<a href="'.$filename.'">'.&mt('Your CSV spreadsheet.').'</a>'."\n");                '<a href="'.$filename.'">'.&mt('Your CSV spreadsheet.').'</a>'."\n");
Line 1689  sub load { Line 1695  sub load {
             my $sheetxml=&Apache::lonnet::getfile              my $sheetxml=&Apache::lonnet::getfile
                 (&Apache::lonnet::filelocation('',$filename));                  (&Apache::lonnet::filelocation('',$filename));
             if ($sheetxml == -1) {              if ($sheetxml == -1) {
                 $sheetxml='<field row="0" col="A">"Error loading spreadsheet '                  $sheetxml='<field row="0" col="A">'.
                     .$self->filename().'"</field>';                            &mt('Error loading spreadsheet [_1]',
                                     '"'.$self->filename().'"').
                             '</field>';
             }              }
             ($formulas,undef) = &parse_sheet(\$sheetxml);              ($formulas,undef) = &parse_sheet(\$sheetxml);
             # Get just the filename and set the sheets filename              # Get just the filename and set the sheets filename

Removed from v.1.79  
changed lines
  Added in v.1.84


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