--- loncom/auth/lonroles.pm 2009/04/11 21:42:58 1.218 +++ loncom/auth/lonroles.pm 2009/05/18 15:40:20 1.223 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # User Roles Screen # -# $Id: lonroles.pm,v 1.218 2009/04/11 21:42:58 raeburn Exp $ +# $Id: lonroles.pm,v 1.223 2009/05/18 15:40:20 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -170,7 +170,7 @@ $start_page $swinfo $navwindow -

$msg

+

$msg

$end_page ENDREDIR return; @@ -423,6 +423,14 @@ ENDENTERKEY if (($env{'form.orgurl'}) && ($env{'form.orgurl'}!~/^\/adm\/flip/)) { my $dest=$env{'form.orgurl'}; + if ($env{'form.symb'}) { + if ($dest =~ /\?/) { + $dest .= '&'; + } else { + $dest .= '?' + } + $dest .= 'symb='.$env{'form.symb'}; + } if (&Apache::lonnet::allowed('adv') eq 'F') { $tadv=1; } &Apache::lonnet::appenv({'request.role.adv'=>$tadv}); if (($ferr) && ($tadv)) { @@ -436,11 +444,12 @@ ENDENTERKEY &Apache::lonnet::appenv( {"request.course.id" => $cdom.'_'.$cnum}); $furl='/adm/roles?tryagain=1'; - $msg= - '

'. - &mt('Could not initialize [_1] at this time.', - $env{'course.'.$cdom.'_'.$cnum.'.description'}). - '

'.&mt('Please try again.').'

'.$ferr; + $msg='

' + .&mt('Could not initialize [_1] at this time.', + $env{'course.'.$cdom.'_'.$cnum.'.description'}) + .'

' + .'

'.&mt('Please try again.').'

' + .'

'.$ferr.'

'; } if (&Apache::lonnet::allowed('adv') eq 'F') { $tadv=1; } &Apache::lonnet::appenv({'request.role.adv'=>$tadv}); @@ -525,6 +534,12 @@ ENDENTERKEY $redirect_url); return OK; } + if ($role eq 'sc') { + my $redirect_url = '/adm/grades?command=scantronupload'; + &redirect_user($r,&mt('Loading Data Upload Page'), + $redirect_url); + return OK; + } } } } @@ -653,7 +668,7 @@ ENDHEADER foreach $envkey (sort keys %env) { my $button = 1; my $switchserver=''; - my $roletext; + my ($roletext,$roletext_end); my $sortkey; if ($envkey=~/^user\.role\./) { my ($role,$where,$trolecode,$tstart,$tend,$tremark,$tstatus,$tpstart,$tpend); @@ -797,8 +812,11 @@ ENDHEADER $twhere=&mt('system wide'); $sortkey=$role.$twhere; } - $roletext.=&build_roletext($trolecode,$tdom,$trest,$tstatus,$tryagain,$advanced,$tremark,$tbg,$trole,$twhere,$tpstart,$tpend,$nochoose,$button,$switchserver,$reinit); - $roletext{$envkey}=$roletext; + ($roletext,$roletext_end) = + &build_roletext($trolecode,$tdom,$trest,$tstatus,$tryagain, + $advanced,$tremark,$tbg,$trole,$twhere,$tpstart, + $tpend,$nochoose,$button,$switchserver,$reinit); + $roletext{$envkey}=[$roletext,$roletext_end]; if (!$sortkey) {$sortkey=$twhere."\0".$envkey;} $sortrole{$sortkey}=$envkey; $roleclass{$envkey}=$ttype; @@ -866,8 +884,13 @@ ENDHEADER &Apache::lonhtmlcommon::get_recent('roles',$env{'environment.recentrolesn'}); my $output=''; foreach (sort(keys(%recent_roles))) { - if (defined($roletext{'user.role.'.$_})) { - $output.=$roletext{'user.role.'.$_}; + if (ref($roletext{'user.role.'.$_}) eq 'ARRAY') { + $output.= &Apache::loncommon::start_data_table_row(). + $roletext{'user.role.'.$_}->[0]. + &Apache::loncommon::end_data_table_row(). + &Apache::loncommon::continue_data_table_row(). + $roletext{'user.role.'.$_}->[1]. + &Apache::loncommon::end_data_table_row(); if ($_ =~ m-dc\./($match_domain)/- && $dcroles{$1}) { $output .= &adhoc_roles_row($1,'recent'); @@ -1039,7 +1062,14 @@ sub print_rolerows { foreach my $which (sort {uc($a) cmp uc($b)} (keys(%{$sortrole}))) { if ($roleclass->{$sortrole->{$which}} =~ /^\Q$type\E/) { if (ref($roletext) eq 'HASH') { - $output.=$roletext->{$sortrole->{$which}}; + if (ref($roletext->{$sortrole->{$which}}) eq 'ARRAY') { + $output.= &Apache::loncommon::start_data_table_row(). + $roletext->{$sortrole->{$which}}->[0]. + &Apache::loncommon::end_data_table_row(). + &Apache::loncommon::continue_data_table_row(). + $roletext->{$sortrole->{$which}}->[1]. + &Apache::loncommon::end_data_table_row(); + } if ($sortrole->{$which} =~ m-dc\./($match_domain)/-) { if (ref($dcroles) eq 'HASH') { if ($dcroles->{$1}) { @@ -1187,7 +1217,7 @@ sub privileges_info { sub build_roletext { my ($trolecode,$tdom,$trest,$tstatus,$tryagain,$advanced,$tremark,$tbg,$trole,$twhere,$tpstart,$tpend,$nochoose,$button,$switchserver,$reinit) = @_; - my $roletext=&Apache::loncommon::start_data_table_row(); + my ($roletext,$roletext_end); my $is_dc=($trolecode =~ m/^dc\./); my $rowspan=($is_dc) ? '' : ' rowspan="2" '; @@ -1242,16 +1272,13 @@ sub build_roletext { $roletext.=''.$trole.'' .''.$twhere.'' .''.$tpstart.'' - .''.$tpend.'' - .&Apache::loncommon::end_data_table_row(); + .''.$tpend.''; if (!$is_dc) { - $roletext.=&Apache::loncommon::continue_data_table_row() - .'' - .$tremark.' ' - .'' - .&Apache::loncommon::end_data_table_row(); + $roletext_end = ''. + $tremark.' '. + ''; } - return $roletext; + return ($roletext,$roletext_end); } sub check_needs_switchserver { @@ -1443,7 +1470,7 @@ sub coauthorlink { sub display_cc_role { my $rolekey = shift; - my $roletext; + my ($roletext,$roletext_end); my $advanced = $env{'user.adv'}; my $tryagain = $env{'form.tryagain'}; unless ($rolekey =~/^error\:/) { @@ -1466,10 +1493,10 @@ sub display_cc_role { } my $trole = &Apache::lonnet::plaintext('cc',$ttype); $twhere.="
".&mt('Domain').":".$1; - $roletext = &build_roletext($trolecode,$1,$2,'is',$tryagain,$advanced,'',$tbg,$trole,$twhere,'','','',1,''); + ($roletext,$roletext_end) = &build_roletext($trolecode,$1,$2,'is',$tryagain,$advanced,'',$tbg,$trole,$twhere,'','','',1,''); } } - return ($roletext); + return ($roletext,$roletext_end); } sub adhoc_roles_row {