--- loncom/auth/lonroles.pm 2005/07/08 10:39:49 1.126 +++ loncom/auth/lonroles.pm 2005/11/08 21:54:03 1.132 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # User Roles Screen # -# $Id: lonroles.pm,v 1.126 2005/07/08 10:39:49 www Exp $ +# $Id: lonroles.pm,v 1.132 2005/11/08 21:54:03 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -50,7 +50,8 @@ sub redirect_user { my $swinfo=&Apache::lonmenu::rawconfig(); my $navwindow; if ($launch_nav eq 'on') { - $navwindow.=&Apache::lonnavmaps::launch_win('now'); + $navwindow.=&Apache::lonnavmaps::launch_win('now',undef,undef, + ($url eq '/adm/whatsnew')); } else { $navwindow.=&Apache::lonnavmaps::close(); } @@ -243,7 +244,7 @@ ENDENTERKEY "request.course.id" => $cdom.'_'.$cnum); $furl='/adm/roles?tryagain=1'; $msg= - '

'. + '

'. &mt('Could not initialize course at this time.'). '

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

'.$ferr; } @@ -361,7 +362,7 @@ ENDHEADER } else { if ($env{'user.error.msg'}) { $r->print( - '

'. + '

'. &mt('You need to choose another user role or enter a specific course for this function').'

'); } } @@ -430,34 +431,28 @@ ENDHEADER $tstatus='selected'; } my $tbg; - my $tbghigh; if (($tstatus eq 'is') || ($tstatus eq 'selected') || ($env{'form.showall'})) { if ($tstatus eq 'is') { $tbg='#77FF77'; - $tbghigh='#99CC77'; $tfont='#003300'; $possiblerole=$trolecode; $countactive++; } elsif ($tstatus eq 'future') { $tbg='#FFFF77'; - $tbghigh='#DDDD55'; $button=0; } elsif ($tstatus eq 'will') { $tbg='#FFAA77'; $tremark.=&mt('Active at next login. '); } elsif ($tstatus eq 'expired') { $tbg='#FF7777'; - $tbghigh='#EE9955'; $tfont='#330000'; $button=0; } elsif ($tstatus eq 'will_not') { $tbg='#AAFF77'; - $tbghigh='#BBDD55'; $tremark.=&mt('Expired after logout. '); } elsif ($tstatus eq 'selected') { $tbg='#11CC55'; - $tbghigh='339944'; $tfont='#002200'; $inrole=1; $countactive++; @@ -466,7 +461,8 @@ ENDHEADER my $trole; if ($role =~ /^cr\//) { my ($rdummy,$rdomain,$rauthor,$rrole)=split(/\//,$role); - $tremark.='
'.&mt('Defined by ').$rauthor. + if ($tremark) { $tremark.='
'; } + $tremark.=&mt('Defined by ').$rauthor. &mt(' at ').$rdomain.'.'; $trole=$rrole; } else { @@ -484,11 +480,7 @@ ENDHEADER foreach my $id (@ids) { if ($id eq $home) { $allowed=1; } } if (!$allowed) { $button=0; - $switchserver=&Apache::lonnet::escape('http://'. - $Apache::lonnet::hostname{$home}. - '/adm/login?domain='.$env{'user.domain'}. - '&username='.$env{'user.name'}. - '&firsturl=/priv/'.$trest.'/'); + $switchserver='otherserver='.$home.'&role='.$trolecode; } #next if ($home eq 'no_host'); $home = $Apache::lonnet::hostname{$home}; @@ -563,7 +555,7 @@ ENDHEADER $sortkey=$role.$twhere; } - $roletext.=&build_roletext($trolecode,$tdom,$trest,$tstatus,$tryagain,$advanced,$tremark,$tbg,$tbghigh,$tfont,$trole,$ttype,$twhere,$tpstart,$tpend,$nochoose,$button,$switchserver); + $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;} $sortrole{$sortkey}=$envkey; @@ -598,10 +590,9 @@ ENDHEADER $r->print('
'); unless ($nochoose) { $r->print(''); } $r->print(''."\n"); + ''."\n"); my $doheaders=-1; - foreach my $type ('Construction Space','Course','Domain','System') { + foreach my $type ('Domain','Construction Space','Course','System') { my $haverole=0; foreach my $which (sort {uc($a) cmp uc($b)} (keys(%sortrole))) { if ($roleclass{$sortrole{$which}} =~ /^\Q$type\E/) { @@ -625,7 +616,7 @@ ENDHEADER } } if ($output) { - $r->print(""); $r->print($output); $r->print(""); @@ -637,7 +628,7 @@ ENDHEADER $r->print(&coursepick_jscript()); $r->print(&Apache::loncommon::coursebrowser_javascript()); } - foreach my $type ('Construction Space','Course','Domain','System') { + foreach my $type ('Construction Space','Domain','Course','System') { my $output; foreach my $which (sort {uc($a) cmp uc($b)} (keys(%sortrole))) { if ($roleclass{$sortrole{$which}} =~ /^\Q$type\E/) { @@ -652,7 +643,7 @@ ENDHEADER if ($output) { if ($doheaders > 0) { $r->print("". - ""); + ""); } $r->print($output); } @@ -674,7 +665,7 @@ ENDHEADER $r->print(''); } } - $r->print(''."\n"); @@ -684,7 +675,7 @@ ENDHEADER } # ------------------------------------------------------------ Privileges Info if (($advanced) && (($env{'user.error.msg'}) || ($error))) { - $r->print('

