--- loncom/interface/spreadsheet/lonspreadsheet.pm 2003/05/23 19:36:04 1.4 +++ loncom/interface/spreadsheet/lonspreadsheet.pm 2003/07/16 13:52:19 1.16 @@ -1,5 +1,5 @@ # -# $Id: lonspreadsheet.pm,v 1.4 2003/05/23 19:36:04 matthew Exp $ +# $Id: lonspreadsheet.pm,v 1.16 2003/07/16 13:52:19 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -88,6 +88,102 @@ sub selectbox { return $selout.''; } +sub file_dialogs { + my ($spreadsheet) = @_; + my $bgcolor = "#FFFFFF"; + my $sheettype = $spreadsheet->{'type'}; + my $result = ''; + my $message = ''; + ## + ## Deal with saving the spreadsheet + if ((exists($ENV{'form.save'}) || exists($ENV{'form.makedefault'})) && + exists($ENV{'form.savefilename'})) { + $spreadsheet->filename($ENV{'form.savefilename'}); + my $save_status = $spreadsheet->save(); + if ($save_status ne 'ok') { + $message .= "An error occurred while saving the spreadsheet". + "There error is:".$save_status; + return $result; + } else { + $message .= "Spreadsheet saved as ".$ENV{'form.savefilename'}; + } + } elsif (exists($ENV{'form.newformula'}) && + exists($ENV{'form.cell'}) && + $ENV{'form.cell'} ne '' ) { + ## + ## Make any requested modifications to the spreadsheet + $spreadsheet->modify_cell($ENV{'form.cell'}, + $ENV{'form.newformula'}); + $spreadsheet->save_tmp(); + # output that we are dealing with a temporary file + $result .=&hiddenfield('workcopy',$sheettype); + if ($ENV{'form.newformula'} !~ /^\s*$/) { + $message .=''. + ''. + '
Cell '.$ENV{'form.cell'}.' = 
'.$ENV{'form.newformula'}."
\n"; + } else { + $message .= 'Deleted contents of cell '.$ENV{'form.cell'}.'.'; + } + } + ## + ## Editing code + $result .=&hiddenfield('cell',''). + &hiddenfield('newformula',''); + ## + ## Create the save and load dialogs + my $filename = $spreadsheet->filename(); + my $truefilename = $filename; + if ($spreadsheet->is_default()) { + $filename = 'Default'; + } + my $save_dialog = ''. + ' '. + ''. + ''; + my $makedefault_dialog = ''; + # + my $link = 'Select Spreadsheet File"; + my $load_dialog = < + + + + $link + +  + '. - ''; - my $makedefault_dialog = - ''; - # - my $load_dialog = - ''. - '
'); + } # # Keep track of the filename $r->print(&hiddenfield('filename',$filename)); # - $r->print($spreadsheet->get_html_title()); - if ($allowed_to_view || $allowed_to_edit) { - $r->print($spreadsheet->parent_link()); + # Keep track of the number of times we have been called, sort of. + $r->print(&hiddenfield('not_first_run','whatever')); + # + if (exists($ENV{'form.not_first_run'}) || $sheettype ne 'classcalc') { + $r->print($spreadsheet->get_html_title()); + if ($allowed_to_view || $allowed_to_edit) { + $r->print($spreadsheet->parent_link()); + } + $r->rflush(); + $spreadsheet->display($r); } - $spreadsheet->display($r); $r->print(''); return OK; }