--- loncom/interface/loncoursegroups.pm 2006/02/21 18:56:00 1.6 +++ loncom/interface/loncoursegroups.pm 2006/03/21 20:18:18 1.11 @@ -102,8 +102,7 @@ sub handler { sub print_main_menu { my ($r,$cdom,$cnum,$function,$tabcol,$functions,$idx,$view_permission, $manage_permission,$action,$rowColor1,$rowColor2) = @_; - $r->print(&header('Course Groups',&mt('LON-CAPA Course Groups'), - undef,undef,undef,undef,$function)); + $r->print(&header('Course Groups',undef,undef,undef,undef,$function)); &Apache::lonhtmlcommon::add_breadcrumb ({href=>"/adm/coursegroups", text=>"Course Groups",}); @@ -145,14 +144,20 @@ sub display_groups { file => 'Files', dibd => 'Discussion Boards', dius => 'Disk Use', - ); - $r->print('

'); + nogr => 'No groups exist.', + crng => 'Create a new group', + alth => 'Although your current role has privileges'. + ' to view any existing groups in this course,'. + ' you do not have privileges to create new'. + ' groups.', + ); if ($view_permission) { if (!defined($action)) { $action = 'view'; } my %curr_groups; if (&Apache::loncommon::coursegroups(\%curr_groups,$cdom,$cnum)) { + $r->print('

'); $r->print(&Apache::lonhtmlcommon::start_pick_box()); $r->print(<<"END"); @@ -251,11 +256,18 @@ END $r->print('
'); $r->print(&Apache::lonhtmlcommon::end_pick_box()); } else { - $r->print('No groups exist'); + $r->print($lt{'nogr'}); + if ($manage_permission) { + $r->print('

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

'.$lt{'crng'}); + + } } } else { my @coursegroups = split(/:/,$env{'request.course.groups'}); if (@coursegroups > 0) { + $r->print('

'); my %curr_groups; if (&Apache::loncommon::coursegroups(\%curr_groups,$cdom,$cnum)) { foreach my $group (@coursegroups) { @@ -473,6 +485,9 @@ sub group_administration { } if ($state eq 'pick_members') { if ((keys(%users) > 0) && (@tools > 0)) { + if ($granularity eq 'Yes') { + $elements{$action}{'pick_members'}{'togglefunc'} = 'checkbox'; + } foreach my $tool (@tools) { if ($granularity eq 'Yes') { $elements{$action}{'pick_members'}{'user_'.$tool} = 'checkbox'; @@ -527,6 +542,9 @@ sub group_administration { $elements{$action}{'change_members'}{'reenable'} = 'checkbox'; } if ($numusers) { + if ($granularity eq 'Yes') { + $elements{$action}{'change_members'}{'togglefunc'} = 'checkbox'; + } foreach my $tool (@tools) { if ($granularity eq 'Yes') { $elements{$action}{'change_members'}{'user_'.$tool} = 'checkbox'; @@ -702,8 +720,8 @@ function changeSort(caller) { } my $loaditems = &onload_action($action,$state); - $r->print(&header('Course Groups Manager',&mt('LON-CAPA Groups Manager'), - $jscript,$action,$state,$page,$function,$loaditems)); + $r->print(&header('Course Groups Manager', + $jscript,$action,$state,$page,$function,$loaditems)); if ($env{'form.refpage'} eq 'enrl') { &Apache::lonhtmlcommon::add_breadcrumb @@ -763,7 +781,7 @@ function changeSort(caller) { \@sections,\%states,\%navbuttons,$rowColor1,$rowColor2); last; } else { - if (($state =~ /^\w+result$/) && ($i > 0)) { + if (($state eq 'result') && ($i > 0)) { &Apache::lonhtmlcommon::add_breadcrumb( {href=>"javascript:backPage(document.$state,'$states{$action}[0]')", text=>"$trail{$action}{$states{$action}[$i]}"}); @@ -932,19 +950,16 @@ sub display_control { } sub header { - my ($bodytitle,$title,$jscript,$action,$state,$page,$function,$loaditems) = @_; - my $html=&Apache::lonxml::xmlbegin(); - my $bodytag=&Apache::loncommon::bodytag($bodytitle,$function,$loaditems); + my ($bodytitle,$jscript,$action,$state,$page,$function,$loaditems) = @_; + my $start_page= + &Apache::loncommon::start_page($bodytitle, + '', + {'function' => $function, + 'add_entries' => $loaditems,}); my $output = <<"END"; -$html - -$title - - -$bodytag -
+$start_page + END if ($action eq 'create' || $action eq 'modify') { @@ -971,7 +986,8 @@ sub onload_action { } if (($action eq 'modify') && ($state eq 'change_settings' || $state eq 'change_members' || - $state eq 'change_privs') || $state eq 'add_members') { + $state eq 'change_privs' || $state eq 'add_members' || + $state eq 'pick_members')) { $loaditems = 'onload="javascript:setFormElements(document.'.$state.')"'; } @@ -979,11 +995,11 @@ sub onload_action { } sub footer { + my $end_page = &Apache::loncommon::end_page(); return(< - - +$end_page ENDFOOT } @@ -1136,18 +1152,18 @@ END } my @allfunctions = sort(keys (%{$functions})); for (my $i=0; $i<$halfnum; $i++) { - $r->print(' '. - $$functions{$allfunctions[$i]}.' + $$functions{$allfunctions[$i]}.'   '); } $r->print(''. ' '); for (my $j=$halfnum; $j<@allfunctions; $j++) { - $r->print(' '. - $$functions{$allfunctions[$j]}.' + $$functions{$allfunctions[$j]}.'   '); } if ($remnum) { @@ -1161,7 +1177,7 @@ END Granularity: - '.$lt{'doyo'}.' '.&mt('Yes').' '.&mt('No')); + '.$lt{'doyo'}.'  '); if ($action eq 'modify') { $r->print('  ('.&mt('Currently set to "[_1]"', $$stored{'granularity'}).')'); @@ -1309,7 +1325,7 @@ sub choose_members_form { my %origmembers; $r->print(&Apache::lonhtmlcommon::echo_form_input( ['origin','action','state','page','member','specificity','branch', - 'defpriv','autorole','autoadd','autodrop','sortby'], + 'defpriv','autorole','autoadd','autodrop','sortby','togglefunc'], \@regexps)); my $earlyout = &validate_groupname($groupname,$action,$cdom,$cnum); $r->print(' @@ -1599,11 +1615,11 @@ sub pick_new_members { if ($granularity eq 'Yes') { $r->print('   - All: '); + '.&mt('All:').' '); foreach my $tool (@{$available}) { - $r->print(''. - ''.$tool.'   '); + $r->print('   '); } $r->print(''); } @@ -1753,8 +1769,8 @@ sub privilege_specificity { } if ($totaloptionalprivs) { $r->print(' -

 '.$lt{'algm'}.'
- '.$lt{'smgp'}.' +


+ @@ -1876,7 +1892,7 @@ sub default_privileges { $dynamic .= ' '."\n"; } - $dynamic .= ''.$$toolprivs{$tool}{$priv}.''."\n"; + $dynamic .= ''."\n"; } } if ($dynamic eq '') { @@ -1982,8 +1998,8 @@ sub change_members_form { my @regexps = ('user_','userpriv_'); $r->print(&Apache::lonhtmlcommon::echo_form_input( ['origin','action','state','page','expire','deletion', - 'reenable','activate','changepriv','sortby'], - \@regexps)); + 'reenable','activate','changepriv','sortby', + 'togglefunc'],\@regexps)); my $rowimg = 1; my @available = (); my @unavailable = (); @@ -2204,9 +2220,9 @@ END '.&mt('All:'). ' '); foreach my $tool (@{$available}) { - $r->print(''. - ''.$tool.'   '); + $r->print('   '); } $r->print(''); } @@ -2243,25 +2259,25 @@ END $r->print(' '); if ($current{$user}{changestate} eq 'reenable') { - $r->print(''. + $r->print('
'); + $lt{'reen'}.'
'); } elsif ($current{$user}{changestate} eq 'expire') { - $r->print(''. + $r->print('
'); + $lt{'expi'}.'
'); } elsif ($current{$user}{changestate} eq 'activate') { - $r->print(''. + $r->print('
'); + $lt{'acti'}.'
'); } - $r->print(''. + $r->print(''); + $lt{'dele'}.''); if ($specificity eq 'Yes') { - $r->print('
'. + $r->print('
'); + ''); } $r->print(' @@ -2274,17 +2290,17 @@ END '      '); foreach my $tool (@{$current{$user}{currtools}}) { if ($granularity eq 'Yes') { - $r->print(''); + $r->print(''); } else { - $r->print(''); + $r->print(''.$tool); } - $r->print($tool.'   '); + $r->print('   '); } $r->print('
'); } @@ -2292,10 +2308,10 @@ END $r->print(''); if ($granularity eq 'Yes') { foreach my $tool (@{$current{$user}{newtools}}) { - $r->print('print('   '); + '   '); } } else { foreach my $tool (@{$current{$user}{newtools}}) { @@ -2894,6 +2910,11 @@ sub process_membership { &Apache::loncommon::get_env_multiple('form.userpriv_'.$priv); foreach my $user (@users) { $group_privs{$user} .= $priv.':'; + if ($state eq 'memresult') { + unless (exists($$usertools{$user}{$tool})) { + $$usertools{$user}{$tool} = 1; + } + } } } else { if (@{$defprivs} > 0) { @@ -2965,7 +2986,7 @@ sub process_membership { } } } - } + } foreach my $user (sort(keys(%{$usertools}))) { my $type; @@ -3004,13 +3025,14 @@ sub process_membership { if ($num_ok) { foreach my $type (sort(keys(%added))) { $r->print(&mt('The following users were successfully [_1]',$type)); - if ($type eq 'activated' || $type eq 'added' || $type eq 'reenabled') { + if (!($type eq 'deleted' || $type eq 'expired')) { $r->print(&mt(' with the following privileges')); } $r->print(':
'); foreach my $user (@{$added{$type}}) { - my $privlist; - if ($type eq 'activated' || $type eq 'added') { + my $privlist = ''; + if (!($type eq 'deleted' || $type eq 'expired')) { + $privlist = ': '; my @privs = split(/:/,$group_privs{$user}); my $curr_tool = ''; foreach my $priv (@privs) { @@ -3022,7 +3044,7 @@ sub process_membership { } $privlist =~ s/, $//; } - $r->print($$userdata{$user}[$$idx{fullname}].' - '.$user.': '.$privlist.'
'); + $r->print($$userdata{$user}[$$idx{fullname}].' - '.$user.$privlist.'
'); } } } @@ -3278,13 +3300,13 @@ sub member_privs_entries { if ($privcount == 3) { $dynamic .= ''; } - $dynamic .=''; + ''; } } $r->print(''.$fixed.''.$dynamic.''); @@ -3313,8 +3335,8 @@ sub date_setting_table { 'startdate',$starttime); my $endform = &Apache::lonhtmlcommon::date_setter($formname, 'enddate',$endtime); - my $perpetual = ' - no ending date'; + my $perpetual = ''; my $start_table = ''; $start_table .= "\n"; $start_table .= '
Default starting date for