--- loncom/interface/spreadsheet/Spreadsheet.pm 2003/05/23 14:52:51 1.4 +++ loncom/interface/spreadsheet/Spreadsheet.pm 2003/05/28 15:20:40 1.9 @@ -1,5 +1,5 @@ # -# $Id: Spreadsheet.pm,v 1.4 2003/05/23 14:52:51 matthew Exp $ +# $Id: Spreadsheet.pm,v 1.9 2003/05/28 15:20:40 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -142,7 +142,7 @@ sub filename { if (@_) { my ($newfilename) = @_; if (! defined($newfilename) || $newfilename eq 'Default' || - $newfilename !~ /\w/ || $newfilename =~ /\W/) { + $newfilename !~ /\w/) { my %tmphash = &Apache::lonnet::get('environment', ['spreadsheet_default_'. $self->{'type'}], @@ -152,12 +152,13 @@ sub filename { if ($tmp !~ /^(con_lost|error|no_such_host)/i) { $newfilename=$tmphash{'spreadsheet_default_'.$self->{'type'}}; } - } - if (! defined($newfilename) || - $newfilename !~ /\w/ || - $newfilename =~ /^\W*$/) { - $newfilename = 'default.'.$self->{'type'}; - } else { + if (! defined($newfilename) || + $newfilename !~ /\w/ || + $newfilename =~ /^\W*$/) { + $newfilename = 'default.'.$self->{'type'}; + } + } elsif ($newfilename !~ /^\/res\/.*\.spreadsheet/ && + $newfilename !~ /^default\.$self->{'type'}$/ ) { my $regexp = '_'.$self->{'type'}.'$'; if ($newfilename !~ /$regexp/) { $newfilename .= '_'.$self->{'type'}; @@ -1110,6 +1111,24 @@ sub calcsheet { ## Output Helpers ## ########################################################### +sub display { + my $self = shift; + my ($r) = @_; + $self->compute($r); + my $outputmode = 'html'; + if ($ENV{'form.output_format'} =~ /^(html|excel|csv)$/) { + $outputmode = $ENV{'form.output_format'}; + } + if ($outputmode eq 'html') { + $self->outsheet_html($r); + } elsif ($outputmode eq 'excel') { + $self->outsheet_excel($r); + } elsif ($outputmode eq 'csv') { + $self->outsheet_csv($r); + } + return; +} + ############################################ ## HTML output routines ## ############################################ @@ -1140,8 +1159,8 @@ sub html_template_row { for (my $i = 0; $i<=$#rowdata; $i++) { my $cell = $rowdata[$i]; if ($i < $num_uneditable) { - $row_html .= ''. - &html_editable_cell($cell,'#DDCCFF',$allowed).''; + $row_html .= ''. + &html_uneditable_cell($cell,'#FFDDDD',$allowed).''; } else { $row_html .= ''. &html_editable_cell($cell,'#EOFFDD',$allowed).''; @@ -1212,6 +1231,55 @@ sub html_row { return $row_html; } +sub html_header { + my $self = shift; + return '' if (! $ENV{'request.role.adv'}); + return "\n". + ''."\n". + '\n". + "
Output Format
'.&output_selector()."
\n"; +} + +sub output_selector { + my $output_selector = '