version 1.3, 2005/11/15 22:03:05
|
version 1.4, 2005/11/22 00:01:41
|
Line 123 sub display_groups {
|
Line 123 sub display_groups {
|
|
|
$r->print('<br /><br />'); |
$r->print('<br /><br />'); |
if ($view_permission) { |
if ($view_permission) { |
if (&Apache::lonnet::get_coursegroups($cdom,$cnum,\%curr_groups) > 0) { |
my %curr_groups; |
|
if (&Apache::loncommon::coursegroups(\%curr_groups,$cdom,$cnum)) { |
$r->print(&Apache::lonhtmlcommon::start_pick_box()); |
$r->print(&Apache::lonhtmlcommon::start_pick_box()); |
if (keys(%curr_groups) > 0) { |
$r->print(<<"END"); |
$r->print(<<"END"); |
|
<table border="0" cellpadding="4" cellspacing="1"> |
<table border="0" cellpadding="4" cellspacing="1"> |
<tr bgcolor="$tabcol" align="center"> |
<tr bgcolor="$tabcol" align="center"> |
<td><b>Action</b></td> |
<td><b>Action</b></td> |
Line 147 sub display_groups {
|
Line 147 sub display_groups {
|
<td><b><a href="javascript:changeSort('diskuse')">Disk use</a></b></td> |
<td><b><a href="javascript:changeSort('diskuse')">Disk use</a></b></td> |
</tr> |
</tr> |
END |
END |
my %Sortby = (); |
my %Sortby = (); |
foreach my $group (sort(keys(%curr_groups))) { |
foreach my $group (sort(keys(%curr_groups))) { |
%{$grp_info{$group}} = |
%{$grp_info{$group}} = |
&Apache::loncommon::get_group_settings( |
&Apache::loncommon::get_group_settings( |
$curr_groups{$group}); |
$curr_groups{$group}); |
my $members_result = &group_members($group,\%grp_info); |
my $members_result = &group_members($cdom,$cnum,$group,\%grp_info); |
my $files_result = &group_files($group,\%grp_info); |
my $files_result = &group_files($group,\%grp_info); |
if ($env{'form.sortby'} eq 'groupname') { |
if ($env{'form.sortby'} eq 'groupname') { |
push(@{$Sortby{$group}},$group); |
push(@{$Sortby{$group}},$group); |
} elsif ($env{'form.sortby'} eq 'description') { |
} elsif ($env{'form.sortby'} eq 'description') { |
push(@{$Sortby{$grp_info{$group}{'description'}}}, |
push(@{$Sortby{$grp_info{$group}{'description'}}}, |
$group); |
$group); |
} elsif ($env{'form.sortby'} eq 'creator') { |
} elsif ($env{'form.sortby'} eq 'creator') { |
push(@{$Sortby{$grp_info{$group}{'creator'}}},$group); |
push(@{$Sortby{$grp_info{$group}{'creator'}}},$group); |
} elsif ($env{'form.sortby'} eq 'creation') { |
} elsif ($env{'form.sortby'} eq 'creation') { |
push(@{$Sortby{$grp_info{$group}{'creation'}}},$group); |
push(@{$Sortby{$grp_info{$group}{'creation'}}},$group); |
} elsif ($env{'form.sortby'} eq 'modified') { |
} elsif ($env{'form.sortby'} eq 'modified') { |
push(@{$Sortby{$grp_info{$group}{'modified'}}},$group); |
push(@{$Sortby{$grp_info{$group}{'modified'}}},$group); |
} elsif ($env{'form.sortby'} eq 'quota') { |
} elsif ($env{'form.sortby'} eq 'quota') { |
push(@{$Sortby{$grp_info{$group}{'quota'}}},$group); |
push(@{$Sortby{$grp_info{$group}{'quota'}}},$group); |
} elsif ($env{'form.sortby'} eq 'totalmembers') { |
} elsif ($env{'form.sortby'} eq 'totalmembers') { |
push(@{$Sortby{$grp_info{$group}{'totalmembers'}}}, |
push(@{$Sortby{$grp_info{$group}{'totalmembers'}}}, |
$group); |
$group); |
} elsif ($env{'form.sortby'} eq 'totalfiles') { |
} elsif ($env{'form.sortby'} eq 'totalfiles') { |
push(@{$Sortby{$grp_info{$group}{'totalfiles'}}}, |
push(@{$Sortby{$grp_info{$group}{'totalfiles'}}}, |
$group); |
$group); |
} elsif ($env{'form.sortby'} eq 'boards') { |
} elsif ($env{'form.sortby'} eq 'boards') { |
push(@{$Sortby{$grp_info{$group}{'boards'}}},$group); |
push(@{$Sortby{$grp_info{$group}{'boards'}}},$group); |
} elsif ($env{'form.sortby'} eq 'diskuse') { |
} elsif ($env{'form.sortby'} eq 'diskuse') { |
push(@{$Sortby{$grp_info{$group}{'diskuse'}}},$group); |
push(@{$Sortby{$grp_info{$group}{'diskuse'}}},$group); |
|
} else { |
|
push(@{$Sortby{$group}},$group); |
|
} |
|
} |
|
my $rowNum = 0; |
|
my $rowColor; |
|
foreach my $key (sort(keys(%Sortby))) { |
|
foreach my $group (@{$Sortby{$key}}) { |
|
if ($rowNum %2 == 1) { |
|
$rowColor = $rowColor1; |
} else { |
} else { |
push(@{$Sortby{$group}},$group); |
$rowColor = $rowColor2; |
} |
} |
} |
my $description = |
my $rowNum = 0; |
|
my $rowColor; |
|
foreach my $key (sort(keys(%Sortby))) { |
|
foreach my $group (@{$Sortby{$key}}) { |
|
if ($rowNum %2 == 1) { |
|
$rowColor = $rowColor1; |
|
} else { |
|
$rowColor = $rowColor2; |
|
} |
|
my $description = |
|
&Apache::lonnet::unescape($grp_info{$group}{'description'}); |
&Apache::lonnet::unescape($grp_info{$group}{'description'}); |
my $creator = $grp_info{$group}{'creator'}; |
my $creator = $grp_info{$group}{'creator'}; |
my $creation = $grp_info{$group}{'creation'}; |
my $creation = $grp_info{$group}{'creation'}; |
my $modified = $grp_info{$group}{'modified'}; |
my $modified = $grp_info{$group}{'modified'}; |
my $quota = $grp_info{$group}{'quota'}; |
my $quota = $grp_info{$group}{'quota'}; |
my $totalmembers = $grp_info{$group}{'totalmembers'}; |
my $totalmembers = $grp_info{$group}{'totalmembers'}; |
my $totalfiles = $grp_info{$group}{'totalfiles'}; |
my $totalfiles = $grp_info{$group}{'totalfiles'}; |
my $boards = $grp_info{$group}{'boards'}; |
my $boards = $grp_info{$group}{'boards'}; |
my $diskuse = $grp_info{$group}{'diskuse'}; |
my $diskuse = $grp_info{$group}{'diskuse'}; |
my $functionality; |
my $functionality; |
foreach my $tool (sort keys(%{$functions})) { |
foreach my $tool (sort keys(%{$functions})) { |
if (defined($grp_info{$group}{functions}{$tool})) { |
if (defined($grp_info{$group}{functions}{$tool})) { |
$functionality .= ' '.$tool; |
$functionality .= ' '.$tool; |
} |
|
} |
} |
if (!$functionality) { |
|
$functionality = 'None available'; |
|
} |
|
$r->print('<tr bgcolor="'.$rowColor.'"><td align="right"> |
|
<a href="/adm/entergroup?group='.$group.'"/>View</a> <a href="/adm/coursegroups?action=modify&group='.$group.'">Modify</a></td><td><small>'.$group.'</small></td><td><small>'.$description.'</small></td><td><small>'.$creator.'</small></td><td><small>'. &Apache::lonnavmaps::timeToHumanString($creation).'</small></td><td><small>'. &Apache::lonnavmaps::timeToHumanString($modified).'</small></td><td><small>'.$functionality.'</small></td><td><small>'.$quota.'</small></td><td><small>'.$totalmembers.'</small></td><td><small>'.$totalfiles.'</small></td><td><small>'.$boards.'</small></td><td><small>'.$diskuse.'</small></td></tr>'); |
|
$rowNum ++; |
|
} |
} |
|
if (!$functionality) { |
|
$functionality = 'None available'; |
|
} |
|
$r->print('<tr bgcolor="'.$rowColor.'"><td align="right"> |
|
<a href="/adm/'.$cdom.'/'.$cnum.'/'.$group.'/grppg?register=1"/>View</a> <a href="/adm/coursegroups?action=modify&group='.$group.'">Modify</a></td><td><small>'.$group.'</small></td><td><small>'.$description.'</small></td><td><small>'.$creator.'</small></td><td><small>'. &Apache::lonnavmaps::timeToHumanString($creation).'</small></td><td><small>'. &Apache::lonnavmaps::timeToHumanString($modified).'</small></td><td><small>'.$functionality.'</small></td><td><small>'.$quota.'</small></td><td><small>'.$totalmembers.'</small></td><td><small>'.$totalfiles.'</small></td><td><small>'.$boards.'</small></td><td><small>'.$diskuse.'</small></td></tr>'); |
|
$rowNum ++; |
} |
} |
$r->print('</table>'); |
} |
$r->print(&Apache::lonhtmlcommon::end_pick_box()); |
$r->print('</table>'); |
} |
$r->print(&Apache::lonhtmlcommon::end_pick_box()); |
} else { |
} else { |
$r->print('No groups exist'); |
$r->print('No groups exist'); |
} |
} |
} else { |
} else { |
$r->print('You do not have sufficient privileges to allow you to display course groups'); |
my @coursegroups = split(/:/,$env{'request.course.groups'}); |
|
if (@coursegroups > 0) { |
|
my %curr_groups; |
|
if (&Apache::loncommon::coursegroups(\%curr_groups,$cdom,$cnum)) { |
|
foreach my $group (@coursegroups) { |
|
my %group_info = &Apache::loncommon::get_group_settings( |
|
$curr_groups{$group}); |
|
my $description = &Apache::lonnet::unescape( |
|
$group_info{description}); |
|
my ($uname,$udom) = split(/:/,$group_info{creator}); |
|
$r->print('<font size="+1"><a href="/adm/'.$udom.'/'.$uname.'/'.$group.'/grppg?register=1">'.$group,'</a><font><br /><small>'.$description.'</small><br /><br />'); |
|
} |
|
} |
|
} else { |
|
$r->print('You are not currently a member of any active groups in this course'); |
|
} |
} |
} |
return; |
return; |
} |
} |
Line 563 sub group_files {
|
Line 577 sub group_files {
|
} |
} |
|
|
sub group_members { |
sub group_members { |
return; |
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 $now = time; |
|
my $totalmembers = 0; |
|
my $active = 0; |
|
my $previous = 0; |
|
my $future = 0; |
|
foreach my $member (keys %memberhash) { |
|
$totalmembers ++; |
|
my ($end,$start) = split(/:/,$memberhash{$member}); |
|
if (($end!=0) && ($end<$now)) { |
|
$previous ++; |
|
} elsif (($start!=0) && ($start>$now)) { |
|
$future ++; |
|
} else { |
|
$active ++; |
|
} |
|
} |
|
if ($totalmembers == 0) { |
|
$$group_info{$group}{'totalmembers'} = 'None'; |
|
} else { |
|
$$group_info{$group}{'totalmembers'} = $active.' - active<br />'.$previous.' -previous<br />'.$future.' -future'; |
|
} |
|
return 'ok'; |
} |
} |
|
|
|
|
Line 789 sub second_creation_form {
|
Line 832 sub second_creation_form {
|
['origin','action','state','member','specificity'],\@regexps)); |
['origin','action','state','member','specificity'],\@regexps)); |
my %sectioncount = (); |
my %sectioncount = (); |
my $numsec = &Apache::loncommon::get_sections($cdom,$cnum,\%sectioncount); |
my $numsec = &Apache::loncommon::get_sections($cdom,$cnum,\%sectioncount); |
my %curr_groups = (); |
my %curr_groups; |
my $numgroups = &Apache::lonnet::get_coursegroups($cdom,$cnum,\%curr_groups); |
my $numgroups = &Apache::loncommon::coursegroups(\%curr_groups,$cdom,$cnum); |
my $earlyout = ''; |
my $earlyout; |
my $exitmsg = '<b>Invalid group name</b><br /><br />The group name entered "'. |
my $exitmsg = '<b>Invalid group name</b><br /><br />The group name entered "'. |
$groupname.'" '; |
$groupname.'" '; |
my $dupmsg = 'Group names and section names used in a course must be unique.'; |
my $dupmsg = 'Group names and section names used in a course must be unique.'; |
Line 800 sub second_creation_form {
|
Line 843 sub second_creation_form {
|
} |
} |
if ($numsec) { |
if ($numsec) { |
if (exists($sectioncount{$groupname})) { |
if (exists($sectioncount{$groupname})) { |
$earlyout = $exitmsg.'can not be used as it is the name of a section |
$earlyout = $exitmsg.'can not be used as it is the name of a '. |
in this course.<br />'.$dupmsg; |
'section in this course.<br />'.$dupmsg; |
} |
} |
} |
} |
if ($numgroups) { |
if ($numgroups) { |
Line 1346 $startdate,$enddate,$tools,$functions,$t
|
Line 1389 $startdate,$enddate,$tools,$functions,$t
|
my %curr_groups = (); |
my %curr_groups = (); |
my %groupsettings = (); |
my %groupsettings = (); |
my %usersettings = (); |
my %usersettings = (); |
if (&Apache::lonnet::get_coursegroups($cdom,$cnum,\%curr_groups) > 0) { |
if (&Apache::loncommon::coursegroups(\%curr_groups,$cdom,$cnum,$groupname)) { |
if (exists($curr_groups{$groupname})) { |
if (exists($curr_groups{$groupname})) { |
$r->print('Non-unique name -please choose another'); |
$r->print('Non-unique name - please choose another'); |
return; |
return; |
} |
} |
} |
} |