[LON-CAPA-cvs] cvs: loncom /interface lonspreadsheet.pm

matthew lon-capa-cvs@mail.lon-capa.org
Mon, 09 Dec 2002 16:06:57 -0000


matthew		Mon Dec  9 11:06:57 2002 EDT

  Modified files:              
    /loncom/interface	lonspreadsheet.pm 
  Log:
  Added 'else' clause to check for successful loading of perviously saved
  spreadsheet files.  If we are unable to load the proper spreadsheet file, we now load the default.  If we are unable to load the default, we tell the user.
  This change is mostly to make life easier for me as I test new default 
  spreadsheets.
  
  
Index: loncom/interface/lonspreadsheet.pm
diff -u loncom/interface/lonspreadsheet.pm:1.156 loncom/interface/lonspreadsheet.pm:1.157
--- loncom/interface/lonspreadsheet.pm:1.156	Mon Dec  9 09:50:11 2002
+++ loncom/interface/lonspreadsheet.pm	Mon Dec  9 11:06:56 2002
@@ -1,5 +1,5 @@
 #
-# $Id: lonspreadsheet.pm,v 1.156 2002/12/09 14:50:11 matthew Exp $
+# $Id: lonspreadsheet.pm,v 1.157 2002/12/09 16:06:56 matthew Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -1839,13 +1839,27 @@
             }
             %f=%{&parse_sheet(\$sheetxml)};
         } else {
-            my $sheet='';
             my %tmphash = &Apache::lonnet::dump($fn,$cdom,$cnum);
             my ($tmp) = keys(%tmphash);
-            unless ($tmp =~ /^(con_lost|error|no_such_host)/i) {
+            if ($tmp !~ /^(con_lost|error|no_such_host)/i) {
                 foreach (keys(%tmphash)) {
                     $f{$_}=$tmphash{$_};
                 }
+            } else {
+                # Unable to grab the specified spreadsheet,
+                # so we get the default ones instead.
+                $fn = 'default_'.$stype;
+                $sheet->{'filename'} = $fn;
+                my $dfn = $fn;
+                $dfn =~ s/\_/\./g;
+                my $sheetxml;
+                if (my $fh=Apache::File->new($includedir.'/'.$dfn)) {
+                    $sheetxml = join('',<$fh>);
+                } else {
+                    $sheetxml='<field row="0" col="A">'.
+                        '"Unable to load spreadsheet"</field>';
+                }
+                %f=%{&parse_sheet(\$sheetxml)};
             }
         }
         # Cache and set