--- loncom/interface/loncoursegroups.pm 2006/12/04 21:44:02 1.68
+++ loncom/interface/loncoursegroups.pm 2008/05/07 00:10:59 1.76
@@ -1,6 +1,6 @@
# The LearningOnline Network with CAPA
#
-# $Id: loncoursegroups.pm,v 1.68 2006/12/04 21:44:02 albertel Exp $
+# $Id: loncoursegroups.pm,v 1.76 2008/05/07 00:10:59 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -140,15 +140,19 @@ function openGroupRoster(group,status) {
rosterbrowser.focus();
}\n|;
$r->print(&header('Groups',$jscript,$action,$state));
- if ($env{'form.refpage'} eq 'enrl') {
+ if ($env{'form.refpage'} eq 'cusr') {
&Apache::lonhtmlcommon::add_breadcrumb
- ({href=>"/adm/dropadd",
- text=>"Enrollment Manager"});
+ ({href=>"/adm/createuser",
+ text=>"User Management"});
}
&Apache::lonhtmlcommon::add_breadcrumb
({href=>"/adm/coursegroups",
text=>"Groups"});
- $r->print(&Apache::lonhtmlcommon::breadcrumbs('Groups'));
+ my $helpitem;
+ if ($manage_permission) {
+ $helpitem = 'Creating_Groups';
+ }
+ $r->print(&Apache::lonhtmlcommon::breadcrumbs('Groups',$helpitem));
&display_groups($r,$cdom,$cnum,$functions,$idx,$view_permission,
$manage_permission,$action,$state,$gpterm,$ucgpterm,
$crstype);
@@ -189,6 +193,7 @@ sub display_groups {
dius => 'Disk Use (%)',
nogr => 'No groups exist.',
crng => 'Create a new group',
+ redg => 'Re-enable a deleted group',
alth => 'Although your current role has privileges'.
' to view any existing groups in this '.
lc($crstype).', you do not have privileges '.
@@ -198,16 +203,28 @@ sub display_groups {
if (!defined($action)) {
$action = 'view';
}
- my $status;
+ my ($status,$reenable_link);
if ($action eq 'reenable') {
$status = 'deleted_groups';
+ } else {
+ if ($manage_permission) {
+ my %deleted_groups =
+ &Apache::longroup::coursegroups($cdom,$cnum,undef,'deleted_groups');
+ if (keys(%deleted_groups) > 0) {
+ $reenable_link = ' '.$lt{'redg'}.'';
+ }
+ }
}
my %curr_groups = &Apache::longroup::coursegroups($cdom,$cnum,undef,
$status);
+
if (%curr_groups) {
if ($manage_permission) {
- if (!exists($env{'form.refpage'})) {
- $r->print('
'.$lt{'crng'}.'');
+ if ($action ne 'reenable') {
+ $r->print('
'.$lt{'crng'}.'');
+ }
+ if ($reenable_link) {
+ $r->print($reenable_link);
}
}
$r->print('
');
@@ -237,13 +254,13 @@ END
my $members_result = &group_members($cdom,$cnum,$group,
\%grp_info);
my $port_path = '/userfiles/groups/'.$group.'/portfolio';
- my $port_dir = &Apache::loncommon::propath($cdom,$cnum).$port_path;
my $totaldirs = 0;
my $totalfiles = 0;
- &group_files($group,$port_dir,\$totalfiles,\$totaldirs);
+ &group_files($group,$port_path,\$totalfiles,\$totaldirs);
$grp_info{$group}{'totalfiles'} = $totalfiles;
$grp_info{$group}{'totaldirs'} = $totaldirs;
- my $diskuse = &Apache::lonnet::diskusage($cdom,$cnum,$port_dir);
+ my $getpropath = 1;
+ my $diskuse = &Apache::lonnet::diskusage($cdom,$cnum,$port_path, $getpropath);
if ($grp_info{$group}{'quota'} > 0) {
my $pct_use = 0.1 * $diskuse/$grp_info{$group}{'quota'};
$grp_info{$group}{'diskuse'} = sprintf("%.0f",$pct_use);
@@ -312,8 +329,7 @@ END
}
$link .= '">'.$lt{$action}.'';
if ($action eq 'view') {
- if (($manage_permission) &&
- ($env{'form.refpage'} ne 'enrl')) {
+ if ($manage_permission) {
$link .= ' '.$actionlinks{'modify'}.
$group.'">'.$lt{'modify'}.''.
' '.$actionlinks{'delete'}.
@@ -349,12 +365,14 @@ END
} else {
$r->print($lt{'nogr'});
if ($manage_permission) {
- if (!exists($env{'form.refpage'})) {
- $r->print('
'.$lt{'crng'}.'');
+ $r->print('
'.$lt{'crng'}.'');
+ if ($action ne 'reenable') {
+ if ($reenable_link) {
+ $r->print($reenable_link);
+ }
}
} else {
$r->print('
'.$lt{'alth'});
-
}
}
} else {
@@ -848,14 +866,14 @@ function changeSort(caller) {
$r->print(&header("Groups Manager",
$jscript,$action,$state,$page,$loaditems));
- if ($env{'form.refpage'} eq 'enrl') {
+ if ($env{'form.refpage'} eq 'cusr') {
&Apache::lonhtmlcommon::add_breadcrumb
- ({href=>"/adm/dropadd",
- text=>"Enrollment Manager",
+ ({href=>"/adm/createuser",
+ text=>"User Management",
faq=>9,bug=>'Instructor Interface',});
if ($action eq 'modify' || $action eq 'delete') {
&Apache::lonhtmlcommon::add_breadcrumb
- ({href=>"/adm/coursegroups?refpage=enrl&action=$action",
+ ({href=>"/adm/coursegroups?refpage=cusr&action=$action",
text=>"Groups",
faq=>9,bug=>'Instructor Interface',});
}
@@ -1132,7 +1150,7 @@ sub verify_delete {
my $prevtext = &mt('Go back');
my $nexttext = &mt('Delete group');
my $prev;
- if ($env{'form.refpage'} eq 'enrl') {
+ if ($env{'form.refpage'} eq 'cusr') {
$prev = 'view';
}
&display_navbuttons($r,$formname,$prev,$prevtext,
@@ -1160,7 +1178,8 @@ sub delete_group {
$usersettings{$groupname.':'.$user} = $now.':-1:'.$userprivs;
if (&Apache::lonnet::modify_group_roles($cdom,$cnum,
$groupname,$user,
- $now,'-1',$userprivs)
+ $now,'-1',$userprivs,
+ '',$context)
eq 'ok') {
$num_ok ++;
push(@deleted,$user);
@@ -1216,7 +1235,7 @@ sub reenable_folder {
$LONCAPA::map::order[1+$#LONCAPA::map::order]=$idx;
my ($outtext,$errtext) = &LONCAPA::map::storemap($allgrpsmap,1);
if ($errtext) {
- $outcome = &mt('Error storing updated parent folder to group').
+ $outcome = &mt('Error saving updated parent folder to group').
"- $allgrpsmap - $errtext".'
';
} else {
my ($furl,$ferr) =
@@ -1266,7 +1285,7 @@ sub modify_folders {
$#LONCAPA::map::order--;
my ($outtext,$errtext) = &LONCAPA::map::storemap($map,1);
if ($errtext) {
- $outcome = &mt('Error storing updated parent folder to group'). "- $map - $errtext".'
';
+ $outcome = &mt('Error saving updated parent folder to group'). "- $map - $errtext".'
';
} else {
my ($furl,$ferr) =
&Apache::lonuserstate::readmap($cdom.'/'.$cnum);
@@ -1288,7 +1307,7 @@ sub verify_reenable {
my $prevtext = &mt('Go back');
my $nexttext = &mt('Reenable group');
my $prev;
- if ($env{'form.refpage'} eq 'enrl') {
+ if ($env{'form.refpage'} eq 'cusr') {
$prev = 'view';
}
&display_navbuttons($r,$formname,$prev,$prevtext,
@@ -1339,7 +1358,8 @@ sub reenable_group {
if (&Apache::lonnet::modify_group_roles($cdom,$cnum,
$groupname,$user,
$defend,$defstart,
- $userprivs) eq 'ok') {
+ $userprivs,'',
+$context) eq 'ok') {
$num_ok ++;
push(@enabled,$user);
} else {
@@ -1442,16 +1462,16 @@ sub build_members_list {
}
sub group_files {
- my ($group,$currdir,$numfiles,$numdirs) = @_;
+ my ($group,$portpath,$numfiles,$numdirs) = @_;
my $dirptr=16384;
- my @dir_list=&Apache::portfolio::get_dir_list($currdir,$group);
+ my @dir_list=&Apache::portfolio::get_dir_list($portpath,undef,$group);
foreach my $line (@dir_list) {
my ($filename,$dom,undef,$testdir,undef,undef,undef,undef,$size,undef,$mtime,undef,undef,undef,$obs,undef)=split(/\&/,$line,16);
if (($filename !~ /^\.\.?$/) && ($filename !~ /\.meta$/ ) && ($filename !~ /(.*)\.(\d+)\.([^\.]*)$/) && ($filename ne 'no_such_dir')) {
if ($dirptr&$testdir) {
- $currdir .= '/'.$filename;
+ $portpath .= '/'.$filename;
$$numdirs ++;
- &group_files($numfiles,$numdirs)
+ &group_files($group,$portpath,$numfiles,$numdirs)
} else {
$$numfiles ++;
}
@@ -3282,7 +3302,7 @@ sub process_membership {
$curr_privs{$user};
if (&Apache::lonnet::modify_group_roles($cdom,$cnum,$groupname,
$user,$now,$savestart,
- $curr_privs{$user}) eq 'ok') {
+ $curr_privs{$user},''',$context) eq 'ok') {
push(@{$added{'expired'}},$user);
$num_ok ++;
} else {
@@ -3293,7 +3313,7 @@ sub process_membership {
foreach my $user (@deletion) {
$usersettings{$groupname.':'.$user} = $now.':-1:';
if (&Apache::lonnet::modify_group_roles($cdom,$cnum,$groupname,
- $user,$now,'-1','')
+ $user,$now,'-1','','',$context)
eq 'ok') {
push(@{$added{'deleted'}},$user);
$num_ok ++;
@@ -3347,7 +3367,7 @@ sub process_membership {
$group_privs{$user};
if (&Apache::lonnet::modify_group_roles($cdom,$cnum,$groupname,
$user,$end,$start,
- $group_privs{$user}) eq 'ok') {
+ $group_privs{$user},'',$context) eq 'ok') {
push(@{$added{$type}},$user);
$num_ok ++;
} else {
@@ -3679,8 +3699,8 @@ sub add_group_folder {
if ($action eq 'create') {
if (&get_folder_lock($cdom,$cnum,'group_allfolders',$now) eq 'ok') {
# check if group_allfolders.sequence exists.
- my ($errtext,$fatal)=&LONCAPA::map::mapread($allgrpsmap);
- if ($fatal == 2) { #file does not exist;
+ my $mapcontents = &Apache::lonnet::getfile($allgrpsmap);
+ if ($mapcontents eq '-1') { #file does not exist;
my $grpstitle = &mt('[_1] [_2]s',$crstype,$ucgpterm);
my $topmap_url = '/'.$env{'course.'.$env{'request.course.id'}.'.url'};
$topmap_url =~ s|/+|/|g;
@@ -3706,9 +3726,9 @@ sub add_group_folder {
$outcome = &mt('Could not obtain exclusive lock to check status of the folder for all groups. No group folder added.');
return $outcome;
}
- my $grpfolder = &mt('[_1] Folder -',$ucgpterm,).$description;
+ my $grpfolder = &mt($ucgpterm.' Folder - [_1]',$description);
$grppage='/adm/'.$cdom.'/'.$cnum.'/'.$groupname.'/smppg';
- my $grptitle = &mt('Group homepage').' - '.$description;
+ my $grptitle = &mt('Group homepage - [_1]',$description);
my ($discussions,$disctitle);
my $outcome = &map_updater($cdom,$cnum,'group_folder_'.$groupname.'.sequence',
'grpseq',$grpfolder,$allgrpsmap,$grppage,
@@ -3808,7 +3828,7 @@ sub map_updater {
$LONCAPA::map::order[1+$#LONCAPA::map::order]=$newidx;
my ($outtext,$errtext) = &LONCAPA::map::storemap($parentmap,1);
if ($errtext) {
- $outcome = &mt('Error storing updated parent folder')." ($parentmap): $errtext".'
';
+ $outcome = &mt('Error saving updated parent folder')." ($parentmap): $errtext".'
';
return $outcome;
}
}