--- loncom/auth/lonroles.pm 2009/04/14 23:52:07 1.219 +++ loncom/auth/lonroles.pm 2009/05/22 17:57:03 1.225 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # User Roles Screen # -# $Id: lonroles.pm,v 1.219 2009/04/14 23:52:07 raeburn Exp $ +# $Id: lonroles.pm,v 1.225 2009/05/22 17:57:03 bisitz Exp $ # # Copyright Michigan State University Board of Trustees # @@ -167,10 +167,12 @@ sub redirect_user { $r->print(< +// $navwindow -

$msg

+

$msg

$end_page ENDREDIR return; @@ -183,9 +185,12 @@ sub error_page { $r->send_http_header; return OK if $r->header_only; $r->print(&Apache::loncommon::start_page('Problems during Course Initialization'). - ''. - '

'.&mt('The following problems occurred:'). + ''. + '

'.&mt('The following problems occurred:'). $error. '


'.&mt('Continue').''. &Apache::loncommon::end_page()); @@ -367,9 +372,11 @@ sub handler { $r->print(< +// -
+ $message
@@ -390,9 +397,11 @@ ENDENTEREDKEY $r->print(< +// - + @@ -444,11 +453,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}); @@ -533,6 +543,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; + } } } } @@ -546,9 +562,18 @@ ENDENTERKEY $r->send_http_header; return OK if $r->header_only; - my $brcrum =[{href=>"/admm/roles",text=>"User Roles"}]; + my $crumbtext = 'User Roles'; + my $pagetitle = 'My Roles'; + my $recent = &mt('Recent Roles'); + my $show_course=&Apache::loncommon::show_course(); + if ($show_course) { + $crumbtext = 'Courses'; + $pagetitle = 'My Courses'; + $recent = &mt('Recent Courses'); + } + my $brcrum =[{href=>"/adm/roles",text=>$crumbtext}]; my $swinfo=&Apache::lonmenu::rawconfig(); - my $start_page=&Apache::loncommon::start_page('My Roles',undef,{bread_crumbs=>$brcrum}); + my $start_page=&Apache::loncommon::start_page($pagetitle,undef,{bread_crumbs=>$brcrum}); my $standby=&mt('Role selected. Please stand by.'); $standby=~s/\n/\\n/g; my $noscript=''.&mt('Use of LON-CAPA requires Javascript to be enabled in your web browser.').'
'.&mt('As this is not the case, most functionality in the system will be unavailable.').'

'; @@ -560,6 +585,7 @@ $start_page $noscript ENDHEADER @@ -661,7 +688,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); @@ -805,8 +832,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; @@ -865,7 +895,7 @@ ENDHEADER return OK; } # ----------------------------------------------------------------------- Table - unless ((!&Apache::lonmenu::show_course()) || ($nochoose) || ($countactive==1)) { + unless ((!&Apache::loncommon::show_course()) || ($nochoose) || ($countactive==1)) { $r->print("

".&mt('Select a Course to Enter')."

\n"); } my $doheaders = &roletable_headers($r,\%roleclass,\%sortrole,$nochoose); @@ -874,8 +904,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'); @@ -889,7 +924,7 @@ ENDHEADER if ($output) { $r->print(&Apache::loncommon::start_data_table_empty_row() .'' - .&mt('Recent Roles') + .$recent .'' .&Apache::loncommon::end_data_table_empty_row() ); @@ -947,7 +982,7 @@ ENDHEADER .''.&mt('Logout').'  ' .'' .&mt('Course Catalog') - .'

'); + .'

'); } $r->print(&Apache::loncommon::end_page()); return OK; @@ -1047,7 +1082,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}) { @@ -1195,7 +1237,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" '; @@ -1215,31 +1257,31 @@ sub build_roletext { } elsif ($tstatus eq 'is') { $roletext.=''. ''; } elsif ($tryagain) { $roletext.= ''. ''; } elsif ($advanced) { $roletext.= ''. ''; } elsif ($reinit) { $roletext.= ''. ''; } else { $roletext.= ''. ''; } } @@ -1250,16 +1292,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 { @@ -1409,6 +1448,7 @@ sub coursepick_jscript { ); my $verify_script = <<"END"; END return $verify_script; @@ -1451,7 +1492,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\:/) { @@ -1474,10 +1515,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 {