--- loncom/interface/loncoursegroups.pm 2008/12/11 14:55:15 1.83
+++ loncom/interface/loncoursegroups.pm 2009/01/20 16:38:39 1.89
@@ -1,6 +1,6 @@
# The LearningOnline Network with CAPA
#
-# $Id: loncoursegroups.pm,v 1.83 2008/12/11 14:55:15 bisitz Exp $
+# $Id: loncoursegroups.pm,v 1.89 2009/01/20 16:38:39 bisitz Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -75,7 +75,7 @@ sub handler {
my $crstype = &Apache::loncommon::course_type();
my %functions = (
- email => 'E-mail',
+ email => 'Send Messages',
discussion => 'Discussion Boards',
chat => 'Chat',
files => 'File Repository',
@@ -349,8 +349,8 @@ END
'
'.$quota.' '.
''.$totalmembers.' '.
''.
- ''.&mt('Files: [_1]',$totalfiles).'
'.
- ''.&mt('Folders: [_1]',$totaldirs).'
'.
+ ''.&mt('Files: [_1]',$totalfiles).' '.
+ ''.&mt('Folders: [_1]',$totaldirs).' '.
' '.
''.$boards.' '.
''.$diskuse.' '.
@@ -1259,12 +1259,18 @@ sub reenable_folder {
sub modify_folders {
my ($cdom,$cnum,$groupname) = @_;
- my $outcome;
+ my ($outcome,$groupmap,$groupmapres,$map,$id,$src);
my $navmap = Apache::lonnavmaps::navmap->new();
- my $groupmap = '/uploaded/'.$cdom.'/'.$cnum.'/'.'group_folder_'.
+ if (!defined($navmap)) {
+ $outcome = ''.
+ &mt('Error reading course contents.').' '.
+ &mt('You need to re-initialize the course.').
+ '
';
+ return $outcome;
+ }
+ $groupmap = '/uploaded/'.$cdom.'/'.$cnum.'/'.'group_folder_'.
$groupname.'.sequence';
- my $groupmapres = $navmap->getResourceByUrl($groupmap);
- my ($map,$id,$src);
+ $groupmapres = $navmap->getResourceByUrl($groupmap);
if ($groupmapres) {
($map,$id,$src)=&Apache::lonnet::decode_symb($groupmapres->symb());
}
@@ -1798,7 +1804,7 @@ sub sections_selection {
}
}
my $output = '
-
+
'.$section_sel.'
';
return $output;
@@ -3222,36 +3228,49 @@ sub write_group_data {
my $crspath = '/uploaded/'.$cdom.'/'.$cnum.'/';
my $boardsmap = $crspath.'group_boards_'.$groupname.'.sequence';
my $navmap = Apache::lonnavmaps::navmap->new();
- my $bbmapres = $navmap->getResourceByUrl($boardsmap);
- undef($navmap);
- if (!$bbmapres) {
- my $grpmap = $crspath.'group_folder_'.$groupname.'.sequence';
- my $disctitle = &mt('Discussion Boards');
- my $outcome = &map_updater($cdom,$cnum,'group_boards_'.
- $groupname.'.sequence','bbseq',
- $disctitle,$grpmap);
- my ($furl,$ferr) =
- &Apache::lonuserstate::readmap($cdom.'/'.$cnum);
- $navmap = Apache::lonnavmaps::navmap->new();
- # modify parameter
- if ($outcome eq 'ok') {
- my $parm_result = &parm_setter($navmap,$cdom,$boardsmap,
- $groupname);
- if ($parm_result) {
- $r->print(''
- .&mt('An error occurred while setting parameters '
- .'for Discussion Boards folder: '
- .'[_1]',$parm_result)
- .'
');
+ my ($bbmapres,$error);
+ if (defined($navmap)) {
+ $bbmapres = $navmap->getResourceByUrl($boardsmap);
+ undef($navmap);
+ if (!$bbmapres) {
+ my $grpmap = $crspath.'group_folder_'.$groupname.'.sequence';
+ my $disctitle = &mt('Discussion Boards');
+ my $outcome = &map_updater($cdom,$cnum,'group_boards_'.
+ $groupname.'.sequence','bbseq',
+ $disctitle,$grpmap);
+ my ($furl,$ferr) =
+ &Apache::lonuserstate::readmap($cdom.'/'.$cnum);
+ # modify parameter
+ if ($outcome eq 'ok') {
+ $navmap = Apache::lonnavmaps::navmap->new();
+ if (defined($navmap)) {
+ my $parm_result = &parm_setter($navmap,$cdom,$boardsmap,
+ $groupname);
+ if ($parm_result) {
+ $error = &mt('An error occurred while setting parameters '
+ .'for Discussion Boards folder: '
+ .'[_1]',$parm_result);
+ } else {
+ $r->print(''.
+ &mt('Discussion Boards Folder created.')
+ .'
');
+ }
+ undef($navmap);
+ } else {
+ $error = &mt('An error occurred while setting parameters '.
+ 'for Discussion Boards folder: '.
+ 'Could not retrieve course information' );
+ }
} else {
- $r->print(''
- .&mt('Discussion Boards Folder created.')
- .'
');
+ $r->print($outcome);
}
- } else {
- $r->print($outcome);
}
- undef($navmap);
+ } else {
+ $error = &mt("An error occurred while retrieving the contents of the group's folder.").' '.
+ &mt('You need to re-initialize the course.');
+ }
+ if ($error ne '') {
+ $r->print(''.$error.'
');
}
}
$r->print(''
@@ -3786,7 +3805,7 @@ sub add_group_folder {
if ($delresult ne 'ok') {
$warning = $delresult;
}
- return $outcome;
+ return $outcome.$warning;
}
}
my $delresult = &release_folder_lock($cdom,$cnum,'group_allfolders');
@@ -3796,7 +3815,7 @@ sub add_group_folder {
} else {
$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($ucgpterm.' Folder - [_1]',$description);
@@ -3827,6 +3846,10 @@ sub add_group_folder {
}
my ($furl,$ferr)= &Apache::lonuserstate::readmap($cdom.'/'.$cnum);
my $navmap = Apache::lonnavmaps::navmap->new();
+ if (!defined($navmap)) {
+ return $warning.''.&mt('Error retrieving course contents').
+ ' '.&mt('You need to re-initialize the course.').' ';
+ }
# modify parameters
my $parm_result;
if ($action eq 'create') {
@@ -3932,6 +3955,13 @@ sub new_map {
sub parm_setter {
my ($navmap,$cdom,$url,$groupname) = @_;
my $allresults;
+ if (!defined($navmap)) {
+ $allresults = ''.
+ &mt('Parameters not set for [_1] because the contents of the course could not be retrieved.',$url).' '.
+ &mt('You need to reinitialize the course.').
+ '
';
+ return $allresults;
+ }
my %hide_settings = (
'course' => {
'num' => 13,