Current Privileges

'); + $r->print('

Current Privileges

'); foreach $envkey (sort keys %env) { if ($envkey=~/^user\.priv\.$env{'request.role'}\./) { @@ -772,42 +763,48 @@ sub role_status { } sub build_roletext { - my ($trolecode,$tdom,$trest,$tstatus,$tryagain,$advanced,$tremark,$tbg,$tbghigh,$tfont,$trole,$ttype,$twhere,$tpstart,$tpend,$nochoose,$button,$switchserver) = @_; - my $roletext=''; + my ($trolecode,$tdom,$trest,$tstatus,$tryagain,$advanced,$tremark,$tbg,$tfont,$trole,$ttype,$twhere,$tpstart,$tpend,$nochoose,$button,$switchserver) = @_; + my $roletext=''; + my $is_dc=($trolecode =~ m/^dc\./); + my $rowspan=($is_dc) ? '' + : ' rowspan="2" '; + unless ($nochoose) { if (!$button) { if ($switchserver) { - $roletext.=''; } else { $roletext.=(''); } } elsif ($tstatus eq 'is') { - $roletext.=(''); } elsif ($tryagain) { $roletext.= - ''; } elsif ($advanced) { $roletext.= - ''; } else { - $roletext.=''; + $roletext.=' '; } } $tremark.=&Apache::lonannounce::showday(time,1, &Apache::lonannounce::readcalendar($tdom.'_'.$trest)); - $roletext.=''."\n"; + ''; + if (!$is_dc) { + $roletext.=''."\n"; + } return $roletext; } @@ -904,7 +901,7 @@ function process_pick(dom) { if (pickedCourse != '') { if (numbutton != -1) { var courseTarget = "cc./"+pickedDomain+"/"+pickedCourse - opener.document.rolechoice.elements[numbutton+1].name = courseTarget + opener.document.rolechoice.elements[numbutton].name = courseTarget opener.document.rolechoice.submit() } } @@ -938,7 +935,6 @@ sub display_cc_role { my $trole = Apache::lonnet::plaintext('cc'); my $twhere; my $tbg='#77FF77'; - my $tbghigh='#99CC77'; my $tfont='#003300'; my %newhash=&Apache::lonnet::coursedescription($tcourseid); if (%newhash) { @@ -951,7 +947,7 @@ sub display_cc_role { $env{'course.'.$tcourseid.'.description'}=$twhere; } $twhere.="
".&mt('Domain').":".$1; - $roletext = &build_roletext($trolecode,$1,$2,'is',$tryagain,$advanced,'',$tbg,$tbghigh,$tfont,$trole,&mt('Course'),$twhere,'','','',1,''); + $roletext = &build_roletext($trolecode,$1,$2,'is',$tryagain,$advanced,'',$tbg,$tfont,$trole,&mt('Course'),$twhere,'','','',1,''); } } return $roletext; @@ -961,19 +957,14 @@ sub allcourses_row { my $dcdom = shift; my $ccrole = Apache::lonnet::plaintext('cc'); my $selectlink = &courselink($dcdom); - my $output = ''. - ''. - ''. - ''."\n"; + my $output = ''. + ''. + ''. + ''."\n"; return $output; }
 '.&mt('User Role').''.&mt('Extent'). - ''.&mt('Start').''.&mt('End').''. - &mt('Remarks and Calendar Announcements').'
'.&mt('Start').''.&mt('End').'
". + $r->print("
". &mt('Recent Roles')."
".&mt($type)."
".&mt($type)."
 '.&mt('No role specified'). + $r->print(''.&mt('No role specified'). ''.$tremark. ' 
'.&mt('Switch Server').'  '.$trole. ''.$twhere. ''.$tpstart. ''.$tpend. - ''.$tremark. - ' 
'.$tremark. + ' 
'. - ''. - $ccrole.''.&mt('All courses').': '. - $selectlink.''. - '
'.&mt('Domain').':'.$dcdom.'
'. - '
'. - &mt('Course Coordinator access to all courses in domain'). - ': '.$dcdom.'
'. + ''.$ccrole.''. + ' '.$selectlink.''. + ' from '.&mt('Domain').' '.$dcdom. + '