--- loncom/interface/grouproster.pm 2006/07/02 18:01:47 1.1
+++ loncom/interface/grouproster.pm 2006/07/17 15:07:26 1.3
@@ -31,6 +31,7 @@ use Apache::loncommon;
use Apache::lonhtmlcommon;
use Apache::lonlocal;
use Apache::longroup;
+use LONCAPA;
use Apache::Constants qw(:common :http);
use lib '/home/httpd/lib/perl/';
@@ -51,7 +52,7 @@ sub handler {
return HTTP_NOT_ACCEPTABLE;
}
- &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['group']);
+ &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['group','ref']);
my $gpterm = &Apache::loncommon::group_term();
my $ucgpterm = $gpterm;
@@ -77,11 +78,11 @@ sub handler {
$r->print(&mt('Invalid [_1]',$crstype));
}
- my @coursegroups = split(/:/,$env{'request.course.groups'});
- if ((@coursegroups == 0) || ((@coursegroups > 0) &&
- (!(grep/^\Q$group\E$/,@coursegroups)))) {
+ my %curr_groups = &Apache::longroup::coursegroups($cdom,$cnum);
+ if (!defined($curr_groups{$group})) {
$r->print(&mt('[_1] is not the name of a valid [_2] in this [_3].',
$group,$gpterm,lc($crstype)));
+ return OK;
}
&Apache::lonhtmlcommon::clear_breadcrumbs();
@@ -90,15 +91,14 @@ sub handler {
'/'.$group);
my $view_details = &Apache::lonnet::allowed('vmd',$env{'request.course.id'}.'/'.$group);
- my $viewgrps = &Apache::lonnet::allowed('vcg',$env{'request.course.id'});
+ my $viewgrps = &Apache::lonnet::allowed('vcg',$env{'request.course.id'}.($env{'request.course.sec'}?'/'.$env{'request.course.sec'}:''));
my $editgrps = &Apache::lonnet::allowed('mdg',$env{'request.course.id'});
if ((!$can_view) && (!$view_details) && (!$viewgrps) && (!$editgrps)) {
$r->print(&mt('You do not have privileges to view the membership roster in this [_1]',$gpterm));
return OK;
}
- my %coursegroups = &Apache::longroup::coursegroups($cdom,$cnum,$group);
- my %content = &Apache::longroup::get_group_settings($coursegroups{$group});
+ my %content = &Apache::longroup::get_group_settings($curr_groups{$group});
my $description = &unescape($content{'description'});
$r->print(&roster_header($cdom,$cnum,$group,$description,$gpterm,$ucgpterm));
@@ -118,6 +118,14 @@ sub handler {
sub roster_header {
my ($cdom,$cnum,$group,$description,$gpterm,$ucgpterm) = @_;
+ my $refarg;
+ if (exists($env{'form.ref'})) {
+ $refarg = 'ref='.$env{'form.ref'};
+ &Apache::lonhtmlcommon::add_breadcrumb
+ ({href=>"/adm/coursegroups",
+ text=>"Groups",
+ title=>"View course groups"});
+ }
my $jscript = qq|
function changeSort(caller) {
document.grouproster.sortby.value = caller;
@@ -128,10 +136,10 @@ function changeSort(caller) {
'');
&Apache::lonhtmlcommon::add_breadcrumb
- ({href=>"/adm/$cdom/$cnum/$group/grppg",
+ ({href=>"/adm/$cdom/$cnum/$group/smppg?$refarg",
text=>"$ucgpterm: $description",
title=>"Go to group's home page"},
- {href=>"/adm/grouproster?group=$group",
+ {href=>'/adm/grouproster?group='.$group.'&'.$refarg,
text=>"Membership roster",
title=>"Display group membership"},);
$output .= &Apache::lonhtmlcommon::breadcrumbs(&mt('[_1] membership status - [_2]',$gpterm,$description));
@@ -144,7 +152,7 @@ sub roster_table {
my $fixedprivs = &Apache::longroup::get_fixed_privs();
- my ($memberinfo,$hastools,$addtools,$numitems) =
+ my ($memberinfo,$numitems,$hastools,$addtools) =
&Apache::longroup::group_memberlist($cdom,$cnum,$group,$fixedprivs,
$available);
my (%tooltype,$toolprivs);
@@ -196,15 +204,19 @@ sub roster_table {
' '.
- ' ');
+ ' ');
+ if (exists($env{'form.ref'})) {
+ $r->print(' ');
+ }
+ $r->print(' ');
}
if (ref($numitems) eq 'HASH') {
foreach my $key (keys(%{$numitems})) {
if ($status eq $key && !$$numitems{$key}) {
- $r->print(&mt('There are no [_1] members to display in this [_2]',
- $key,$gpterm));
+ $r->print(&mt('There are no [_1]s to display in this [_2].',
+ lc($lt{$key}),$gpterm));
return;
}
}
@@ -214,6 +226,10 @@ sub roster_table {
');
+ if (exists($env{'form.ref'})) {
+ $r->print(' ');
+ }
my %Sortby = ();
my $usercount = 0;
foreach my $user (sort(keys(%{$memberinfo}))) {