--- loncom/auth/lonroles.pm 2004/11/14 18:27:08 1.110
+++ loncom/auth/lonroles.pm 2004/12/03 05:15:30 1.113
@@ -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.113 2004/12/03 05:15:30 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -84,10 +84,6 @@ sub handler {
my $envkey;
my %dcroles = ();
my $numdc = &check_fordc(\%dcroles,$then);
- my %recentroles;
- if ($numdc > 0) {
- %recentroles = &Apache::lonnet::dump(&recent_filename('roles'));
- }
# ================================================================== Roles Init
if ($ENV{'form.selectrole'}) {
@@ -117,16 +113,6 @@ sub handler {
}
}
-# Check if user is a DC with courses in the recent list which need privs.
-# if ($numdc > 0) {
-# %recentroles = &Apache::lonnet::dump(&recent_filename('recent_roles'));
-# foreach my $rolekey (keys %recentroles) {
-# if ($rolekey =~ m-^user\.role.cc\./\w+/\w+$-) {
-# &check_privs($rolekey,$then,$now);
-# }
-# }
-# }
-
foreach $envkey (keys %ENV) {
next if ($envkey!~/^user\.role\./);
my ($where,$trolecode,$role,$tstatus,$tend,$tstart);
@@ -135,6 +121,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')) {
@@ -269,16 +262,6 @@ ENDENTERKEY
'.course.helper.not.run'}) {
$furl = "/adm/helper/course.initialization.helper";
}
- # Check to see if the user is a DC selecting a course
- if (($numdc > 0) && ($role eq 'cc')) {
- my $formaction = '/adm/roles/';
- my ($dcdom,$pickedcourse) = split/_/,$courseid;
- if ($ENV{'user.role.dc./'.$dcdom.'/'}) {
- &Apache::lonhtmlcommon::store_recent('roles',
- $envkey,$formaction);
- }
- }
- #
# Send the user to the course they selected
&redirect_user($r,&mt('Entering Course'),
$furl,$msg,
@@ -556,7 +539,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 +586,31 @@ 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.'.$_};
+ } elsif ($numdc > 0) {
+ unless ($_ =~/^error\:/) {
+ $output.=&display_cc_role('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 +627,7 @@ ENDHEADER
if ($output) {
if ($doheaders > 0) {
$r->print("
".
- "
".&mt($type)."
");
+ "
".&mt($type)."
");
}
$r->print($output);
}
@@ -743,7 +748,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 +823,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";