--- loncom/interface/Attic/lonspreadsheet.pm 2000/12/30 19:59:18 1.21 +++ loncom/interface/Attic/lonspreadsheet.pm 2000/12/30 21:33:11 1.22 @@ -650,7 +650,19 @@ sub writesheet { &getfilename($safeeval).':'. $sheetdata, $ENV{'course.'.$ENV{'request.course.id'}.'.home'}); - } + if ($reply eq 'ok') { + return &Apache::lonnet::reply('put:'. + $ENV{'course.'.$ENV{'request.course.id'}.'.domain'}.':'. + $ENV{'course.'.$ENV{'request.course.id'}.'.num'}.':'. + &gettype($safeeval).'_spreadsheets:'. + &Apache::lonnet::escape(&getfilename($safeeval)).'='. + $ENV{'user.name'}, + $ENV{'course.'.$ENV{'request.course.id'}.'.home'}); + } else { + return $reply; + } + } + return 'unauthorized'; } # ----------------------------------------------- Make a temp copy of the sheet @@ -684,7 +696,7 @@ sub tmpread { $fo{$name}=$value; } } - $fo{$nfield}=$nform; + if ($nfield) { $fo{$nfield}=$nform; } &setformulas($safeeval,%fo); } @@ -1125,12 +1137,16 @@ ENDSCRIPT if ($ENV{'form.unewfield'}) { $r->print('

Modified Workcopy

'); $ENV{'form.unewformula'}=~s/\'/\"/g; - $r->print('New formula: '.$ENV{'form.unewfield'}.'='. - $ENV{'form.unewformula'}.'
'); + $r->print('

New formula: '.$ENV{'form.unewfield'}.'='. + $ENV{'form.unewformula'}.'

'); &setfilename($sheetone,$ENV{'form.ufn'}); &tmpread($sheetone,$r->dir_config('lonDaemons').'/tmp/', $ENV{'form.usymb'}, $ENV{'form.unewfield'},$ENV{'form.unewformula'}); + } elsif ($ENV{'form.saveas'}) { + &setfilename($sheetone,$ENV{'form.ufn'}); + &tmpread($sheetone,$r->dir_config('lonDaemons').'/tmp/', + $ENV{'form.usymb'}); } else { &readsheet($sheetone,$ENV{'form.ufn'},$r); $ENV{'form.ufn'}=&getfilename($sheetone); @@ -1151,7 +1167,21 @@ ENDSCRIPT $r->print('

'. 'Could not initialize import fields (not in a course)

'); } - +# ---------------------------------------------------- See if something to save + if (&Apache::lonnet::allowed('opa',$ENV{'request.course.id'})) { + my $fname=''; + if ($ENV{'form.saveas'} && ($fname=$ENV{'form.newfn'})) { + $fname=~s/\W/\_/g; + if ($fname eq 'default') { $fname='course_default'; } + $fname.='_'.&gettype($sheetone); + &setfilename($sheetone,$fname); + $ENV{'form.ufn'}=$fname; + my $reply=&writesheet($sheetone); + unless ($reroute) { + $r->print('

Saving spreadsheet: '.$reply.'

'); + } + } + } # ------------------------------------------------ Write the modified worksheet &tmpwrite($sheetone,$r->dir_config('lonDaemons').'/tmp/', @@ -1159,6 +1189,13 @@ ENDSCRIPT # ----------------------------------------------------- Print user, course, etc unless ($reroute) { + if (&Apache::lonnet::allowed('opa',$ENV{'request.course.id'})) { + my $fname=$ENV{'form.ufn'}; + $fname=~s/\_[^\_]+$//; + if ($fname eq 'default') { $fname='course_default'; } + $r->print(''. + '

'); + } $r->print(&hiddenfield('ufn',$ENV{'form.ufn'}). "User '$uname' at domain '$udom' for '". $ENV{'course.'.$ENV{'request.course.id'}.'.description'}."'");