--- loncom/interface/loncoursegroups.pm 2006/07/07 20:31:09 1.45 +++ loncom/interface/loncoursegroups.pm 2006/07/08 01:16:30 1.51 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA # -# $Id: loncoursegroups.pm,v 1.45 2006/07/07 20:31:09 albertel Exp $ +# $Id: loncoursegroups.pm,v 1.51 2006/07/08 01:16:30 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -59,8 +59,6 @@ sub handler { &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, ['action','refpage','state','groupname','branch']); - my $function = &Apache::loncommon::get_users_function(); - my $tabcol = &Apache::loncommon::designparm($function.'.tabbg'); my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; @@ -91,9 +89,6 @@ sub handler { $idx{uname} = &Apache::loncoursedata::CL_SNAME(); $idx{section} = &Apache::loncoursedata::CL_SECTION(); - my $rowColor1 = "#dddddd"; - my $rowColor2 = "#eeeeee"; - my $action = $env{'form.action'}; my $state = $env{'form.state'}; if ((!defined($action)) || ($action eq 'view')) { @@ -104,9 +99,9 @@ sub handler { if ($action eq 'create' || $action eq 'modify' || $action eq 'view') { if ($view_permission || $manage_permission) { &group_administration($r,$action,$state,$cdom,$cnum, - $tabcol,\%functions,\%idx,$view_permission, - $manage_permission,$rowColor1,$rowColor2, - $gpterm,$ucgpterm,$crstype); + \%functions,\%idx,$view_permission, + $manage_permission,$gpterm,$ucgpterm, + $crstype); } else { $r->print(&mt('You do not have [_1] administration '. 'privileges in this [_2]',$gpterm,lc($crstype))); @@ -278,7 +273,7 @@ END if ($action eq 'modify' || $action eq 'delete') { $link .= $group; } else { - $link .= $group.'/grppg'; + $link .= $group.'/smppg?ref=grouplist'; } $link .= '">'.$lt{$action}.''; if ($action eq 'view') { @@ -335,7 +330,7 @@ END my $description = &unescape( $group_info{description}); my ($uname,$udom) = split(/:/,$group_info{creator}); - $r->print(''.$group,'
'.$description.'

'); + $r->print(''.$group,'
'.$description.'

