--- loncom/interface/spreadsheet/lonspreadsheet.pm 2003/06/19 16:04:06 1.13 +++ loncom/interface/spreadsheet/lonspreadsheet.pm 2003/09/30 15:40:09 1.26 @@ -1,5 +1,5 @@ # -# $Id: lonspreadsheet.pm,v 1.13 2003/06/19 16:04:06 matthew Exp $ +# $Id: lonspreadsheet.pm,v 1.26 2003/09/30 15:40:09 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -54,12 +54,16 @@ built-in functions. package Apache::lonspreadsheet; use strict; +use warnings FATAL=>'all'; +no warnings 'uninitialized'; use Apache::classcalc(); use Apache::studentcalc(); use Apache::assesscalc(); use Apache::Constants qw(:common :http); use Apache::lonnet; use Apache::lonhtmlcommon; +use Apache::lonlocal; +use Apache::loncoursedata(); use HTML::Entities(); ## @@ -103,9 +107,8 @@ sub file_dialogs { 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'}; + $message .= "Spreadsheet saved as ".$spreadsheet->filename(); } } elsif (exists($ENV{'form.newformula'}) && exists($ENV{'form.cell'}) && @@ -165,9 +168,13 @@ END } $load_dialog .= '>'.$sheetfilename."\n"; } - $load_dialog .= " \n\n"; + $load_dialog .= "\n \n\n"; # $result .=< + File Dialogs + --> @@ -180,6 +187,9 @@ END
+ END return ($result,$message); } @@ -200,7 +210,7 @@ sub handler { # HTML Header # if ($r->header_only) { - $r->content_type('text/html'); + &Apache::loncommon::content_type($r,'text/html'); $r->send_http_header; return OK; } @@ -214,11 +224,19 @@ sub handler { $r->uri.":opa:0:0:Cannot modify spreadsheet"; return HTTP_NOT_ACCEPTABLE; } + my $courseid = $ENV{'request.course.id'}; + # + # Do not allow students to continue if standard grading is in effect. + if ($ENV{'request.role'} =~ /^st\./) { + if ($ENV{'course.'.$courseid.'.grading'} eq 'standard') { + return HTTP_NOT_ACCEPTABLE; + } + } # # Get query string for limited number of parameters # &Apache::loncommon::get_unprocessed_cgi - ($ENV{'QUERY_STRING'},['sname','sdomain','usymb','filename']); + ($ENV{'QUERY_STRING'},['sname','sdomain','usymb','filename','recalc']); # # Deal with restricted student permissions # @@ -238,13 +256,6 @@ sub handler { $name = $ENV{'form.sname'}; $domain = $ENV{'form.sdomain'}; } - # - # Open page, try to prevent browser cache. - # - $r->content_type('text/html'); - $r->header_out('Cache-control','no-cache'); - $r->header_out('Pragma','no-cache'); - $r->send_http_header; ## ## Check permissions my $allowed_to_edit = &Apache::lonnet::allowed('mgr', @@ -265,10 +276,10 @@ sub handler { # if they are not requesting their own. if ($sheettype eq 'classcalc') { if (! $allowed_to_view) { - $r->print('

Access Permission Denied

'. - ''); - return OK; - } + $ENV{'user.error.msg'}= + $r->uri.":vgr:0:0:Access Permission Denied"; + return HTTP_NOT_ACCEPTABLE; + } } if ((($name ne $ENV{'user.name'} ) || ($domain ne $ENV{'user.domain'})) && $sheettype ne 'classcalc') { @@ -278,15 +289,21 @@ sub handler { my $stu_sec = &Apache::lonnet::usection($domain,$name, $ENV{'request.course.id'}); if ($stu_sec ne $ENV{'request.course.sec'}) { - $r->print - ('

The student requested is not in your section.

'. - ''); - return OK; + $ENV{'user.error.msg'}= + $r->uri.":vgr:0:0:Requested student not in your section."; + return HTTP_NOT_ACCEPTABLE; } } } # + # Open page, try to prevent browser cache. + # + &Apache::loncommon::content_type($r,'text/html'); + &Apache::loncommon::no_cache($r); + $r->send_http_header; + + # # Header.... # $r->print('LON-CAPA Spreadsheet'); @@ -311,7 +328,7 @@ sub handler { edit_text +='Cell Edit Window'; edit_text += '
'; edit_text += '

Cell '+cellname+'

'; - edit_text += '