--- loncom/interface/loncoursegroups.pm 2006/07/20 03:11:52 1.54 +++ loncom/interface/loncoursegroups.pm 2006/07/21 02:51:31 1.57 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA # -# $Id: loncoursegroups.pm,v 1.54 2006/07/20 03:11:52 raeburn Exp $ +# $Id: loncoursegroups.pm,v 1.57 2006/07/21 02:51:31 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1825,7 +1825,7 @@ sub privilege_specificity { } &topic_bar($r,$img,$lt{'uprv'}); if ((($action eq 'create') && (@{$available} > 0)) || - (($action eq 'modify') && ($formname eq 'change_settings'))) { + (($action eq 'modify') && ($formname eq 'change_settings'))) { my %specific = ( 'No' => 'checked="checked"', 'Yes' => '', @@ -1882,6 +1882,7 @@ sub privilege_specificity { } else { if ($action eq 'create') { $r->print($lt{'asyo'}); + $r->print(''); } elsif ($action eq 'modify' && $formname eq 'pick_members') { my @defprivs; if (ref($$stored{'defpriv'}) eq 'ARRAY') { @@ -2807,7 +2808,47 @@ sub write_group_data { $r->print(&mt('A problem occurred when creating folders for the new [_1]. [_2].
',$gpterm,$result)); } $r->print(&mt('[_1] [_2] was created.
',$ucgpterm,$groupname)); - } else { + } elsif ($action eq 'modify') { + my (@oldtools,@newtools); + if (ref($$stored{'tool'}) eq 'ARRAY') { + @oldtools = @{$$stored{'tool'}}; + } + if (ref($tools) eq 'ARRAY') { + @newtools = @{$tools}; + } + if (!grep(/^discussion$/,@oldtools) && + grep(/^discussion$/,@newtools)) { + 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('Error while setting parameters '. + 'for Discussion Boards folder: '. + '[_1]
.',$parm_result)); + } else { + $r->print(&mt('Discussion Boards Folder created.
')); + } + } else { + $r->print($outcome); + } + undef($navmap); + } + } $r->print(&mt('[_1] [_2] was updated.
',$ucgpterm,$groupname)); } } else { @@ -3320,7 +3361,7 @@ sub add_group_folder { my $grpfolder = &mt('[_1] Folder -',$ucgpterm,).$description; $grppage='/adm/'.$cdom.'/'.$cnum.'/'.$groupname.'/smppg'; my $grptitle = &mt('Group homepage').' - '.$description; - my ($seqid,$discussions,$disctitle); + my ($discussions,$disctitle); my $outcome = &map_updater($cdom,$cnum,'group_folder_'.$groupname.'.sequence', 'grpseq',$grpfolder,$allgrpsmap,$grppage, $grptitle); @@ -3332,7 +3373,6 @@ sub add_group_folder { # Link to folder for bulletin boards $grpmap = $crspath.'group_folder_'.$groupname.'.sequence'; if (grep/^discussion$/,@{$tools}) { - $seqid = $now + 1; $disctitle = &mt('Discussion Boards'); my $outcome = &map_updater($cdom,$cnum,'group_boards_'.$groupname. '.sequence','bbseq',$disctitle,$grpmap); @@ -3349,9 +3389,6 @@ sub add_group_folder { # modify parameters my $parm_result; if ($action eq 'create') { - if ($allgrpsmap) { - $parm_result .= &parm_setter($navmap,$cdom,$allgrpsmap,$groupname); - } if ($grpmap) { $parm_result .= &parm_setter($navmap,$cdom,$grpmap,$groupname); }