\n";
+ 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
@@ -127,40 +135,46 @@ sub file_dialogs {
##
## Create the save and load dialogs
my $filename = $spreadsheet->filename();
- $filename = '' if ($filename =~ /^default\.$sheettype/i);
- $filename =~ s/_$sheettype$//;
+ my $truefilename = $filename;
+ if ($spreadsheet->is_default()) {
+ $filename = 'Default';
+ }
my $save_dialog = ''.
' '.
''.
+ $truefilename.'" />'.
'';
my $makedefault_dialog = '';
+ 'value="Save as & Make This Sheet the Default"/>';
#
my $link = 'Browse";
+ "('sheet','loadfilename','spreadsheet')\">Select Spreadsheet File";
my $load_dialog = <
-
+
$link
\n\n";
+ $load_dialog .= "\n
\n\n";
#
$result .=<
+
+ -->
@@ -173,8 +187,11 @@ END
+
END
- return $result;
+ return ($result,$message);
}
sub handler {
@@ -193,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;
}
@@ -207,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
#
@@ -231,32 +256,53 @@ 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',
$ENV{'request.course.id'});
+ # Only those instructors/tas/whatevers with complete access
+ # (not section restricted) are able to modify spreadsheets.
my $allowed_to_view = &Apache::lonnet::allowed('vgr',
$ENV{'request.course.id'});
-
+ if (! $allowed_to_view) {
+ $allowed_to_view = &Apache::lonnet::allowed('vgr',
+ $ENV{'request.course.id'}.'/'.$ENV{'request.course.sec'});
+ # Those who are restricted by section are allowed to view.
+ # The routines in lonstatistics which decide which students'
+ # will be shown take care of the restriction by section.
+ }
#
# Only those able to view others grades will be allowed to continue
# if they are not requesting their own.
- if (($sheettype eq 'classcalc') ||
- ($name ne $ENV{'user.name'} ) ||
- ($domain ne $ENV{'user.domain'})) {
+ if ($sheettype eq 'classcalc') {
if (! $allowed_to_view) {
- $r->print('