--- loncom/interface/spreadsheet/lonspreadsheet.pm 2005/04/07 06:56:23 1.40 +++ loncom/interface/spreadsheet/lonspreadsheet.pm 2007/08/18 00:04:41 1.51 @@ -1,5 +1,5 @@ # -# $Id: lonspreadsheet.pm,v 1.40 2005/04/07 06:56:23 albertel Exp $ +# $Id: lonspreadsheet.pm,v 1.51 2007/08/18 00:04:41 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -100,6 +100,7 @@ sub file_dialogs { my $message = ''; ## ## Deal with saving the spreadsheet + $spreadsheet->check_formulas_loaded(); if ((exists($env{'form.save'}) || exists($env{'form.makedefault'})) && exists($env{'form.savefilename'})) { $spreadsheet->filename($env{'form.savefilename'}); @@ -263,6 +264,17 @@ sub handler { } $env{'form.sname'} = $name; $env{'form.sdomain'} = $domain; + my $section = &Apache::lonnet::getsection($domain,$name, + $env{'request.course.id'}); + my @groups; + if (($env{'user.name'} eq $name) && ($env{'user.domain'} eq $domain)) { + @groups = &Apache::lonnet::sort_course_groups($env{'request.course.id'}, + split(':',$env{'request.course.groups'})); + } else { + @groups = &Apache::lonnet::get_users_groups($domain,$name, + $env{'request.course.id'}); + } + ## ## Check permissions my $allowed_to_edit = &Apache::lonnet::allowed('mgr', @@ -313,11 +325,11 @@ sub handler { # # Header.... # - $r->print('LON-CAPA Spreadsheet'); my $nothing = &Apache::lonhtmlcommon::javascript_nothing(); ## ## Spit out the javascript required for editing ## + my $js; if ($allowed_to_edit) { my %lt=( 'ce' => 'Cell', @@ -326,7 +338,20 @@ sub handler { ); my $extra_javascript = &Apache::loncommon::browser_and_searcher_javascript(); - $r->print(< 1, + 'js_ready' => 1, + 'add_entries' => { + 'onresize' => "resize_textarea('LC_newformula','LC_aftertextarea')", + 'onload' => "resize_textarea('LC_newformula','LC_aftertextarea')", + }}); + my $cell_edit_end = + &Apache::loncommon::end_page({'js_ready' => 1,}); + + $js = < // @@ -375,8 +402,9 @@ ENDSCRIPT text => 'Spreadsheet', faq => 134, bug => 'Spreadsheet'}); - $r->print(''.&Apache::loncommon::bodytag('Grades Spreadsheet'). - &Apache::lonhtmlcommon::breadcrumbs(undef,'Spreadsheet'). + $r->print(&Apache::loncommon::start_page('Grades Spreadsheet',$js). + &Apache::lonhtmlcommon::breadcrumbs('Spreadsheet', + 'Spreadsheet_About'). '
'); $r->print(&hiddenfield('sname' ,$env{'form.sname'}). &hiddenfield('sdomain',$env{'form.sdomain'}). @@ -437,13 +465,16 @@ ENDSCRIPT &Apache::Spreadsheet::initialize_spreadsheet_package(); my $spreadsheet = undef; if ($sheettype eq 'classcalc') { - $spreadsheet = Apache::classcalc->new($name,$domain,$filename,undef); + $spreadsheet = Apache::classcalc->new($name,$domain,$filename,undef, + $section,\@groups); } elsif ($sheettype eq 'studentcalc') { - $spreadsheet = Apache::studentcalc->new($name,$domain,$filename,undef); + $spreadsheet = Apache::studentcalc->new($name,$domain,$filename,undef, + $section,\@groups); } elsif ($sheettype eq 'assesscalc' && defined($symb) && $allowed_to_edit) { - $spreadsheet = Apache::assesscalc->new($name,$domain,$filename,$symb); + $spreadsheet = Apache::assesscalc->new($name,$domain,$filename,$symb, + $section,\@groups); } else { return HTTP_NOT_ACCEPTABLE; } @@ -526,7 +557,8 @@ END $r->rflush(); $spreadsheet->display($r); } - $r->print('
'); + $r->print(''.&Apache::loncommon::end_page()); + $spreadsheet->clear_package(); return OK; }