--- loncom/interface/spreadsheet/Spreadsheet.pm 2006/05/30 12:46:26 1.69
+++ loncom/interface/spreadsheet/Spreadsheet.pm 2007/01/25 22:00:07 1.73.2.1
@@ -1,5 +1,5 @@
#
-# $Id: Spreadsheet.pm,v 1.69 2006/05/30 12:46:26 www Exp $
+# $Id: Spreadsheet.pm,v 1.73.2.1 2007/01/25 22:00:07 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -172,16 +172,20 @@ sub filename {
$newfilename = 'default_'.$self->{'type'};
}
}
- if ($newfilename !~ /\w/ || $newfilename =~ /^\W*$/) {
- $newfilename = 'default_'.$self->{'type'};
- }
- if ($newfilename !~ /^default\.$self->{'type'}$/ &&
- $newfilename !~ /^\/res\/(.*)spreadsheet$/) {
- if ($newfilename !~ /_$self->{'type'}$/) {
- $newfilename =~ s/[\s_]*$//;
- $newfilename .= '_'.$self->{'type'};
- }
- }
+ if ($newfilename eq &mt('LON-CAPA Standard')) {
+ undef($newfilename);
+ } else {
+ if ($newfilename !~ /\w/ || $newfilename =~ /^\W*$/) {
+ $newfilename = 'default_'.$self->{'type'};
+ }
+ if ($newfilename !~ /^default\.$self->{'type'}$/ &&
+ $newfilename !~ /^\/res\/(.*)spreadsheet$/) {
+ if ($newfilename !~ /_$self->{'type'}$/) {
+ $newfilename =~ s/[\s_]*$//;
+ $newfilename .= '_'.$self->{'type'};
+ }
+ }
+ }
$self->{'filename'} = $newfilename;
return;
}
@@ -803,6 +807,8 @@ sub expandnamed {
if ($expression=~/^\&/) {
my ($func,$var,$formula)=($expression=~/^\&(\w+)\(([^\;]+)\;(.*)\)/);
my @vars=split(/\W+/,$formula);
+ # make the list uniq
+ @vars = keys(%{{ map { $_ => 1 } @vars }});
my %values=();
foreach my $varname ( @vars ) {
if ($varname=~/^(parameter|stores|timestamp)/) {
@@ -1286,8 +1292,8 @@ sub html_template_row {
$row_html .= '
'.
&html_uneditable_cell($cell,'#FFDDDD',$allowed).' | ';
} else {
- $row_html .= ''.
- &html_editable_cell($cell,'#EOFFDD',$allowed,
+ $row_html .= ' | '.
+ &html_editable_cell($cell,'#E0FFDD',$allowed,
$self->{outputmode} eq 'source').' | ';
}
}
@@ -1363,7 +1369,7 @@ sub html_row {
$row_html .= '';
$row_html .= &html_uneditable_cell($cell,'#FFDDDD');
} else {
- $row_html .= ' | ';
+ $row_html .= ' | ';
$row_html .= &html_editable_cell($cell,'#E0FFDD',$allowed,
$self->{outputmode} eq 'source');
}
@@ -1684,7 +1690,8 @@ sub load {
# Load the spreadsheet definition file from the save file
my %tmphash = &Apache::lonnet::dump($filename,$cdom,$cnum);
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)) {
$formulas->{$cell}=$formula;
}
@@ -1790,13 +1797,11 @@ sub save {
&Apache::lonnet::appenv('course.'.$self->{'cid'}.'.spreadsheet_default_'.
$self->{'type'} => $self->filename());
}
- if ($self->is_default()) {
- if ($self->{'type'} eq 'studentcalc') {
- &Apache::lonnet::expirespread('','','studentcalc','');
- } elsif ($self->{'type'} eq 'assesscalc') {
- &Apache::lonnet::expirespread('','','assesscalc','');
- &Apache::lonnet::expirespread('','','studentcalc','');
- }
+ if ($self->{'type'} eq 'studentcalc') {
+ &Apache::lonnet::expirespread('','','studentcalc','');
+ } elsif ($self->{'type'} eq 'assesscalc') {
+ &Apache::lonnet::expirespread('','','assesscalc','');
+ &Apache::lonnet::expirespread('','','studentcalc','');
}
return $reply;
}
@@ -1881,14 +1886,13 @@ sub othersheets {
my ($stype) = @_;
$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',
$self->{'cdom'}, $self->{'cnum'});
my ($tmp) = keys(%results);
- if ($tmp =~ /^(con_lost|error|no_such_host)/i ) {
- @alternatives = (&mt('Default'));
- } else {
- @alternatives = (&mt('Default'), sort (keys(%results)));
+ if (%results
+ && $tmp !~ /^(con_lost|error|no_such_host)/i ) {
+ push(@alternatives, sort(keys(%results)));
}
return @alternatives;
}
|