--- loncom/auth/lonroles.pm 2005/11/08 21:54:03 1.132 +++ loncom/auth/lonroles.pm 2005/11/21 19:08:24 1.137 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # User Roles Screen # -# $Id: lonroles.pm,v 1.132 2005/11/08 21:54:03 albertel Exp $ +# $Id: lonroles.pm,v 1.137 2005/11/21 19:08:24 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -89,6 +89,9 @@ sub handler { # ================================================================== Roles Init if ($env{'form.selectrole'}) { + if ($env{'form.newrole'}) { + $env{'form.'.$env{'form.newrole'}}=1; + } if ($env{'request.course.id'}) { my %temp=('logout_'.$env{'request.course.id'} => time); &Apache::lonnet::put('email_status',\%temp); @@ -123,6 +126,11 @@ sub handler { if ($tstatus eq 'is') { $where=~s/^\///; my ($cdom,$cnum,$csec)=split(/\//,$where); +# check for course groups + my %coursegroups = &Apache::lonnet::get_active_groups( + $env{'user.domain'},$env{'user.name'},$cdom, $cnum); + my $cgrps = join(':',keys(%coursegroups)); + # store role if recent_role list being kept if ($env{'environment.recentroles'}) { &Apache::lonhtmlcommon::store_recent('roles', @@ -224,7 +232,8 @@ ENDENTERKEY &Apache::lonnet::appenv( 'request.role' => $trolecode, 'request.role.domain' => $cdom, - 'request.course.sec' => $csec); + 'request.course.sec' => $csec, + 'request.course.groups' => $cgrps); my $tadv=0; my $msg=&mt('Entering course ...'); @@ -312,6 +321,8 @@ ENDENTERKEY my $swinfo=&Apache::lonmenu::rawconfig(); my $bodytag=&Apache::loncommon::bodytag('User Roles'); + my $standby=&mt('Role selected. Please stand by.'); + $standby=~s/\n/\\n/g; my $helptag='
'.&Apache::loncommon::help_open_menu('','General Intro','General_Intro','User Roles',1,undef,undef,undef,undef,,&mt("Click here for help")).'
'; $r->print(< @@ -323,6 +334,20 @@ $helptag
ENDHEADER @@ -396,6 +421,7 @@ ENDHEADER $r->print('
'); $r->print(''); $r->print(''); + $r->print(''); } if ($env{'user.adv'}) { $r->print( @@ -416,7 +442,7 @@ ENDHEADER if ($envkey=~/^user\.role\./) { my ($role,$where,$trolecode,$tstart,$tend,$tremark,$tstatus,$tpstart,$tpend,$tfont); &role_status($envkey,$then,$now,\$role,\$where,\$trolecode,\$tstatus,\$tstart,\$tend); - next if (!defined($role) || $role eq ''); + next if (!defined($role) || $role eq '' || $role =~ /^gr/); $tremark=''; $tpstart=' '; $tpend=' '; @@ -609,6 +635,9 @@ ENDHEADER foreach (sort(keys(%recent_roles))) { if (defined($roletext{'user.role.'.$_})) { $output.=$roletext{'user.role.'.$_}; + if ($_ =~ m-dc\./(\w+)/- && $dcroles{$1}) { + $output .= &allcourses_row($1); + } } elsif ($numdc > 0) { unless ($_ =~/^error\:/) { $output.=&display_cc_role('user.role.'.$_); @@ -659,7 +688,7 @@ ENDHEADER } unless ($nochoose) { if ($env{'request.role'} ne 'cm') { - $r->print(''); } else { $r->print(' '); @@ -770,6 +799,8 @@ sub build_roletext { : ' rowspan="2" '; unless ($nochoose) { + my $buttonname=$trolecode; + $buttonname=~s/\W//g; if (!$button) { if ($switchserver) { $roletext.=''); + $roletext.=''; } elsif ($tryagain) { $roletext.= - ''; + ''; } elsif ($advanced) { $roletext.= - ''; + ''; } else { $roletext.=' '; }