--- loncom/interface/loncoursegroups.pm 2006/07/29 00:31:58 1.59 +++ loncom/interface/loncoursegroups.pm 2006/08/21 17:00:52 1.62 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA # -# $Id: loncoursegroups.pm,v 1.59 2006/07/29 00:31:58 raeburn Exp $ +# $Id: loncoursegroups.pm,v 1.62 2006/08/21 17:00:52 banghart Exp $ # # Copyright Michigan State University Board of Trustees # @@ -127,6 +127,15 @@ sub print_main_menu { function changeSort(caller) { document.$state.sortby.value = caller; document.$state.submit(); +} +function openGroupRoster(group,status) { + var url = '/adm/grouproster?'; + url += 'group='+group+'&status='+status+'&ref=popup'; + var title = 'Group Membership'; + var options = 'scrollbars=1,resizable=1,menubar=0'; + options += ',width=700,height=600'; + rosterbrowser = open(url,title,options,'1'); + rosterbrowser.focus(); }\n|; $r->print(&header('Groups',$jscript,$action,$state)); if ($env{'form.refpage'} eq 'enrl') { @@ -176,8 +185,8 @@ sub display_groups { nogr => 'No groups exist.', crng => 'Create a new group', alth => 'Although your current role has privileges'. - ' to view any existing groups in this'. - lc($crstype).', you do not have privileges'. + ' to view any existing groups in this '. + lc($crstype).', you do not have privileges '. 'to create new groups.', ); if ($view_permission) { @@ -882,7 +891,7 @@ function changeSort(caller) { &Apache::lonhtmlcommon::add_breadcrumb( {text=>"$trail{$action}{$state}"}); $r->print(&Apache::lonhtmlcommon::breadcrumbs - ("Groups Manager")); + ("Groups Manager","Creating_Groups")); &display_control($r,$cdom,$cnum,$action,$state,$page, \%sectioncount,$groupname,$description,$functions, \@tools,$toolprivs,$fixedprivs,$startdate,$enddate, @@ -1151,39 +1160,54 @@ sub group_members { my ($cdom,$cnum,$group,$group_info) = @_; my %memberhash = &Apache::lonnet::get_group_membership($cdom,$cnum,$group); my $now = time; - my ($tmp)=keys(%memberhash); - if ($tmp=~/^error:/) { - $$group_info{'totalmembers'} = 'Unknown - an error occurred'; - return $tmp; - } + my %lt = &Apache::lonlocal::texthash ( + active => 'active', + previous => 'previous', + future => 'future', + ); + my %membercounts = ( + active => 0, + previous => 0, + future => 0, + ); my $totalmembers = 0; - my $active = 0; - my $previous = 0; - my $future = 0; foreach my $member (keys %memberhash) { $totalmembers ++; my ($end,$start) = split(/:/,$memberhash{$member}); unless ($start == -1) { if (($end!=0) && ($end<$now)) { - $previous ++; + $membercounts{previous} ++; } elsif (($start!=0) && ($start>$now)) { - $future ++; + $membercounts{future} ++; } else { - $active ++; + $membercounts{active} ++; } } } if ($totalmembers == 0) { $$group_info{$group}{'totalmembers'} = 'None'; } else { - $$group_info{$group}{'totalmembers'} = ''.$active. - ' - active
'.$previous. - ' - previous
'.$future. - ' - future'; + foreach my $type ('active','previous','future') { + $$group_info{$group}{'totalmembers'} .= + &open_list_window($group,$type,$membercounts{$type},$lt{$type}); + } } return 'ok'; } +sub open_list_window { + my ($group,$status,$count,$text) = @_; + my $entry; + if ($count > 0) { + $entry = ''.$text.' - '.$count. + '
'; + } else { + $entry = ''.$text.' - '.$count.'
'; + } + return $entry; +} + sub general_settings_form { my ($r,$cdom,$cnum,$action,$formname,$page,$functions,$tools,