--- loncom/interface/grouproster.pm 2006/07/17 15:07:26 1.3 +++ loncom/interface/grouproster.pm 2006/08/17 23:36:05 1.4 @@ -52,38 +52,49 @@ sub handler { return HTTP_NOT_ACCEPTABLE; } - &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['group','ref']); + &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, + ['group','ref','status']); my $gpterm = &Apache::loncommon::group_term(); my $ucgpterm = $gpterm; $ucgpterm =~ s/^(\w)/uc($1)/e; my $crstype = &Apache::loncommon::course_type(); my $group; + my %curr_groups; + # Validating group input. + my $badinput; if ((!defined($env{'form.group'})) || ($env{'form.group'} eq '')) { - $r->print(&mt('No [_1] name provided',$gpterm)); - + $r->print(&mt('No group name provided.
')); + $badinput = 1; } else { $group = $env{'form.group'}; $group =~ s/\W//g; } - if ($group eq '') { - $r->print(&mt('Invalid [_1] name provided',$gpterm)); + if (!$badinput && $group eq '') { + $r->print(&mt('Invalid group name provided.
')); + $badinput = 1; } my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; if ($cdom eq '' || $cnum eq '') { - $r->print(&mt('Invalid [_1]',$crstype)); + $r->print(&mt('Invalid [_1]
',$crstype)); + $badinput = 1; } - 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))); + if (!$badinput) { + %curr_groups = &Apache::longroup::coursegroups($cdom,$cnum); + if (!defined($curr_groups{$group})) { + $r->print(&mt('"[_1]" is not the name of a valid group in this [_2].', + $group,lc($crstype))); + $badinput = 1; + } + } + if ($badinput) { return OK; - } + } &Apache::lonhtmlcommon::clear_breadcrumbs(); @@ -119,30 +130,43 @@ sub handler { sub roster_header { my ($cdom,$cnum,$group,$description,$gpterm,$ucgpterm) = @_; my $refarg; - if (exists($env{'form.ref'})) { + if (exists($env{'form.ref'}) && $env{'form.ref'} ne 'popup') { $refarg = 'ref='.$env{'form.ref'}; &Apache::lonhtmlcommon::add_breadcrumb ({href=>"/adm/coursegroups", text=>"Groups", title=>"View course groups"}); } + my $args; + if ($env{'form.ref'} eq 'popup') { + $args = { + 'no_nav_bar' => 1, + 'no_inline_link' => 1, + }; + } my $jscript = qq| function changeSort(caller) { document.grouproster.sortby.value = caller; document.grouproster.submit(); }\n|; + my $itemtitle = &mt('Group membership status - [_1]',$description); my $output = - &Apache::loncommon::start_page(&mt('[_1] Membership ',$ucgpterm), + &Apache::loncommon::start_page('Group Membership', ''); - &Apache::lonhtmlcommon::add_breadcrumb - ({href=>"/adm/$cdom/$cnum/$group/smppg?$refarg", - text=>"$ucgpterm: $description", - title=>"Go to group's home page"}, - {href=>'/adm/grouproster?group='.$group.'&'.$refarg, - text=>"Membership roster", - title=>"Display group membership"},); - $output .= &Apache::lonhtmlcommon::breadcrumbs(&mt('[_1] membership status - [_2]',$gpterm,$description)); + $jscript.'',$args); + if ($env{'form.ref'} eq 'popup') { + $output .= '

'.&mt('Group membership status - [_1]',$description). + '

'; + } else { + &Apache::lonhtmlcommon::add_breadcrumb + ({href=>"/adm/$cdom/$cnum/$group/smppg?$refarg", + text=>"$ucgpterm: $description", + title=>"Go to group's home page"}, + {href=>'/adm/grouproster?group='.$group.'&'.$refarg, + text=>"Membership roster", + title=>"Display group membership"},); + $output .= &Apache::lonhtmlcommon::breadcrumbs(&mt('[_1] membership status - [_2]',$gpterm,$description)); + } return $output; } @@ -209,9 +233,10 @@ sub roster_table { $r->print(''); } - $r->print('

'); + $r->print('
'); } + $r->print('
'); if (ref($numitems) eq 'HASH') { foreach my $key (keys(%{$numitems})) { if ($status eq $key && !$$numitems{$key}) { @@ -225,6 +250,7 @@ sub roster_table {
+ '); if (exists($env{'form.ref'})) { $r->print('