--- loncom/interface/loncoursegroups.pm 2006/07/20 03:11:52 1.54
+++ loncom/interface/loncoursegroups.pm 2006/07/21 02:46:51 1.56
@@ -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.56 2006/07/21 02:46:51 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);