--- loncom/interface/loncoursegroups.pm 2008/10/22 17:39:05 1.80 +++ loncom/interface/loncoursegroups.pm 2008/12/24 07:36:39 1.80.2.4 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA # -# $Id: loncoursegroups.pm,v 1.80 2008/10/22 17:39:05 bisitz Exp $ +# $Id: loncoursegroups.pm,v 1.80.2.4 2008/12/24 07:36:39 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -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()); } @@ -1553,11 +1559,11 @@ sub open_list_window { my ($group,$status,$count,$text) = @_; my $entry; if ($count > 0) { - $entry = ''.$text.' - '.$count. - '
'; + '
'; } else { - $entry = ''.$text.' - '.$count.'
'; + $entry = ''.$text.' - '.$count.'
'; } return $entry; } @@ -2065,13 +2071,13 @@ sub pick_new_members { if (@{$available} > 0 && $granularity eq 'Yes') { $r->print('
'.$lt{'setf'}.' - +    - +
'); } $r->print(' @@ -2094,13 +2100,13 @@ sub pick_new_members { if ($granularity eq 'Yes') { $r->print(&Apache::loncommon::start_data_table_row('LC_data_table_dense LC_data_table_highlight').'   - '.&mt('All:').' '); + '.&mt('All:').' '); foreach my $tool (@{$available}) { $r->print('   '); } - $r->print(''); + $r->print(''); } } my %Sortby = (); @@ -2134,7 +2140,7 @@ sub pick_new_members { ''.$id.''. ''.$section.''); if (@{$available} > 0) { - $r->print(''. + $r->print(''. '       '); foreach my $tool (@{$available}) { if ($granularity eq 'Yes') { @@ -2145,7 +2151,7 @@ sub pick_new_members { $tool.'" value="'.$user.'" />'.$tool.'   '); } } - $r->print(''); + $r->print(''); } $r->print(&Apache::loncommon::end_data_table_row()."\n"); } @@ -2232,8 +2238,8 @@ sub privilege_specificity { if ($totaloptionalprivs) { $r->print('
-
-

'); +
+

'); } else { $r->print(''); } @@ -2509,7 +2515,7 @@ sub current_membership { $r->print(&check_uncheck_tools($r,$available)); $r->print(' - +
'.$lt{'curf'}.' @@ -2517,7 +2523,7 @@ sub current_membership {
-
+ '); } @@ -2552,14 +2558,14 @@ END if ($granularity eq 'Yes') { $r->print(&Apache::loncommon::start_data_table_row('LC_data_table_dense LC_data_table_highlight').'   - '.&mt('All:'). + '.&mt('All:'). ' '); foreach my $tool (@{$available}) { $r->print('   '); } - $r->print(''); + $r->print(''); } } my %Sortby = (); @@ -2587,25 +2593,25 @@ END $r->print(&Apache::loncommon::start_data_table_row('LC_data_table_dense').' '); if ($$current{$user}{changestate} eq 'reenable') { - $r->print('
'); + $lt{'reen'}.'
'); } elsif ($$current{$user}{changestate} eq 'expire') { - $r->print('
'); + $lt{'expi'}.'
'); } elsif ($$current{$user}{changestate} eq 'activate') { - $r->print('
'); + $lt{'acti'}.'
'); } - $r->print(''); + $lt{'dele'}.''); if ($specificity eq 'Yes') { - $r->print('
'); + ''); } $r->print(' '. @@ -2616,7 +2622,7 @@ END ''.$start.''. ''.$end.''); if ($hastools) { - $r->print(''. + $r->print(''. '      '); foreach my $tool (@{$$current{$user}{currtools}}) { if ($granularity eq 'Yes') { @@ -2632,23 +2638,23 @@ END } $r->print('   '); } - $r->print(''); + $r->print(''); } if ($addtools) { $r->print(''); if ($granularity eq 'Yes') { foreach my $tool (@{$$current{$user}{newtools}}) { - $r->print('   '); + '   '); } } else { foreach my $tool (@{$$current{$user}{newtools}}) { - $r->print('print(''.$tool. - '   '); + '   '); } } $r->print(''); @@ -2669,13 +2675,13 @@ sub check_uncheck_buttons {
'.$title.' - +    - +
'); @@ -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('
' @@ -3534,19 +3553,19 @@ sub automapping { } $r->print(&Apache::lonhtmlcommon::topic_bar($image,$$lt{'endi'}).' '.$$lt{'gmma'}.':
'.$$lt{'adds'}.'
'.$$lt{'drops'}.'

- '.$$lt{'auad'}.':  + '.$$lt{'auad'}.':  '); if ($action eq 'modify') { $r->print('    ('.$$lt{'curr'}.' '.$$lt{$add}.')'); } $r->print(' -
- '.$$lt{'auex'}.':  +
+ '.$$lt{'auex'}.':  '); if ($action eq 'modify') { $r->print('    ('.$$lt{'curr'}.' '.$$lt{$drop}.')'); } - $r->print('


'.$$lt{'mapr'}); + $r->print('

'.$$lt{'mapr'}); } sub mapping_settings { @@ -3706,16 +3725,16 @@ sub member_privs_entries { if ($privcount == 3) { $dynamic .= ''; } - $dynamic .=''; + ''; } } - $r->print(''.$fixed.''.$dynamic.''); + $r->print(''.$fixed.''.$dynamic.''); } else { $r->print('
'.$tool.'
 
 
'); } @@ -3742,8 +3761,8 @@ sub date_setting_table { my $endform = &Apache::lonhtmlcommon::date_setter($formname, 'enddate',$endtime); my $perpetual = - ''; + ''; my $table = "\n". ''. ''. @@ -3787,7 +3806,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'); @@ -3797,7 +3816,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); @@ -3828,6 +3847,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') { @@ -3933,6 +3956,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,
'.&mt('Start:').''.$startform.'