'); } } } else { @@ -348,9 +343,8 @@ END } sub group_administration { - my ($r,$action,$state,$cdom,$cnum,$tabcol,$functions,$idx, - $view_permission,$manage_permission,$rowColor1,$rowColor2,$gpterm, - $ucgpterm,$crstype) = @_; + my ($r,$action,$state,$cdom,$cnum,$functions,$idx,$view_permission, + $manage_permission,$gpterm,$ucgpterm,$crstype) = @_; my %sectioncount = (); my @tools = (); my @types = (); @@ -865,14 +859,14 @@ function changeSort(caller) { {text=>"$trail{$action}{$state}"}); $r->print(&Apache::lonhtmlcommon::breadcrumbs ("$crumbtitle Manager")); - &display_control($r,$cdom,$cnum,$tabcol,$action,$state,$page, + &display_control($r,$cdom,$cnum,$action,$state,$page, \%sectioncount,$groupname,$description,$functions, \@tools,$toolprivs,$fixedprivs,$startdate,$enddate, \%users,\%userdata,$idx,\%memchg,\%usertools, $view_permission,$manage_permission, \%stored,$granularity,$quota,$specificity,\@types,\@roles, - \@sections,\%states,\%navbuttons,$rowColor1,$rowColor2, - $gpterm,$ucgpterm,$crstype); + \@sections,\%states,\%navbuttons,$gpterm,$ucgpterm, + $crstype); last; } else { if (($state eq 'result') && ($i > 0)) { @@ -960,26 +954,25 @@ sub retrieve_settings { } sub display_control { - my ($r,$cdom,$cnum,$tabcol,$action,$state,$page,$sectioncount,$groupname, + my ($r,$cdom,$cnum,$action,$state,$page,$sectioncount,$groupname, $description,$functions,$tools,$toolprivs,$fixedprivs,$startdate, $enddate,$users,$userdata,$idx,$memchg,$usertools, $view_permission,$manage_permission,$stored,$granularity,$quota, - $specificity,$types,$roles,$sections,$states,$navbuttons,$rowColor1, - $rowColor2,$gpterm,$ucgpterm,$crstype) = @_; + $specificity,$types,$roles,$sections,$states,$navbuttons, + $gpterm,$ucgpterm,$crstype) = @_; if ($action eq 'create') { if ($state eq 'pick_name') { - &general_settings_form($r,$cdom,$cnum,$action,$tabcol,$state,$page, + &general_settings_form($r,$cdom,$cnum,$action,$state,$page, $functions,$tools,$toolprivs,$fixedprivs, $sectioncount,$stored,$states,$navbuttons, - $rowColor1,$rowColor2,$gpterm,$ucgpterm, - $crstype); + $gpterm,$ucgpterm,$crstype); } elsif ($state eq 'pick_members') { - &choose_members_form($r,$cdom,$cnum,$tabcol,$action,$state,$page, + &choose_members_form($r,$cdom,$cnum,$action,$state,$page, $groupname,$description,$granularity,$quota, $startdate,$enddate,$tools,$fixedprivs, $toolprivs,$functions,$users,$userdata,$idx, - $stored,$states,$navbuttons,$rowColor1, - $rowColor2,$gpterm,$ucgpterm,$crstype); + $stored,$states,$navbuttons,$gpterm,$ucgpterm, + $crstype); } elsif ($state eq 'pick_privs') { &choose_privs_form($r,$cdom,$cnum,$action,$state,$page, $startdate,$enddate,$tools,$functions, @@ -1003,37 +996,34 @@ sub display_control { } elsif ($state eq 'pick_task') { &modify_menu($r,$groupname,$page,$gpterm); } elsif ($state eq 'change_settings') { - &general_settings_form($r,$cdom,$cnum,$action,$tabcol,$state,$page, + &general_settings_form($r,$cdom,$cnum,$action,$state,$page, $functions,$tools,$toolprivs,$fixedprivs, $sectioncount,$stored,$states,$navbuttons, - $rowColor1,$rowColor2,$gpterm,$ucgpterm, - $crstype); + $gpterm,$ucgpterm,$crstype); } elsif ($state eq 'change_members') { - &change_members_form($r,$cdom,$cnum,$tabcol,$action,$state,$page, + &change_members_form($r,$cdom,$cnum,$action,$state,$page, $groupname,$description,$startdate,$enddate, $tools,$fixedprivs,$functions,$users, $userdata,$granularity,$quota,$specificity, - $idx,$states,$navbuttons,$rowColor1,$rowColor2, - $gpterm,$ucgpterm); + $idx,$states,$navbuttons,$gpterm,$ucgpterm); } elsif ($state eq 'add_members') { - &add_members_form($r,$tabcol,$action,$state,$page,$startdate, + &add_members_form($r,$action,$state,$page,$startdate, $enddate,$groupname,$description,$granularity, $quota,$sectioncount,$tools,$functions,$stored, - $states,$navbuttons,$rowColor1,$rowColor2,$gpterm, - $ucgpterm); + $states,$navbuttons,$gpterm,$ucgpterm); } elsif ($state eq 'pick_members') { - &choose_members_form($r,$cdom,$cnum,$tabcol,$action,$state,$page, + &choose_members_form($r,$cdom,$cnum,$action,$state,$page, $groupname,$description,$granularity,$quota, $startdate,$enddate,$tools,$fixedprivs, $toolprivs,$functions,$users,$userdata,$idx, - $stored,$states,$navbuttons,$rowColor1, - $rowColor2,$gpterm,$ucgpterm,$crstype); + $stored,$states,$navbuttons,$gpterm,$ucgpterm, + $crstype); } elsif ($state eq 'pick_privs') { - &choose_privs_form($r,$cdom,$cnum,$tabcol,$action,$state,$page, + &choose_privs_form($r,$cdom,$cnum,$action,$state,$page, $startdate,$enddate,$tools,$functions, $toolprivs,$fixedprivs,$userdata,$usertools, $idx,$states,$stored,$sectioncount,$navbuttons, - $rowColor1,$rowColor2,$gpterm,$ucgpterm,$crstype); + $gpterm,$ucgpterm,$crstype); } elsif ($state eq 'change_privs') { &change_privs_form($r,$cdom,$cnum,$action,$state,$page, $startdate,$enddate,$tools,$functions, @@ -1167,16 +1157,19 @@ sub group_members { if ($totalmembers == 0) { $$group_info{$group}{'totalmembers'} = 'None'; } else { - $$group_info{$group}{'totalmembers'} = $active.' - active
'.$previous.' -previous
'.$future.' -future'; + $$group_info{$group}{'totalmembers'} = ''.$active. + ' - active
'.$previous. + ' - previous
'.$future. + ' - future'; } return 'ok'; } sub general_settings_form { - my ($r,$cdom,$cnum,$action,$tabcol,$formname,$page,$functions,$tools, + my ($r,$cdom,$cnum,$action,$formname,$page,$functions,$tools, $toolprivs,$fixedprivs,$sectioncount,$stored,$states,$navbuttons, - $rowColor1,$rowColor2,$gpterm,$ucgpterm,$crstype) = @_; + $gpterm,$ucgpterm,$crstype) = @_; my ($nexttext,$prevtext); &groupsettings_options($r,$functions,$action,$formname,$stored,1, $gpterm,$ucgpterm,$crstype); @@ -1190,9 +1183,9 @@ sub general_settings_form { my @unavailable = (); &check_tools($functions,$tools,\@available,\@unavailable); @{$tools} = sort(keys(%{$functions})); - &privilege_specificity($r,$tabcol,$rowColor1,$rowColor2,$action, - 3,$tools,$stored,$toolprivs,$fixedprivs, - \@available,$formname,$gpterm,$ucgpterm); + &privilege_specificity($r,$action,3,$tools,$stored,$toolprivs, + $fixedprivs,\@available,$formname, + $gpterm,$ucgpterm); &mapping_options($r,$action,$formname,$page,$sectioncount, $states,$stored,$navbuttons,4,5, $gpterm,$ucgpterm,$crstype); @@ -1295,7 +1288,7 @@ END $r->print(' Mb'); if ($action eq 'create') { $r->print('
'. - &mt('A total of [_1] Mb is shared between all [_2]s in the '. + &mt('A total of [_1] Mb can be divided amongst all [_2]s in the '. '[_3], and [_4] Mb are currently unallocated.',$crsquota, $gpterm,lc($crstype),$freespace)); } else { @@ -1439,10 +1432,10 @@ sub access_date_settings { } sub choose_members_form { - my ($r,$cdom,$cnum,$tabcol,$action,$formname,$page,$groupname,$description, + my ($r,$cdom,$cnum,$action,$formname,$page,$groupname,$description, $granularity,$quota,$startdate,$enddate,$tools,$fixedprivs,$toolprivs, $functions,$users,$userdata,$idx,$stored,$states,$navbuttons, - $rowColor1,$rowColor2,$gpterm,$ucgpterm,$crstype) = @_; + $gpterm,$ucgpterm,$crstype) = @_; my @regexps = ('user_','userpriv_','sec_'); my %origmembers; $r->print(&Apache::lonhtmlcommon::echo_form_input( @@ -1452,7 +1445,7 @@ sub choose_members_form { my $earlyout = &validate_groupname($groupname,$action,$cdom,$cnum,$gpterm, $ucgpterm,$crstype); if ($earlyout) { - $r->print($earlyout) + $r->print($earlyout); &display_navbuttons($r,$formname,$$states{$action}[$page-1], $$navbuttons{'gtps'}); return; @@ -1484,8 +1477,7 @@ sub choose_members_form { } } } - &privilege_specificity($r,$tabcol,$rowColor1,$rowColor2,$action, - $specimg,$tools,$stored,$toolprivs, + &privilege_specificity($r,$action,$specimg,$tools,$stored,$toolprivs, $fixedprivs,\@available,$formname,$gpterm,$ucgpterm); my $newusers = &pick_new_members($r,$action,$formname,\@available,$idx, $stored,$memimg,$users,$userdata, @@ -1580,7 +1572,7 @@ sub print_current_settings { '); if (@{$available} > 0) { $r->print('Available: - '); +
'); my $rowcell = int(@{$available}/2) + @{$available}%2; for (my $i=0; $i<@{$available}; $i++) { if (@{$available} > 3) { @@ -1598,7 +1590,7 @@ sub print_current_settings { } if (@{$unavailable} > 0) { $r->print('Unavailable: -
'); +
'); my $rowcell = int(@{$unavailable}/2) + @{$unavailable}%2; for (my $j=0; $j<@{$unavailable}; $j++) { if (@{$unavailable} > 3) { @@ -1672,14 +1664,16 @@ sub pick_new_members { '); &check_uncheck_buttons($r,$formname,'member',$lt{'addm'}); if (@{$available} > 0 && $granularity eq 'Yes') { - $r->print(''); + + '); } $r->print('
+ $r->print('
'.$lt{'setf'}.' +    -
'); @@ -1769,8 +1763,8 @@ sub pick_new_members { } sub privilege_specificity { - my ($r,$tabcol,$rowColor1,$rowColor2,$action,$img,$tools,$stored, - $toolprivs,$fixedprivs,$available,$formname,$gpterm,$ucgpterm) = @_; + my ($r,$action,$img,$tools,$stored,$toolprivs,$fixedprivs,$available, + $formname,$gpterm,$ucgpterm) = @_; my %lt = &Apache::lonlocal::texthash ( 'uprv' => 'User privileges', 'frty' => 'For each type of functionality you have chosen to include, '. @@ -2029,10 +2023,10 @@ sub display_defprivs { sub change_members_form { - my ($r,$cdom,$cnum,$tabcol,$action,$formname,$page,$groupname,$description, + my ($r,$cdom,$cnum,$action,$formname,$page,$groupname,$description, $startdate,$enddate,$tools,$fixedprivs,$functions,$users,$userdata, - $granularity,$quota,$specificity,$idx,$states,$navbuttons,$rowColor1, - $rowColor2,$gpterm,$ucgpterm) = @_; + $granularity,$quota,$specificity,$idx,$states,$navbuttons,$gpterm, + $ucgpterm) = @_; my %lt = &Apache::lonlocal::texthash( grse => "$ucgpterm settings", mogm => "Modify $gpterm membership", @@ -2056,17 +2050,16 @@ sub change_members_form { $groupname,$description,$granularity,$quota, \@available,\@unavailable,$gpterm,$ucgpterm); &topic_bar($r,2,$lt{'mogm'}); - ¤t_membership($r,$cdom,$cnum,$formname,$tabcol,$rowColor1, - $rowColor2,$groupname,\@available,\@unavailable, - $fixedprivs,$granularity,$specificity); + ¤t_membership($r,$cdom,$cnum,$formname,$groupname,\@available, + \@unavailable,$fixedprivs,$granularity,$specificity); &display_navbuttons($r,$formname,$$states{$action}[$page-1],$prevtext, $$states{$action}[$page+1],$nexttext); return; } sub current_membership { - my ($r,$cdom,$cnum,$formname,$tabcol,$rowColor1,$rowColor2,$groupname, - $available,$unavailable,$fixedprivs,$granularity,$specificity) = @_; + my ($r,$cdom,$cnum,$formname,$groupname,$available,$unavailable, + $fixedprivs,$granularity,$specificity) = @_; my %membership = &Apache::lonnet::get_group_membership($cdom,$cnum, $groupname); my %lt = &Apache::lonlocal::texthash( @@ -2088,9 +2081,6 @@ sub current_membership { $available); if (keys(%{$current}) > 0) { $r->print(' - -   - '); if ($num_expire) { @@ -2127,51 +2117,41 @@ sub current_membership { $r->print(<<"END");
- -   - - -   - - -   - +
END - $r->print(&Apache::lonhtmlcommon::start_pick_box()); + $r->print(&Apache::loncommon::start_data_table(). + &Apache::loncommon::start_data_table_header_row()); $r->print(<<"END"); - - - - - - - - - + + + + + + + END my $colspan = 0; if ($hastools) { - $r->print(''); - $colspan ++; + $r->print(''); + $colspan++; } if ($addtools) { - $r->print(''); - $colspan ++; + $r->print(''); + $colspan++; } - $r->print(''); + $r->print(&Apache::loncommon::end_data_table_header_row()); if ($colspan) { if ($granularity eq 'Yes') { - $r->print(' + $r->print(&Apache::loncommon::start_data_table_row('LC_data_table_dense LC_data_table_highlight').' - '); + $r->print(''); } } my %Sortby = (); @@ -2188,23 +2168,16 @@ END push(@{$Sortby{$$current{$user}{fullname}}},$user); } } - my $rowNum = 0; - my $rowColor; foreach my $key (sort(keys(%Sortby))) { foreach my $user (@{$Sortby{$key}}) { - if ($rowNum %2 == 1) { - $rowColor = $rowColor1; - } else { - $rowColor = $rowColor2; - } my $id = $$current{$user}{id}; my $fullname = $$current{$user}{fullname}; my $udom = $$current{$user}{udom}; my $uname = $$current{$user}{uname}; my $start = $$current{$user}{start}; my $end = $$current{$user}{end}; - $r->print(' - - '); + '. + ''. + ''. + ''. + ''. + ''. + ''); if ($hastools) { - $r->print(''); + $r->print(''); } if ($addtools) { - $r->print(''); + $r->print(''); } - $r->print(''."\n"); - $rowNum ++; + $r->print(&Apache::loncommon::end_data_table_row()."\n"); } } - $r->print(&Apache::lonhtmlcommon::end_pick_box()); - $r->print(' - - '); + $r->print(&Apache::loncommon::end_data_table()); } return; } @@ -2286,16 +2257,16 @@ sub check_uncheck_buttons { my ($r,$formname,$field,$title,$colspan) = @_; $r->print(' '); } @@ -2324,7 +2295,7 @@ sub change_privs_form { my $exp_or_del = 0; if (ref($$memchg{'deletion'}) eq 'ARRAY') { if (@{$$memchg{'deletion'}} > 0) { - $r->print('
$lt{'actn'}$lt{'name'}$lt{'usnm'} - $lt{'doma'}ID$lt{'stda'}$lt{'enda'}$lt{'actn'}$lt{'name'}$lt{'usnm'}$lt{'doma'}ID$lt{'stda'}$lt{'enda'}'.$lt{'curf'}.''.$lt{'curf'}.'Additional Functionality'.&mt('Additional Functionality').'
 '.&mt('All:'). + '.&mt('All:'). ' '); foreach my $tool (@{$available}) { $r->print('   '); + ' value="'.$tool.'" />'.''.$tool.'   '); } - $r->print('
'); + $r->print(&Apache::loncommon::start_data_table_row('LC_data_table_dense').' + '); if ($$current{$user}{changestate} eq 'reenable') { $r->print(''); } $r->print(' - '. - $fullname.''.$uname.''. - $udom.''.$id.''.$start. - ''.$end.''.$fullname.''.$uname.''. $udom.''.$id.''.$start.''.$end.''. + $r->print(''. '      '); foreach my $tool (@{$$current{$user}{currtools}}) { if ($granularity eq 'Yes') { @@ -2249,10 +2224,10 @@ END } $r->print('   '); } - $r->print(''); + $r->print(''); if ($granularity eq 'Yes') { foreach my $tool (@{$$current{$user}{newtools}}) { $r->print('
-
'.$title.' +    -
+
 '.$lt{'tode'}.':
    '); + $r->print(''.$lt{'tode'}.':
      '); foreach my $user (@{$$memchg{'deletion'}}) { $r->print('
    • '.$$userdata{$user}[$$idx{fullname}]. ' ('.$user.')
    • '); @@ -2335,7 +2306,7 @@ sub change_privs_form { } if (ref($$memchg{'expire'}) eq 'ARRAY') { if (@{$$memchg{'expire'}} > 0) { - $r->print('
 '.$lt{'toex'}.':
    '); + $r->print(''.$lt{'toex'}.':
      '); foreach my $user (@{$$memchg{'expire'}}) { $r->print('
    • '.$$userdata{$user}[$$idx{fullname}]. ' ('.$user.')
    • '); @@ -2365,9 +2336,9 @@ sub change_privs_form { } sub add_members_form { - my ($r,$tabcol,$action,$formname,$page,$startdate,$enddate,$groupname, + my ($r,$action,$formname,$page,$startdate,$enddate,$groupname, $description,$granularity,$quota,$sectioncount,$tools,$functions, - $stored,$states,$navbuttons,$rowColor1,$rowColor2,$gpterm,$ucgpterm)=@_; + $stored,$states,$navbuttons,$gpterm,$ucgpterm)=@_; $r->print('
      '); my @available = (); my @unavailable = (); @@ -3284,31 +3255,31 @@ sub add_group_folder { my ($outcome,$allgrpsmap,$grpmap,$boardsmap,$grppage); my $navmap = Apache::lonnavmaps::navmap->new(); my $crspath = '/uploaded/'.$cdom.'/'.$cnum.'/'; - $allgrpsmap = $crspath.'default_0.sequence'; + $allgrpsmap = $crspath.'group_allfolders.sequence'; my $topmap = $navmap->getResourceByUrl($allgrpsmap); undef($navmap); if ($action eq 'create') { - # check if default_0.sequence exists. + # check if group_allfolders.sequence exists. if (!$topmap) { my $grpstitle = &mt('[_1] [_2]',$crstype,$ucgpterm); my $topmap_url = '/'.$env{'course.'.$env{'request.course.id'}.'.url'}; $topmap_url =~ s|/+|/|g; if ($topmap_url =~ m|^/uploaded|) { - $outcome = &map_updater($cdom,$cnum,'default_0.sequence', + $outcome = &map_updater($cdom,$cnum,'group_allfolders.sequence', 'toplevelgroup',$grpstitle,$topmap_url); if ($outcome ne 'ok') { return $outcome; } } else { - $outcome = &mt('Non-standard course - group folder not added.'); + $outcome = &mt('Non-standard course - folder for all groups not added.'); return $outcome; } } my $grpfolder = &mt('[_1] Folder -',$ucgpterm,).$description; - $grppage='/adm/'.$cdom.'/'.$cnum.'/'.$groupname.'/grppg'; + $grppage='/adm/'.$cdom.'/'.$cnum.'/'.$groupname.'/smppg'; my $grptitle = &mt('Group homepage').' - '.$description; my ($seqid,$discussions,$disctitle); - my $outcome = &map_updater($cdom,$cnum,'default_'.$now.'.sequence', + my $outcome = &map_updater($cdom,$cnum,'group_folder_'.$groupname.'.sequence', 'grpseq',$grpfolder,$allgrpsmap,$grppage, $grptitle); if ($outcome ne 'ok') { @@ -3317,16 +3288,16 @@ sub add_group_folder { my $pageout = &create_homepage($cdom,$cnum,$groupname,$groupinfo, $tools,$gpterm,$ucgpterm,$now); # Link to folder for bulletin boards - $grpmap = $crspath.'default_'.$now.'.sequence'; + $grpmap = $crspath.'group_folder_'.$groupname.'.sequence'; if (grep/^discussion$/,@{$tools}) { $seqid = $now + 1; $disctitle = &mt('Discussion Boards'); - my $outcome = &map_updater($cdom,$cnum,'default_'.$seqid. + my $outcome = &map_updater($cdom,$cnum,'group_boards_'.$groupname. '.sequence','bbseq',$disctitle,$grpmap); if ($outcome ne 'ok') { return $outcome; } - $boardsmap = $crspath.'default_'.$seqid.'.sequence'; + $boardsmap = $crspath.'group_boards_'.$groupname.'.sequence'; } } else { #modify group folder if status of discussions tools is changed