Diff for /loncom/interface/loncoursegroups.pm between versions 1.15 and 1.18

version 1.15, 2006/05/09 14:38:09 version 1.18, 2006/05/18 14:03:23
Line 30  use Apache::loncommon; Line 30  use Apache::loncommon;
 use Apache::lonhtmlcommon;  use Apache::lonhtmlcommon;
 use Apache::lonlocal;  use Apache::lonlocal;
 use Apache::lonnavmaps;  use Apache::lonnavmaps;
   use Apache::longroup;
 use Apache::Constants qw(:common :http);  use Apache::Constants qw(:common :http);
   
 sub handler {  sub handler {
Line 154  sub display_groups { Line 155  sub display_groups {
         if (!defined($action)) {          if (!defined($action)) {
             $action = 'view';              $action = 'view';
         }          }
         my %curr_groups = &Apache::loncommon::coursegroups($cdom,$cnum);          my %curr_groups = &Apache::longroup::coursegroups($cdom,$cnum);
         if (%curr_groups) {          if (%curr_groups) {
             $r->print('<br /><br />');              $r->print('<br /><br />');
             $r->print(&Apache::lonhtmlcommon::start_pick_box());              $r->print(&Apache::lonhtmlcommon::start_pick_box());
Line 182  END Line 183  END
             my %Sortby = ();              my %Sortby = ();
             foreach my $group (sort(keys(%curr_groups))) {              foreach my $group (sort(keys(%curr_groups))) {
                 %{$grp_info{$group}} =                   %{$grp_info{$group}} = 
                                   &Apache::loncommon::get_group_settings(                                    &Apache::longroup::get_group_settings(
                                                          $curr_groups{$group});                                                           $curr_groups{$group});
                 my $members_result = &group_members($cdom,$cnum,$group,                  my $members_result = &group_members($cdom,$cnum,$group,
                                                     \%grp_info);                                                      \%grp_info);
Line 267  END Line 268  END
         my @coursegroups = split(/:/,$env{'request.course.groups'});          my @coursegroups = split(/:/,$env{'request.course.groups'});
         if (@coursegroups > 0) {          if (@coursegroups > 0) {
             $r->print('<br /><br />');              $r->print('<br /><br />');
             my %curr_groups = &Apache::loncommon::coursegroups($cdom,$cnum);              my %curr_groups = &Apache::longroup::coursegroups($cdom,$cnum);
             if (%curr_groups) {              if (%curr_groups) {
                 foreach my $group (@coursegroups) {                  foreach my $group (@coursegroups) {
                     my %group_info =  &Apache::loncommon::get_group_settings(                      my %group_info =  &Apache::longroup::get_group_settings(
                                         $curr_groups{$group});                                          $curr_groups{$group});
                     my $description = &Apache::lonnet::unescape(                      my $description = &Apache::lonnet::unescape(
                                         $group_info{description});                                          $group_info{description});
Line 433  sub group_administration { Line 434  sub group_administration {
                                    );                                     );
     if (ref($stored{'autorole'}) eq 'ARRAY') {      if (ref($stored{'autorole'}) eq 'ARRAY') {
         foreach my $role (@{$stored{'autorole'}}) {          foreach my $role (@{$stored{'autorole'}}) {
             $elements{'modify'}{'change_settings'}{'sec_'.$role} = 'selectbox';               unless ($role eq 'cc') {
                   $elements{'modify'}{'change_settings'}{'sec_'.$role} = 
                                                                      'selectbox';
               }
         }          }
     }      }
     %{$elements{'create'}{'pick_members'}} = (      %{$elements{'create'}{'pick_members'}} = (
Line 454  sub group_administration { Line 458  sub group_administration {
         (($state eq 'pick_name') || ($state eq 'pick_privs'))) ||          (($state eq 'pick_name') || ($state eq 'pick_privs'))) ||
        (($action eq 'modify') && (($state eq 'change_settings') ||         (($action eq 'modify') && (($state eq 'change_settings') ||
                                   ($state eq 'add_members')))) {                                    ($state eq 'add_members')))) {
         my $numsections = &Apache::loncommon::get_sections($cdom,$cnum,          %sectioncount = &Apache::loncommon::get_sections($cdom,$cnum);
                                                            \%sectioncount);          if (%sectioncount) {
         if ($numsections > 0) {  
             $elements{'create'}{'pick_name'}{'sectionpick'} = 'selectbox';              $elements{'create'}{'pick_name'}{'sectionpick'} = 'selectbox';
             $elements{'modify'}{'change_mapping'}{'sectionpick'} = 'selectbox';              $elements{'modify'}{'change_mapping'}{'sectionpick'} = 'selectbox';
             $elements{'modify'}{'add_members'}{'sectionpick'} = 'selectbox';              $elements{'modify'}{'add_members'}{'sectionpick'} = 'selectbox';
Line 808  function changeSort(caller) { Line 811  function changeSort(caller) {
   
 sub retrieve_settings {  sub retrieve_settings {
     my ($cdom,$cnum,$groupname) = @_;      my ($cdom,$cnum,$groupname) = @_;
     my %curr_groups = &Apache::loncommon::coursegroups($cdom,$cnum,$groupname);      my %curr_groups = &Apache::longroup::coursegroups($cdom,$cnum,$groupname);
   
     return if (!%curr_groups);      return if (!%curr_groups);
   
     my %groupinfo =       my %groupinfo = 
  &Apache::loncommon::get_group_settings($curr_groups{$groupname});   &Apache::longroup::get_group_settings($curr_groups{$groupname});
   
     my %stored;      my %stored;
   
Line 850  sub retrieve_settings { Line 853  sub retrieve_settings {
     $stored{'autodrop'} = $groupinfo{'autodrop'};      $stored{'autodrop'} = $groupinfo{'autodrop'};
     if (exists($groupinfo{'autosec'})) {      if (exists($groupinfo{'autosec'})) {
  foreach my $role (sort(keys(%{$groupinfo{'autosec'}}))) {   foreach my $role (sort(keys(%{$groupinfo{'autosec'}}))) {
     foreach my $section (@{$groupinfo{'autosec'}{$role}}) {              if (ref($groupinfo{'autosec'}{$role}) eq 'ARRAY') {
  push (@{$stored{'sec_'.$role}},$section);          foreach my $section (@{$groupinfo{'autosec'}{$role}}) {
     }              push (@{$stored{'sec_'.$role}},$section);
     if (@{$groupinfo{'autosec'}{$role}} > 0) {          }
  push(@{$stored{'autorole'}},$role);          if (@{$groupinfo{'autosec'}{$role}} > 0) {
     }      push(@{$stored{'autorole'}},$role);
           }
               }
  }   }
     }      }
     return %stored;      return %stored;
Line 1248  sub membership_options { Line 1253  sub membership_options {
     $r->print(&Apache::lonhtmlcommon::role_select_row(\@roles));      $r->print(&Apache::lonhtmlcommon::role_select_row(\@roles));
     if (@sections > 0) {      if (@sections > 0) {
         @sections = sort {$a cmp $b} @sections;          @sections = sort {$a cmp $b} @sections;
         unshift(@sections,'_all'); # Put 'all' at the front of the list          unshift(@sections,'all'); # Put 'all' at the front of the list
         unshift(@sections,'_nosec'); # Put 'no sections' next          unshift(@sections,'none'); # Put 'no sections' next
         $r->print('<td>&nbsp;</td>          $r->print('<td>&nbsp;</td>
                    <td colspan="3" align="center" valign="top">'.                     <td colspan="3" align="center" valign="top">'.
         &sections_selection(\@sections,'sectionpick').'</td>');          &sections_selection(\@sections,'sectionpick').'</td>');
Line 1270  sub sections_selection { Line 1275  sub sections_selection {
         $numvisible = @{$sections};          $numvisible = @{$sections};
     }      }
     foreach my $sec (@{$sections}) {      foreach my $sec (@{$sections}) {
         if ($sec eq '_all') {          if ($sec eq 'all') {
             $section_sel .= '  <option value="'.$sec.'" />all sections'."\n";              $section_sel .= '  <option value="'.$sec.'" />all sections'."\n";
         } elsif ($sec eq '_nosec') {          } elsif ($sec eq 'none') {
             $section_sel .= '  <option value="'.$sec.'" />no section'."\n";               $section_sel .= '  <option value="'.$sec.'" />no section'."\n"; 
         } else {          } else {
             $section_sel .= '  <option value="'.$sec.'" />'.$sec."\n";              $section_sel .= '  <option value="'.$sec.'" />'.$sec."\n";
Line 2589  sub member_privileges_form { Line 2594  sub member_privileges_form {
         }          }
         $specificity = $env{'form.specificity'};          $specificity = $env{'form.specificity'};
     } else {      } else {
         @defprivs = @{$$stored{'defpriv'}};          if (defined($$stored{'defpriv'})) {
               @defprivs = @{$$stored{'defpriv'}};
           }
         $specificity = $$stored{'specificity'};          $specificity = $$stored{'specificity'};
     }      }
     my @showtools;      my @showtools;
Line 2773  sub process_request { Line 2780  sub process_request {
             @defprivs = @temp;               @defprivs = @temp; 
         }          }
     } else {      } else {
         @defprivs = @{$$stored{'defpriv'}};          if (defined($$stored{'defpriv'})) {
               @defprivs = @{$$stored{'defpriv'}};
           }
     }      }
   
     my $outcome;      my $outcome;
Line 2853  sub write_group_data { Line 2862  sub write_group_data {
         if (defined($env{'form.sec_'.$role})) {          if (defined($env{'form.sec_'.$role})) {
             my @autosections=&Apache::loncommon::get_env_multiple('form.sec_'.              my @autosections=&Apache::loncommon::get_env_multiple('form.sec_'.
                                                                   $role);                                                                    $role);
             if (grep/^_all$/,@autosections) {  
                 @autosections = sort {$a cmp $b} keys(%{$sectioncount});  
             }  
             $autosec .= '<role id="'.$role.'">';              $autosec .= '<role id="'.$role.'">';
             foreach my $sec (@autosections) {              foreach my $sec (@autosections) {
                 $autosec .= '<section>'.$sec.'</section>';                  $autosec .= '<section>'.$sec.'</section>';
Line 3056  sub process_membership { Line 3062  sub process_membership {
         }          }
     }      }
     if ($roster_result eq 'ok') {      if ($roster_result eq 'ok') {
         $r->print('<br />Group membership list updated.');          $r->print('<br />'.&mt('Group membership list updated.'));
     } else {      } else {
         $r->print('<br />An error occurred while updating the group membership list -'.$roster_result.'<br />');          $r->print('<br />'.&mt('An error occurred while updating the group membership list -').$roster_result.'<br />');
     }      }
     return;      return;
 }  }
Line 3116  sub automapping { Line 3122  sub automapping {
    <td>&nbsp;</td>     <td>&nbsp;</td>
    <td colspan="3">     <td colspan="3">
    <nobr>'.$$lt{'auad'}.':&nbsp;     <nobr>'.$$lt{'auad'}.':&nbsp;
     <input type="radio" name="autoadd" value="on" />on&nbsp;&nbsp;<input type="radio" name="autoadd" value="off" />off');      <label><input type="radio" name="autoadd" value="on" />on&nbsp;&nbsp;</label><label><input type="radio" name="autoadd" value="off" checked="checked" />off</label>');
     if ($action eq 'modify') {      if ($action eq 'modify') {
         $r->print('&nbsp;&nbsp;&nbsp;&nbsp;('.$$lt{'curr'}.' <b>'.$$lt{$add}.'</b>)');          $r->print('&nbsp;&nbsp;&nbsp;&nbsp;('.$$lt{'curr'}.' <b>'.$$lt{$add}.'</b>)');
     }      }
Line 3128  sub automapping { Line 3134  sub automapping {
    <td>&nbsp;</td>     <td>&nbsp;</td>
    <td colspan="3">     <td colspan="3">
     <nobr>'.$$lt{'auex'}.':&nbsp;      <nobr>'.$$lt{'auex'}.':&nbsp;
     <input type="radio" name="autodrop" value="on" />on&nbsp;&nbsp;<input type="radio" name="autodrop" value="off" />off');      <label><input type="radio" name="autodrop" value="on" />on&nbsp;&nbsp;</label><label><input type="radio" name="autodrop" value="off" checked="checked" />off</label>');
     if ($action eq 'modify') {      if ($action eq 'modify') {
         $r->print('&nbsp;&nbsp;&nbsp;&nbsp;('.$$lt{'curr'}.' <b>'.$$lt{$drop}.'</b>)');          $r->print('&nbsp;&nbsp;&nbsp;&nbsp;('.$$lt{'curr'}.' <b>'.$$lt{$drop}.'</b>)');
     }      }
Line 3151  sub mapping_settings { Line 3157  sub mapping_settings {
     my @sections = keys(%{$sectioncount});      my @sections = keys(%{$sectioncount});
     if (@sections > 0) {      if (@sections > 0) {
         @sections = sort {$a cmp $b} @sections;          @sections = sort {$a cmp $b} @sections;
         unshift(@sections,'_nosec'); # Put 'no sections' next          unshift(@sections,'none'); # Put 'no sections' next
         unshift(@sections,'_all'); # Put 'all' at the front of the list          unshift(@sections,'all'); # Put 'all' at the front of the list
     }      }
     &topic_bar($r,$tabcol,$image,$$lt{'pirs'});      &topic_bar($r,$tabcol,$image,$$lt{'pirs'});
     $r->print('      $r->print('
Line 3176  sub mapping_settings { Line 3182  sub mapping_settings {
         my $plrole=&Apache::lonnet::plaintext($role);          my $plrole=&Apache::lonnet::plaintext($role);
         my $sections_sel;          my $sections_sel;
         if (@sections > 0) {          if (@sections > 0) {
             $sections_sel='<td>'.&sections_selection(\@sections,'sec_'.$role).              if ($role eq 'cc') {
                                                                        '</td>';                  $sections_sel = '<td align="right">'.
                                   &mt('all sections').'<input type="hidden" '. 
                                   'name="sec_cc" value="all" /></td>';
               } else { 
                   $sections_sel='<td align="right">'.
                                 &sections_selection(\@sections,'sec_'.$role).
                                 '</td>';
               }
         }          }
         if ($rowNum %2 == 1) {          if ($rowNum %2 == 1) {
             $rowColor = $rowColor1;              $rowColor = $rowColor1;
Line 3210  sub mapping_settings { Line 3223  sub mapping_settings {
 }  }
   
 sub standard_roles {  sub standard_roles {
     my @roles = ('st','ep','ta','in','cc');      my @roles = ('cc','in','ta','ep','st');
     return @roles;      return @roles;
 }  }
   
Line 3410  function toggleTools(field,caller) { Line 3423  function toggleTools(field,caller) {
   
 sub validate_groupname {  sub validate_groupname {
     my ($groupname,$action,$cdom,$cnum) = @_;      my ($groupname,$action,$cdom,$cnum) = @_;
     my %sectioncount;      my %sectioncount = &Apache::loncommon::get_sections($cdom,$cnum);
     my $numsec=&Apache::loncommon::get_sections($cdom,$cnum,\%sectioncount);      my %curr_groups = &Apache::longroup::coursegroups($cdom,$cnum);
     my %curr_groups = &Apache::loncommon::coursegroups($cdom,$cnum);  
   
     my %lt = &Apache::lonlocal::texthash (      my %lt = &Apache::lonlocal::texthash (
                       igna => 'Invalid group name',                        igna => 'Invalid group name',
Line 3436  sub validate_groupname { Line 3448  sub validate_groupname {
         $earlyout = $exitmsg.$lt{'isno'}.'<br />'.$lt{'gnmo'};          $earlyout = $exitmsg.$lt{'isno'}.'<br />'.$lt{'gnmo'};
         return $earlyout;          return $earlyout;
     }      }
     if ($numsec) {      if (exists($sectioncount{$groupname})) {
         if (exists($sectioncount{$groupname})) {   return $exitmsg.$lt{'cnnb'}.&mt('a section').$lt{'inth'}.
             $earlyout = $exitmsg.$lt{'cnnb'}.&mt('a section').$lt{'inth'}.      '<br />'.$lt{'grna'};
                         '<br />'.$lt{'grna'};  
             return $earlyout;  
         }  
     }      }
     if ($action eq 'create'       if ($action eq 'create' 
  && exists($curr_groups{$groupname})) {   && exists($curr_groups{$groupname})) {

Removed from v.1.15  
changed lines
  Added in v.1.18


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>