--- loncom/auth/lonroles.pm 2003/10/04 18:13:36 1.74
+++ loncom/auth/lonroles.pm 2003/11/08 12:06:38 1.75
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# User Roles Screen
#
-# $Id: lonroles.pm,v 1.74 2003/10/04 18:13:36 www Exp $
+# $Id: lonroles.pm,v 1.75 2003/11/08 12:06:38 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -327,9 +327,12 @@ ENDHEADER
'
'.&mt('Start').' | '.&mt('End').' | '.
&mt('Remark').' | '."\n");
+ my (%roletext,%sortrole,%roleclass);
foreach $envkey (sort keys %ENV) {
my $button = 1;
my $switchserver='';
+ my $roletext;
+ my $sortkey;
if ($envkey=~/^user\.role\./) {
my (undef,undef,$role,@pwhere)=split(/\./,$envkey);
next if (!defined($role) || $role eq '');
@@ -414,6 +417,7 @@ ENDHEADER
': '.$tdom.'
'.
' '.&mt('Server').': '.$home;
$ENV{'course.'.$tdom.'_'.$trest.'.description'}='ca';
+ $sortkey=$role."$trest:$tdom";
} elsif ($role eq 'au') {
# Authors
my $home = &Apache::lonnet::homeserver
@@ -432,6 +436,7 @@ ENDHEADER
$twhere=&mt('Domain').': '.$tdom.'
'.&mt('Server').
': '.$home;
$ENV{'course.'.$tdom.'_'.$trest.'.description'}='ca';
+ $sortkey=$role;
} elsif ($trest) {
$ttype=&mt('Course');
if ($tsection) {
@@ -440,6 +445,7 @@ ENDHEADER
my $tcourseid=$tdom.'_'.$trest;
if ($ENV{'course.'.$tcourseid.'.description'}) {
$twhere=$ENV{'course.'.$tcourseid.'.description'};
+ $sortkey=$twhere."\0".$envkey;
unless ($twhere eq &mt('Currently not available')) {
$twhere.=' '.
&Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$trest,$tdom,$tfont).
@@ -449,6 +455,7 @@ ENDHEADER
my %newhash=Apache::lonnet::coursedescription
($tcourseid);
if (%newhash) {
+ $sortkey=$newhash{'description'}."\0".$envkey;
$twhere=$newhash{'description'}.
' '.
&Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$trest,$tdom,$tfont).
@@ -456,55 +463,69 @@ ENDHEADER
} else {
$twhere=&mt('Currently not available');
$ENV{'course.'.$tcourseid.'.description'}=$twhere;
+ $sortkey=$twhere."\0".$envkey;
}
}
if ($role ne 'st') { $twhere.="
".&mt('Domain').":".$tdom; }
} elsif ($tdom) {
$ttype=&mt('Domain');
$twhere=$tdom;
+ $sortkey=$role.$twhere;
} else {
$ttype=&mt('System');
$twhere=&mt('system wide');
+ $sortkey=$role.$twhere;
}
- $r->print('');
+ $roletext.='
';
unless ($nochoose) {
if (!$button) {
if ($switchserver) {
- $r->print(''.&mt('Switch Server').' | ');
+ $roletext.=''.&mt('Switch Server').' | ';
} else {
- $r->print(' | ');
+ $roletext.=(' | ');
}
} elsif ($tstatus eq 'is') {
- $r->print(' | ');
} elsif ($tryagain) {
- $r->print
- (' | ');
+ $roletext.=
+ ' | ';
} elsif ($advanced) {
- $r->print
- (' | ');
+ $roletext.=
+ ' | ';
} else {
- $r->print(' | ');
+ $roletext.=' | ';
}
}
$tremark.=&Apache::lonannounce::showday(time,1,
&Apache::lonannounce::readcalendar($tdom.'_'.$trest));
- $r->print(''.$trole.
+ $roletext.=' | '.$trole.
' | '.$ttype.
' | '.$twhere.
' | '.$tpstart.
' | '.$tpend.
' | '.$tremark.
- ' |
'."\n");
+ ' '."\n";
+ $roletext{$envkey}=$roletext;
+ if (!$sortkey) {$sortkey=$twhere."\0".$envkey;}
+ $sortrole{$sortkey}=$envkey;
+ $roleclass{$envkey}=$ttype;
}
}
}
+ foreach my $type ('Construction Space','Course','Domain','System') {
+ foreach my $which (sort {uc($a) cmp uc($b)} (keys(%sortrole))) {
+ if ($roleclass{$sortrole{$which}} =~ /^\Q$type\E/) {
+ $r->print($roletext{$sortrole{$which}});
+ }
+ }
+ }
my $tremark='';
my $tfont='#003300';
if ($ENV{'request.role'} eq 'cm') {