version 1.261, 2009/04/29 16:57:29
|
version 1.265, 2009/05/16 18:06:41
|
Line 369 $utility
|
Line 369 $utility
|
<li>$helplink</li> |
<li>$helplink</li> |
<li><a href="/adm/logout" target="_top">$lt{'exit'}</a></li> |
<li><a href="/adm/logout" target="_top">$lt{'exit'}</a></li> |
</ol> |
</ol> |
<ol id="LC_TabMainMenuContent"> |
<ul id="LC_TabMainMenuContent"> |
<li><a href="/adm/menu" target="_top">$lt{'main'}</a></li> |
<li><a href="/adm/menu" target="_top">$lt{'main'}</a></li> |
$reloadlink |
$reloadlink |
$navmaps |
$navmaps |
$docs |
$docs |
$groups |
$groups |
$role_selector |
$role_selector |
</ol> |
</ul> |
$form |
$form |
<script type="text/javascript"> |
<script type="text/javascript"> |
// END LON-CAPA Internal |
// END LON-CAPA Internal |
</script> |
</script> |
<br clear="all" /> |
|
$reg |
$reg |
ENDINLINEMENU |
ENDINLINEMENU |
} else { |
} else { |
Line 1629 sub hidden_button_check {
|
Line 1628 sub hidden_button_check {
|
sub roles_selector { |
sub roles_selector { |
my ($cdom,$cnum) = @_; |
my ($cdom,$cnum) = @_; |
my $now = time; |
my $now = time; |
my (%courseroles,%seccount,%gotnosection); |
my (%courseroles,%seccount); |
my $is_cc; |
my $is_cc; |
my $role_selector; |
my $role_selector; |
if ($env{'user.role.cc./'.$cdom.'/'.$cnum}) { |
if ($env{'user.role.cc./'.$cdom.'/'.$cnum}) { |
Line 1644 sub roles_selector {
|
Line 1643 sub roles_selector {
|
} |
} |
} |
} |
if ($is_cc) { |
if ($is_cc) { |
my %adv_roles = |
&get_all_courseroles($cdom,$cnum,\%courseroles,\%seccount); |
&Apache::lonnet::get_course_adv_roles($env{'request.course.id'},1); |
|
foreach my $role (keys(%adv_roles)) { |
|
my ($urole,$usec) = split(/:/,$role); |
|
if (!$gotnosection{$urole}) { |
|
$seccount{$urole} ++; |
|
$gotnosection{$urole} = 1; |
|
} |
|
if (ref($courseroles{$urole}) eq 'ARRAY') { |
|
if ($usec ne '') { |
|
if (!grep(/^Q$usec\E$/,@{$courseroles{$urole}})) { |
|
push(@{$courseroles{$urole}},$usec); |
|
$seccount{$urole} ++; |
|
} |
|
} |
|
} else { |
|
@{$courseroles{$urole}} = (); |
|
if ($usec ne '') { |
|
$seccount{$urole} ++; |
|
push(@{$courseroles{$urole}},$usec); |
|
} |
|
} |
|
} |
|
my %sections_count = &Apache::loncommon::get_sections($cdom,$cnum); |
|
@{$courseroles{'st'}} = (); |
|
if (keys(%sections_count) > 0) { |
|
push(@{$courseroles{'st'}},keys(%sections_count)); |
|
} |
|
} else { |
} else { |
|
my %gotnosection; |
foreach my $item (keys(%env)) { |
foreach my $item (keys(%env)) { |
if ($item =~ m-^user\.role\.([^.]+)\./\Q$cdom\E/\Q$cnum\E/?(\w*)$-) { |
if ($item =~ m-^user\.role\.([^.]+)\./\Q$cdom\E/\Q$cnum\E/?(\w*)$-) { |
my $role = $1; |
my $role = $1; |
Line 1688 sub roles_selector {
|
Line 1661 sub roles_selector {
|
} |
} |
if (ref($courseroles{$role}) eq 'ARRAY') { |
if (ref($courseroles{$role}) eq 'ARRAY') { |
if ($sec ne '') { |
if ($sec ne '') { |
if (!grep(/^Q$sec\E$/,@{$courseroles{$role}})) { |
if (!grep(/^\Q$sec\E$/,@{$courseroles{$role}})) { |
push(@{$courseroles{$role}},$sec); |
push(@{$courseroles{$role}},$sec); |
$seccount{$role} ++; |
$seccount{$role} ++; |
} |
} |
Line 1730 sub roles_selector {
|
Line 1703 sub roles_selector {
|
return $role_selector; |
return $role_selector; |
} |
} |
|
|
|
sub get_all_courseroles { |
|
my ($cdom,$cnum,$courseroles,$seccount) = @_; |
|
unless ((ref($courseroles) eq 'HASH') && (ref($seccount) eq 'HASH')) { |
|
return; |
|
} |
|
my ($result,$cached) = |
|
&Apache::lonnet::is_cached_new('getcourseroles',$cdom.'_'.$cnum); |
|
if (defined($cached)) { |
|
if (ref($result) eq 'HASH') { |
|
if ((ref($result->{'roles'}) eq 'HASH') && |
|
(ref($result->{'seccount'}) eq 'HASH')) { |
|
%{$courseroles} = %{$result->{'roles'}}; |
|
%{$seccount} = %{$result->{'seccount'}}; |
|
return; |
|
} |
|
} |
|
} |
|
my %gotnosection; |
|
my %adv_roles = |
|
&Apache::lonnet::get_course_adv_roles($env{'request.course.id'},1); |
|
foreach my $role (keys(%adv_roles)) { |
|
my ($urole,$usec) = split(/:/,$role); |
|
if (!$gotnosection{$urole}) { |
|
$seccount->{$urole} ++; |
|
$gotnosection{$urole} = 1; |
|
} |
|
if (ref($courseroles->{$urole}) eq 'ARRAY') { |
|
if ($usec ne '') { |
|
if (!grep(/^Q$usec\E$/,@{$courseroles->{$urole}})) { |
|
push(@{$courseroles->{$urole}},$usec); |
|
$seccount->{$urole} ++; |
|
} |
|
} |
|
} else { |
|
@{$courseroles->{$urole}} = (); |
|
if ($usec ne '') { |
|
$seccount->{$urole} ++; |
|
push(@{$courseroles->{$urole}},$usec); |
|
} |
|
} |
|
} |
|
my %sections_count = &Apache::loncommon::get_sections($cdom,$cnum,['st']); |
|
@{$courseroles->{'st'}} = (); |
|
if (keys(%sections_count) > 0) { |
|
push(@{$courseroles->{'st'}},keys(%sections_count)); |
|
$seccount->{'st'} = scalar(keys(%sections_count)); |
|
} |
|
my $rolehash = { |
|
'roles' => $courseroles, |
|
'seccount' => $seccount, |
|
}; |
|
&Apache::lonnet::do_cache_new('getcourseroles',$cdom.'_'.$cnum,$rolehash); |
|
return; |
|
} |
|
|
sub jump_to_role { |
sub jump_to_role { |
my ($cdom,$cnum,$seccount,$courseroles) = @_; |
my ($cdom,$cnum,$seccount,$courseroles) = @_; |
my %lt = &Apache::lonlocal::texthash( |
my %lt = &Apache::lonlocal::texthash( |