[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