Diff for /loncom/interface/domainprefs.pm between versions 1.25 and 1.26

version 1.25, 2007/08/26 15:31:03 version 1.26, 2007/09/01 21:20:14
Line 745  sub print_quotas { Line 745  sub print_quotas {
     my ($othertitle,$usertypes,$types) = &sorted_inst_types($dom);      my ($othertitle,$usertypes,$types) = &sorted_inst_types($dom);
     my $typecount = 0;      my $typecount = 0;
     my $css_class;      my $css_class;
     if (@{$types} > 0) {      if (ref($types) eq 'ARRAY') {
         foreach my $type (@{$types}) {          foreach my $type (@{$types}) {
             if (defined($usertypes->{$type})) {              if (defined($usertypes->{$type})) {
                 $typecount ++;                  $typecount ++;
Line 768  sub print_quotas { Line 768  sub print_quotas {
     $typecount ++;      $typecount ++;
     $css_class = $typecount%2?' class="LC_odd_row"':'';      $css_class = $typecount%2?' class="LC_odd_row"':'';
     $datatable .= '<tr'.$css_class.'>'.      $datatable .= '<tr'.$css_class.'>'.
                   '<td>'.&mt($othertitle).'</td>'.                    '<td>'.$othertitle.'</td>'.
                   '<td class="LC_right_item"><span class="LC_nobreak">'.                    '<td class="LC_right_item"><span class="LC_nobreak">'.
                   '<input type="text" name="defaultquota" value="'.                    '<input type="text" name="defaultquota" value="'.
                   $defaultquota.'" size="5" /> Mb</span></td></tr>';                    $defaultquota.'" size="5" /> Mb</span></td></tr>';
Line 878  sub print_autoupdate { Line 878  sub print_autoupdate {
                             gen => 'Generation',                              gen => 'Generation',
                       );                        );
         my $numrows = 0;          my $numrows = 0;
         if (@{$types} > 0) {          if (ref($types) eq 'ARRAY') {
             $datatable =               if (@{$types} > 0) {
                 &usertype_update_row($settings,$usertypes,\%fieldtitles,                  $datatable = 
                                      \@fields,$types,\$numrows);                      &usertype_update_row($settings,$usertypes,\%fieldtitles,
                                            \@fields,$types,\$numrows);
               }
         }          }
         $datatable .=           $datatable .= 
             &usertype_update_row($settings,{'default' => $othertitle},              &usertype_update_row($settings,{'default' => $othertitle},
Line 932  sub print_directorysrch { Line 934  sub print_directorysrch {
     my ($othertitle,$usertypes,$types) = &sorted_inst_types($dom);      my ($othertitle,$usertypes,$types) = &sorted_inst_types($dom);
   
     my $numinrow = 4;      my $numinrow = 4;
       my $cansrchrow = 0;
     my $datatable='<tr class="LC_odd_row">'.      my $datatable='<tr class="LC_odd_row">'.
                   '<td colspan="2">'.&mt('Directory search available?').'</td>'.                    '<td colspan="2">'.&mt('Directory search available?').'</td>'.
                   '<td class="LC_right_item"><span class="LC_nobreak"><label>'.                    '<td class="LC_right_item"><span class="LC_nobreak"><label>'.
Line 947  sub print_directorysrch { Line 950  sub print_directorysrch {
                   '<label><input type="radio" name="dirsrch_localonly"'.                    '<label><input type="radio" name="dirsrch_localonly"'.
                   $localon.' value="1" />'.&mt('No').'</label></span></td>'.                    $localon.' value="1" />'.&mt('No').'</label></span></td>'.
                   '</tr>';                    '</tr>';
     $datatable .= &users_cansearch_row($settings,$types,$usertypes,$dom,      if (ref($usertypes) eq 'HASH') {
                                        $numinrow,$othertitle);          if (keys(%{$usertypes}) > 0) {
     $datatable .= '<tr>'.              $datatable .= &users_cansearch_row($settings,$types,$usertypes,$dom,
                   '<td>'.&mt('Supported search methods').                                                 $numinrow,$othertitle);
               $cansrchrow = 1;
           }
       }
       if ($cansrchrow) {
           $datatable .= '<tr>';
       } else {
           $datatable .= '<tr class="LC_odd_row">';
       }
       $datatable .= '<td>'.&mt('Supported search methods').
                   '</td><td class="LC_left_item" colspan="2"><table><tr>';                    '</td><td class="LC_left_item" colspan="2"><table><tr>';
     foreach my $title (@{$titleorder}) {      foreach my $title (@{$titleorder}) {
         if (defined($searchtitles->{$title})) {          if (defined($searchtitles->{$title})) {
Line 967  sub print_directorysrch { Line 979  sub print_directorysrch {
                           $searchtitles->{$title}.'</label></span></td>';                            $searchtitles->{$title}.'</label></span></td>';
         }          }
     }      }
     $datatable .= '</tr></table></td></tr><tr class="LC_odd_row">'.       $datatable .= '</tr></table></td></tr>';
                   '<td>'.&mt('Search latitude').'</td>'.      if ($cansrchrow) {
                   '<td class="LC_left_item"  colspan="2">'.          $datatable .= '<tr class="LC_odd_row">';
       } else {
           $datatable .= '<tr>';
       }
       $datatable .= '<td>'.&mt('Search latitude').'</td>'.   
                     '<td class="LC_left_item" colspan="2">'.
                   '<span class="LC_nobreak"><label>'.                    '<span class="LC_nobreak"><label>'.
                   '<input type="checkbox" name="searchtypes" '.                    '<input type="checkbox" name="searchtypes" '.
                   $exacton.' value="exact" />'.&mt('Exact match').                    $exacton.' value="exact" />'.&mt('Exact match').
Line 988  sub users_cansearch_row { Line 1005  sub users_cansearch_row {
     my $output =  '<tr class="LC_odd_row">'.      my $output =  '<tr class="LC_odd_row">'.
                   '<td>'.&mt('Users allowed to search').' ('.$dom.')'.                    '<td>'.&mt('Users allowed to search').' ('.$dom.')'.
                   '</td><td class="LC_left_item" colspan="2"><table>';                    '</td><td class="LC_left_item" colspan="2"><table>';
     for (my $i=0; $i<@{$types}; $i++) {      my $rem;
         if (defined($usertypes->{$types->[$i]})) {      if (ref($types) eq 'ARRAY') {
             my $rem = $i%($numinrow);          for (my $i=0; $i<@{$types}; $i++) {
             if ($rem == 0) {              if (defined($usertypes->{$types->[$i]})) {
                 if ($i > 0) {                  my $rem = $i%($numinrow);
                     $output .= '</tr>';                  if ($rem == 0) {
                       if ($i > 0) {
                           $output .= '</tr>';
                       }
                       $output .= '<tr>';
                 }                  }
                 $output .= '<tr>';                  my $check = ' ';
             }                  if (ref($settings->{'cansearch'}) eq 'ARRAY') {
             my $check = ' ';                      if (grep(/^\Q$types->[$i]\E$/,@{$settings->{'cansearch'}})) {
             if (ref($settings->{'cansearch'}) eq 'ARRAY') {                          $check = ' checked="checked" ';
                 if (grep(/^\Q$types->[$i]\E$/,@{$settings->{'cansearch'}})) {                      }
                     $check = ' checked="checked" ';  
                 }                  }
                   $output .= '<td class="LC_left_item">'.
                              '<span class="LC_nobreak"><label>'.
                              '<input type="checkbox" name="cansearch" '.
                              'value="'.$types->[$i].'"'.$check.'/>'.
                              $usertypes->{$types->[$i]}.'</label></span></td>';
             }              }
             $output .= '<td class="LC_left_item">'.  
                        '<span class="LC_nobreak"><label>'.  
                        '<input type="checkbox" name="cansearch" '.  
                        'value="'.$types->[$i].'"'.$check.'/>'.  
                        $usertypes->{$types->[$i]}.'</label></span></td>';  
         }          }
          
           $rem = @{$types}%($numinrow);
     }      }
   
     my $rem = @{$types}%($numinrow);  
     my $colsleft = $numinrow - $rem;      my $colsleft = $numinrow - $rem;
     if ($colsleft > 1) {      if ($colsleft > 1) {
         $output .= '<td colspan="'.$colsleft.'" class="LC_left_item">';          $output .= '<td colspan="'.$colsleft.'" class="LC_left_item">';
Line 1020  sub users_cansearch_row { Line 1040  sub users_cansearch_row {
     }      }
     my $defcheck = ' ';      my $defcheck = ' ';
     if (ref($settings->{'cansearch'}) eq 'ARRAY') {      if (ref($settings->{'cansearch'}) eq 'ARRAY') {
          if (grep(/^default$/,@{$settings->{'cansearch'}})) {          if (grep(/^default$/,@{$settings->{'cansearch'}})) {
               $defcheck = ' checked="checked" ';              $defcheck = ' checked="checked" ';
          }          }
     }      }
     $output .= '<span class="LC_nobreak"><label>'.      $output .= '<span class="LC_nobreak"><label>'.
                '<input type="checkbox" name="cansearch" '.                 '<input type="checkbox" name="cansearch" '.
Line 1035  sub users_cansearch_row { Line 1055  sub users_cansearch_row {
 sub sorted_inst_types {  sub sorted_inst_types {
     my ($dom) = @_;      my ($dom) = @_;
     my ($usertypes,$order) = &Apache::lonnet::retrieve_inst_usertypes($dom);      my ($usertypes,$order) = &Apache::lonnet::retrieve_inst_usertypes($dom);
     my $othertitle = "All users";      my $othertitle = &mt('All users');
     my @types;      my @types;
     if (ref($order) eq 'ARRAY') {      if (ref($order) eq 'ARRAY') {
         @types = @{$order};          @types = @{$order};
Line 1723  sub check_switchserver { Line 1743  sub check_switchserver {
 sub modify_quotas {  sub modify_quotas {
     my ($dom,%domconfig) = @_;      my ($dom,%domconfig) = @_;
     my ($resulttext,%changes);      my ($resulttext,%changes);
     my ($usertypes,$order) =       my ($othertitle,$usertypes,$types) = &sorted_inst_types($dom);
         &Apache::lonnet::retrieve_inst_usertypes($dom);  
     my %formhash;      my %formhash;
     foreach my $key (keys(%env)) {      foreach my $key (keys(%env)) {
         if ($key =~ /^form\.quota_(.+)$/) {          if ($key =~ /^form\.quota_(.+)$/) {
Line 1758  sub modify_quotas { Line 1777  sub modify_quotas {
     if ($putresult eq 'ok') {      if ($putresult eq 'ok') {
         if (keys(%changes) > 0) {          if (keys(%changes) > 0) {
             $resulttext = &mt('Changes made:').'<ul>';              $resulttext = &mt('Changes made:').'<ul>';
             foreach my $item (sort(keys(%changes))) {              foreach my $type (@{$types},'default') {
                 $resulttext .= '<li>'.&mt('[_1] set to [_2] Mb',$usertypes->{$item},$formhash{$item}).'</li>';                  if (defined($changes{$type})) { 
                       my $typetitle = $usertypes->{$type};
                       if ($type eq 'default') {
                           $typetitle = $othertitle;
                       }
                       $resulttext .= '<li>'.&mt('[_1] set to [_2] Mb',$typetitle,$formhash{$type}).'</li>';
                   }
             }              }
             $resulttext .= '</ul>';              $resulttext .= '</ul>';
         } else {          } else {
Line 1853  sub modify_autoupdate { Line 1878  sub modify_autoupdate {
                    run => 'Auto-update:',                     run => 'Auto-update:',
                    classlists => 'Updates to user information in classlists?'                     classlists => 'Updates to user information in classlists?'
                 );                  );
     my ($usertypes,$order) = &Apache::lonnet::retrieve_inst_usertypes($dom);      my ($othertitle,$usertypes,$types) = &sorted_inst_types($dom);
     my %fieldtitles = &Apache::lonlocal::texthash (      my %fieldtitles = &Apache::lonlocal::texthash (
                         id => 'Student/Employee ID',                          id => 'Student/Employee ID',
                         permanentemail => 'E-mail address',                          permanentemail => 'E-mail address',
Line 1864  sub modify_autoupdate { Line 1889  sub modify_autoupdate {
                       );                        );
     my $othertitle = &mt('All users');      my $othertitle = &mt('All users');
     if (keys(%{$usertypes}) >  0) {      if (keys(%{$usertypes}) >  0) {
         $othertitle = "Other users";          $othertitle = &mt('Other users');
     }      }
     foreach my $key (keys(%env)) {      foreach my $key (keys(%env)) {
         if ($key =~ /^form\.updateable_(.+)_([^_]+)$/) {          if ($key =~ /^form\.updateable_(.+)_([^_]+)$/) {
Line 1886  sub modify_autoupdate { Line 1911  sub modify_autoupdate {
             }              }
         } elsif ($key eq 'fields') {          } elsif ($key eq 'fields') {
             if (ref($currautoupdate{$key}) eq 'HASH') {              if (ref($currautoupdate{$key}) eq 'HASH') {
                 foreach my $item (keys(%{$currautoupdate{$key}})) {                  foreach my $item (@{$types},'default') {
                     if (ref($currautoupdate{$key}{$item}) eq 'ARRAY') {                      if (ref($currautoupdate{$key}{$item}) eq 'ARRAY') {
                         my $change = 0;                          my $change = 0;
                         foreach my $type (@{$currautoupdate{$key}{$item}}) {                          foreach my $type (@{$currautoupdate{$key}{$item}}) {
                             if (!exists($fields{$item})) {                              if (!exists($fields{$item})) {
                                 $change = 1;                                  $change = 1;
                             } elsif (ref($fields{$item}) eq 'ARRAY') {                              } elsif (ref($fields{$item}) eq 'ARRAY') {
                                 if (!grep/^\Q$type\E$/,@{$fields{$item}}) {                                  if (!grep(/^\Q$type\E$/,@{$fields{$item}})) {
                                     $change = 1;                                      $change = 1;
                                 }                                  }
                             }                              }
Line 1901  sub modify_autoupdate { Line 1926  sub modify_autoupdate {
                         if ($change) {                          if ($change) {
                             push(@{$changes{$key}},$item);                              push(@{$changes{$key}},$item);
                         }                          }
                     }                      } 
                 }                  }
             }              }
         }          }
     }      }
     foreach my $key (keys(%fields)) {      foreach my $item (@{$types},'default') {
         if (ref($currautoupdate{'fields'}) eq 'HASH') {          if (defined($fields{$item})) {
             if (!exists($currautoupdate{'fields'}{$key})) {              if (ref($currautoupdate{'fields'}) eq 'HASH') {
                 push(@{$changes{'fields'}},$key);                  if (!exists($currautoupdate{'fields'}{$item})) {
                       push(@{$changes{'fields'}},$item);
                   }
               } else {
                   push(@{$changes{'fields'}},$item);
             }              }
         } else {  
             push(@{$changes{'fields'}},$key);  
         }          }
     }      }
     my $putresult = &Apache::lonnet::put_dom('configuration',\%updatehash,      my $putresult = &Apache::lonnet::put_dom('configuration',\%updatehash,
Line 1934  sub modify_autoupdate { Line 1961  sub modify_autoupdate {
                             $newvaluestr = &mt('none');                              $newvaluestr = &mt('none');
                         }                          }
                         if ($item eq 'default') {                          if ($item eq 'default') {
                             $resulttext .= '<li>'.&mt("Updates for $othertitle set to: [_1]",$newvaluestr).'</li>';                              $resulttext .= '<li>'.&mt("Updates for '[_1]' set to: '[_2]'",$othertitle,$newvaluestr).'</li>';
                         } else {                          } else {
                             $resulttext .= '<li>'.&mt("Updates for [_1] set to: [_2]",$usertypes->{$item},$newvaluestr).'</li>';                              $resulttext .= '<li>'.&mt("Updates for '[_1]' set to: '[_2]'",$usertypes->{$item},$newvaluestr).'</li>';
                         }                          }
                     }                      }
                 } else {                  } else {
Line 1970  sub modify_directorysrch { Line 1997  sub modify_directorysrch {
         }          }
     }      }
     my %title = ( available => 'Directory search available',      my %title = ( available => 'Directory search available',
                   cansearch => 'Users permitted to search',  
                   localonly => 'Other domains can search',                    localonly => 'Other domains can search',
                   searchby => 'Search types',                    searchby => 'Search types',
                   searchtypes => 'Search latitude');                    searchtypes => 'Search latitude');
Line 1981  sub modify_directorysrch { Line 2007  sub modify_directorysrch {
     my @cansearch = &Apache::loncommon::get_env_multiple('form.cansearch');      my @cansearch = &Apache::loncommon::get_env_multiple('form.cansearch');
     my @searchby = &Apache::loncommon::get_env_multiple('form.searchby');      my @searchby = &Apache::loncommon::get_env_multiple('form.searchby');
   
     if (ref($currdirsrch{'cansearch'}) eq 'ARRAY') {      my ($othertitle,$usertypes,$types) = &sorted_inst_types($dom);
         foreach my $type (@{$currdirsrch{'cansearch'}}) {      if (keys(%{$usertypes}) == 0) {
             if (!grep(/^\Q$type\E$/,@cansearch)) {          @cansearch = ('default');
                 push(@{$changes{'cansearch'}},$type);      } else {
           if (ref($currdirsrch{'cansearch'}) eq 'ARRAY') {
               foreach my $type (@{$currdirsrch{'cansearch'}}) {
                   if (!grep(/^\Q$type\E$/,@cansearch)) {
                       push(@{$changes{'cansearch'}},$type);
                   }
             }              }
         }              foreach my $type (@cansearch) {
         foreach my $type (@cansearch) {                  if (!grep(/^\Q$type\E$/,@{$currdirsrch{'cansearch'}})) {
             if (!grep(/^\Q$type\E$/,@{$currdirsrch{'cansearch'}})) {                      push(@{$changes{'cansearch'}},$type);
                 push(@{$changes{'cansearch'}},$type);                  }
             }              }
           } else {
               push(@{$changes{'cansearch'}},@cansearch);
         }          }
     } else {  
         push(@{$changes{'cansearch'}},@cansearch);  
     }      }
   
     if (ref($currdirsrch{'searchby'}) eq 'ARRAY') {      if (ref($currdirsrch{'searchby'}) eq 'ARRAY') {
Line 2076  sub modify_directorysrch { Line 2107  sub modify_directorysrch {
             }              }
   
             if (ref($changes{'cansearch'}) eq 'ARRAY') {              if (ref($changes{'cansearch'}) eq 'ARRAY') {
                 my ($othertitle,$usertypes,$types) = &sorted_inst_types($dom);  
                 my $chgtext;                  my $chgtext;
                 foreach my $type (@cansearch) {                  if (ref($usertypes) eq 'HASH') {
                     if (defined($usertypes->{$type})) {                      if (keys(%{$usertypes}) > 0) {
                         $chgtext .= $usertypes->{$type}.'; ';                          foreach my $type (@{$types}) {
                               if (grep(/^\Q$type\E$/,@cansearch)) {
                                   $chgtext .= $usertypes->{$type}.'; ';
                               }
                           }
                           if (grep(/^default$/,@cansearch)) {
                               $chgtext .= $othertitle;
                           } else {
                               $chgtext =~ s/\; $//;
                           }
                           $resulttext .= '<li>'.&mt("Users from domain '<span class=\"LC_cusr_emph\">[_1]</span>' permitted to search the institutional directory set to: [_2]",$dom,$chgtext).'</li>';
                     }                      }
                 }                  }
                 if (grep(/^default$/,@cansearch)) {  
                     $chgtext .= $othertitle;  
                 } else {  
                     $chgtext =~ s/\; $//;  
                 }  
                 $resulttext .= '<li>'.&mt("$title{'cansearch'} ([_1]) set to: [_2]",$dom,$chgtext).'</li>';  
             }              }
             if (ref($changes{'searchby'}) eq 'ARRAY') {              if (ref($changes{'searchby'}) eq 'ARRAY') {
                 my ($searchtitles,$titleorder) = &sorted_searchtitles();                  my ($searchtitles,$titleorder) = &sorted_searchtitles();

Removed from v.1.25  
changed lines
  Added in v.1.26


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