--- loncom/auth/lonroles.pm 2004/11/14 18:27:08 1.110 +++ loncom/auth/lonroles.pm 2004/11/23 07:29:24 1.112 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # User Roles Screen # -# $Id: lonroles.pm,v 1.110 2004/11/14 18:27:08 raeburn Exp $ +# $Id: lonroles.pm,v 1.112 2004/11/23 07:29:24 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -135,6 +135,13 @@ sub handler { if ($tstatus eq 'is') { $where=~s/^\///; my ($cdom,$cnum,$csec)=split(/\//,$where); +# store role if recent_role list being kept + if ($ENV{'environment.recentroles'}) { + &Apache::lonhtmlcommon::store_recent('roles', + $trolecode,' '); + } + + # check for keyed access if (($role eq 'st') && ($ENV{'course.'.$cdom.'_'.$cnum.'.keyaccess'} eq 'yes')) { @@ -556,7 +563,6 @@ ENDHEADER $sortkey=$role.$twhere; } - $roletext.=''; $roletext.=&build_roletext($trolecode,$tdom,$trest,$tstatus,$tryagain,$advanced,$tremark,$tbg,$tfont,$trole,$ttype,$twhere,$tpstart,$tpend,$nochoose,$button,$switchserver); $roletext{$envkey}=$roletext; if (!$sortkey) {$sortkey=$twhere."\0".$envkey;} @@ -604,8 +610,28 @@ ENDHEADER } if ($haverole) { $doheaders++; } } + + if ($ENV{'environment.recentroles'}) { + my %recent_roles = + &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 ($output) { + $r->print("". + &mt('Recent Roles').""); + $r->print($output); + $r->print(""); + } + } + if ($numdc > 0) { &display_recent_roles($r,\%roletext,\%recentroles); + $r->print(&coursepick_jscript()); + $r->print(&Apache::loncommon::coursebrowser_javascript()); } foreach my $type ('Construction Space','Course','Domain','System') { my $output; @@ -622,7 +648,7 @@ ENDHEADER if ($output) { if ($doheaders > 0) { $r->print("". - "".&mt($type).""); + "".&mt($type).""); } $r->print($output); } @@ -743,7 +769,7 @@ sub role_status { sub build_roletext { my ($trolecode,$tdom,$trest,$tstatus,$tryagain,$advanced,$tremark,$tbg,$tfont,$trole,$ttype,$twhere,$tpstart,$tpend,$nochoose,$button,$switchserver) = @_; - my $roletext=''; + my $roletext=''; unless ($nochoose) { if (!$button) { if ($switchserver) { @@ -818,26 +844,23 @@ sub check_fordc { sub courselink { my ($dcdom) = @_; - my $cb_jscript = &Apache::loncommon::coursebrowser_javascript($dcdom,$dcdom); - my $verify_script = &coursepick_jscript($dcdom); my $courseform=&Apache::loncommon::selectcourse_link - ('rolechoice','dccourse_'.$dcdom,'dcdomain_'.$dcdom,'coursedesc_'.$dcdom); + ('rolechoice','dccourse_'.$dcdom,'dcdomain_'.$dcdom,'coursedesc_'.$dcdom,$dcdom); my $hiddenitems = ''. ''. ''. ''; - return $cb_jscript.$verify_script.$courseform.$hiddenitems; + return $courseform.$hiddenitems; } sub coursepick_jscript { - my ($dcdom) = @_; my $verify_script = <<"END";