Diff for /loncom/interface/domainprefs.pm between versions 1.135 and 1.139

version 1.135, 2010/05/21 15:54:44 version 1.139, 2010/08/24 13:37:50
Line 203  sub handler { Line 203  sub handler {
                 'directorysrch','usercreation','usermodification',                  'directorysrch','usercreation','usermodification',
                 'contacts','defaults','scantron','coursecategories',                  'contacts','defaults','scantron','coursecategories',
                 'serverstatuses','requestcourses','helpsettings',                  'serverstatuses','requestcourses','helpsettings',
                 'coursedefaults'],$dom);                  'coursedefaults','usersessions'],$dom);
     my @prefs_order = ('rolecolors','login','defaults','quotas','autoenroll',      my @prefs_order = ('rolecolors','login','defaults','quotas','autoenroll',
                        'autoupdate','autocreate','directorysrch','contacts',                         'autoupdate','autocreate','directorysrch','contacts',
                        'usercreation','usermodification','scantron',                         'usercreation','usermodification','scantron',
                        'requestcourses','coursecategories','serverstatuses','helpsettings',                         'requestcourses','coursecategories','serverstatuses','helpsettings',
                        'coursedefaults');                         'coursedefaults','usersessions');
     my %prefs = (      my %prefs = (
         'rolecolors' =>          'rolecolors' =>
                    { text => 'Default color schemes',                     { text => 'Default color schemes',
Line 340  sub handler { Line 340  sub handler {
         'coursedefaults' =>           'coursedefaults' => 
                  {text => 'Course/Community defaults',                   {text => 'Course/Community defaults',
                   help => 'Domain_Configuration_Course_Defaults',                    help => 'Domain_Configuration_Course_Defaults',
                   header => [{col1 => 'Setting',                    header => [{col1 => 'Defaults which can be overridden in each course by a CC',
                               col2 => 'Value',}],                                col2 => 'Value',},
                                {col1 => 'Defaults which can be overridden for each course by a DC',
                                 col2 => 'Value',},],
                  },                   },
         'privacy' =>           'privacy' => 
                  {text   => 'User Privacy',                   {text   => 'User Privacy',
Line 349  sub handler { Line 351  sub handler {
                   header => [{col1 => 'Setting',                    header => [{col1 => 'Setting',
                               col2 => 'Value',}],                                col2 => 'Value',}],
                  },                   },
            'usersessions' =>
                    {text  => 'User session hosting',
                     help  => 'Domain_Configuration_User_Sessions',
                     header => [{col1 => 'Hosting of users from other domains',
                                 col2 => 'Rules'},
                                {col1 => "Hosting domain's own users elsewhere",
                                 col2 => 'Rules'}],
                    },
     );      );
     my %servers = &dom_servers($dom);      my %servers = &dom_servers($dom);
     if (keys(%servers) > 1) {      if (keys(%servers) > 1) {
Line 451  sub process_changes { Line 461  sub process_changes {
         $output = &modify_helpsettings($r,$dom,$confname,%domconfig);          $output = &modify_helpsettings($r,$dom,$confname,%domconfig);
     } elsif ($action eq 'coursedefaults') {      } elsif ($action eq 'coursedefaults') {
         $output = &modify_coursedefaults($dom,%domconfig);          $output = &modify_coursedefaults($dom,%domconfig);
       } elsif ($action eq 'usersessions') {
           $output = &modify_usersessions($dom,%domconfig);
     }      }
     return $output;      return $output;
 }  }
Line 503  sub print_config_box { Line 515  sub print_config_box {
             $output .= &print_quotas($dom,$settings,\$rowtotal,$action);              $output .= &print_quotas($dom,$settings,\$rowtotal,$action);
         } elsif ($action eq 'helpsettings') {          } elsif ($action eq 'helpsettings') {
             $output .= &print_helpsettings('top',$dom,$confname,$settings,\$rowtotal);              $output .= &print_helpsettings('top',$dom,$confname,$settings,\$rowtotal);
           } elsif ($action eq 'usersessions') {
               $output .= &print_usersessions('top',$dom,$settings,\$rowtotal); 
         } elsif ($action eq 'rolecolors') {          } elsif ($action eq 'rolecolors') {
             $output .= &print_rolecolors($phase,'student',$dom,$confname,$settings,\$rowtotal);              $output .= &print_rolecolors($phase,'student',$dom,$confname,$settings,\$rowtotal);
           } elsif ($action eq 'coursedefaults') {
               $output .= &print_coursedefaults('top',$dom,$settings,\$rowtotal);
         }          }
         $output .= '          $output .= '
            </table>             </table>
Line 566  sub print_config_box { Line 582  sub print_config_box {
             $output .= &print_courserequestmail($dom,$settings,\$rowtotal);              $output .= &print_courserequestmail($dom,$settings,\$rowtotal);
         } elsif ($action eq 'helpsettings') {          } elsif ($action eq 'helpsettings') {
             $output .= &print_helpsettings('bottom',$dom,$confname,$settings,\$rowtotal);              $output .= &print_helpsettings('bottom',$dom,$confname,$settings,\$rowtotal);
           } elsif ($action eq 'usersessions') {
               $output .= &print_usersessions('bottom',$dom,$settings,\$rowtotal);
           } elsif ($action eq 'coursedefaults') {
               $output .= &print_coursedefaults('bottom',$dom,$settings,\$rowtotal);
         } elsif ($action eq 'rolecolors') {          } elsif ($action eq 'rolecolors') {
             $output .= &print_rolecolors($phase,'coordinator',$dom,$confname,$settings,\$rowtotal).'              $output .= &print_rolecolors($phase,'coordinator',$dom,$confname,$settings,\$rowtotal).'
            </table>             </table>
Line 654  sub print_config_box { Line 674  sub print_config_box {
             $output .= &print_serverstatuses($dom,$settings,\$rowtotal);              $output .= &print_serverstatuses($dom,$settings,\$rowtotal);
         } elsif ($action eq 'helpsettings') {          } elsif ($action eq 'helpsettings') {
             $output .= &print_helpsettings('top',$dom,$confname,$settings,\$rowtotal);              $output .= &print_helpsettings('top',$dom,$confname,$settings,\$rowtotal);
     } elsif ($action eq 'coursedefaults') {  
             $output .= &print_coursedefaults($dom,$settings,\$rowtotal);  
         }          }
     }      }
     $output .= '      $output .= '
Line 2077  sub print_contacts { Line 2095  sub print_contacts {
                       '<input type="text" name="'.$type.'_others" '.                        '<input type="text" name="'.$type.'_others" '.
                       'value="'.$otheremails{$type}.'"  />';                        'value="'.$otheremails{$type}.'"  />';
         if ($type eq 'helpdeskmail') {          if ($type eq 'helpdeskmail') {
             $datatable .= '<br />'.&mt('Bcc').':'.('&nbsp;'x6).              $datatable .= '<br />'.&mt('Bcc:').('&nbsp;'x6).
                           '<input type="text" name="'.$type.'_bcc" '.                            '<input type="text" name="'.$type.'_bcc" '.
                           'value="'.$bccemails{$type}.'"  />';                            'value="'.$bccemails{$type}.'"  />';
         }          }
Line 2226  sub radiobutton_prefs { Line 2244  sub radiobutton_prefs {
 }  }
   
 sub print_coursedefaults {  sub print_coursedefaults {
     my ($dom,$settings,$rowtotal) = @_;      my ($position,$dom,$settings,$rowtotal) = @_;
     my ($css_class,$datatable);      my ($css_class,$datatable);
     my $itemcount = 1;      my $itemcount = 1;
     my (%checkedon,%checkedoff,%choices,%defaultchecked,@toggles);      if ($position eq 'top') {
     %choices =          my (%checkedon,%checkedoff,%choices,%defaultchecked,@toggles);
         &Apache::lonlocal::texthash (          %choices =
             canuse_pdfforms => 'Course/Community users can create/upload PDF forms',              &Apache::lonlocal::texthash (
     );                  canuse_pdfforms => 'Course/Community users can create/upload PDF forms',
     %defaultchecked = ('canuse_pdfforms' => 'off');          );
     @toggles = ('canuse_pdfforms',);          %defaultchecked = ('canuse_pdfforms' => 'off');
     ($datatable,$itemcount) = &radiobutton_prefs($settings,\@toggles,\%defaultchecked,          @toggles = ('canuse_pdfforms',);
           ($datatable,$itemcount) = &radiobutton_prefs($settings,\@toggles,\%defaultchecked,
                                                  \%choices,$itemcount);                                                   \%choices,$itemcount);
           $$rowtotal += $itemcount;
       } else {
           $css_class = $itemcount%2 ? ' class="LC_odd_row"' : '';
           my %choices =
               &Apache::lonlocal::texthash (
                   anonsurvey_threshold => 'Responder count needed before showing submissions for anonymous surveys',
           );
           my $currdefresponder;
           if (ref($settings) eq 'HASH') {
               $currdefresponder = $settings->{'anonsurvey_threshold'};
           }
           if (!$currdefresponder) {
               $currdefresponder = 10;
           } elsif ($currdefresponder < 1) {
               $currdefresponder = 1;
           }
           $datatable .=
                  '<tr'.$css_class.'><td><span class="LC_nobreak">'.$choices{'anonsurvey_threshold'}.
                   '</span></td>'.
                   '<td class="LC_right_item"><span class="LC_nobreak">'.
                   '<input type="text" name="anonsurvey_threshold"'.
                   ' value="'.$currdefresponder.'" size="5" /></span>'.
                   '</td></tr>';
       }
       return $datatable;
   }
   
   sub print_usersessions {
       my ($position,$dom,$settings,$rowtotal) = @_;
       my ($css_class,$datatable,%checked,%choices);
       my %lt = &usersession_titles();
       my $itemcount = 1;
       my $numinrow = 6;
       my $prefix;
       my @types;
       if ($position eq 'top') {
           $prefix = 'hosted';
           @types = ('excludedomain','includedomain');
       } else {
           $prefix = 'remote';
           @types = ('version','excludedomain','includedomain');
       }
       my (%current,%checkedon,%checkedoff);
       my @lcversions = &Apache::lonnet::all_loncaparevs();
       my (%by_ip,%by_location,@intdoms);
       &build_location_hashes(\@intdoms,\%by_ip,\%by_location);
       my @locations = sort(keys(%by_location));
       foreach my $type (@types) {
           $checkedon{$type} = '';
           $checkedoff{$type} = ' checked="checked"';
       }
       if (ref($settings) eq 'HASH') {
           if (ref($settings->{$prefix}) eq 'HASH') {
               foreach my $key (keys(%{$settings->{$prefix}})) {
                   $current{$key} = $settings->{$prefix}{$key};
                   if ($key eq 'version') {
                       if ($current{$key} ne '') {
                           $checkedon{$key} = ' checked="checked"';
                           $checkedoff{$key} = '';
                       }
                   } elsif (ref($current{$key}) eq 'ARRAY') {
                       $checkedon{$key} = ' checked="checked"';
                       $checkedoff{$key} = '';
                   }
               }
           }
       }
       foreach my $type (@types) {
           $css_class = $itemcount%2 ? ' class="LC_odd_row"' : '';
           $datatable .= '<tr'.$css_class.'>
                          <td><span class="LC_nobreak">'.$lt{$type}.'</span><br />
                              <span class="LC_nobreak">&nbsp;
                              <label><input type="radio" name="'.$prefix.'_'.$type.'_inuse" '.$checkedoff{$type}.' value="0" />'.&mt('Not in use').'</label>&nbsp;
                              <label><input type="radio" name="'.$prefix.'_'.$type.'_inuse" '.$checkedon{$type}.' value="1" />'.&mt('In use').'</label></span></td><td>';
           if ($type eq 'version') {
               my $selector = '<select name="'.$prefix.'_version">';
               foreach my $version (@lcversions) {
                   my $selected = '';
                   if ($current{'version'} eq $version) {
                       $selected = ' selected="selected"';
                   }
                   $selector .= ' <option value="'.$version.'"'.
                                $selected.'>'.$version.'</option>';
               }
               $selector .= '</select> ';
               $datatable .= &mt('remote server must be version: [_1] or later',$selector);
           } else {
               $datatable.= '<div><input type="button" value="'.&mt('check all').'" '.
                            'onclick="javascript:checkAll(document.display.'.$prefix.'_'.$type.')"'.
                            ' />'.('&nbsp;'x2).
                            '<input type="button" value="'.&mt('uncheck all').'" '.
                            'onclick="javascript:uncheckAll(document.display.'.$prefix.'_'.$type.')" />'.
                            "\n".
                            '</div><div><table>';
               my $rem;
               for (my $i=0; $i<@locations; $i++) {
                   my ($showloc,$value,$checkedtype);
                   if (ref($by_location{$locations[$i]}) eq 'ARRAY') {
                       my $ip = $by_location{$locations[$i]}->[0];
                       if (ref($by_ip{$ip}) eq 'ARRAY') {
                           $value = join(':',@{$by_ip{$ip}});
                           $showloc = join(', ',@{$by_ip{$ip}});
                           if (ref($current{$type}) eq 'ARRAY') {
                               foreach my $loc (@{$by_ip{$ip}}) {  
                                   if (grep(/^\Q$loc\E$/,@{$current{$type}})) {
                                       $checkedtype = ' checked="checked"';
                                       last;
                                   }
                               }
                           }
                       }
                   }
                   $rem = $i%($numinrow);
                   if ($rem == 0) {
                       if ($i > 0) {
                           $datatable .= '</tr>';
                       }
                       $datatable .= '<tr>';
                   }
                   $datatable .= '<td class="LC_left_item">'.
                                 '<span class="LC_nobreak"><label>'.
                                 '<input type="checkbox" name="'.$prefix.'_'.$type.
                                 '" value="'.$value.'"'.$checkedtype.' />'.$showloc.
                                 '</label></span></td>';
               }
               $rem = @locations%($numinrow);
               my $colsleft = $numinrow - $rem;
               if ($colsleft > 1 ) {
                   $datatable .= '<td colspan="'.$colsleft.'" class="LC_left_item">'.
                                 '&nbsp;</td>';
               } elsif ($colsleft == 1) {
                   $datatable .= '<td class="LC_left_item">&nbsp;</td>';
               }
               $datatable .= '</tr></table>';
           }
           $datatable .= '</td></tr>';
           $itemcount ++;
       }
     $$rowtotal += $itemcount;      $$rowtotal += $itemcount;
     return $datatable;      return $datatable;
 }  }
   
   sub build_location_hashes {
       my ($intdoms,$by_ip,$by_location) = @_;
       return unless((ref($intdoms) eq 'ARRAY') && (ref($by_ip) eq 'HASH') &&
                     (ref($by_location) eq 'HASH')); 
       my %iphost = &Apache::lonnet::get_iphost();
       my $primary_id = &Apache::lonnet::domain($env{'request.role.domain'},'primary');
       my $primary_ip = &Apache::lonnet::get_host_ip($primary_id);
       if (ref($iphost{$primary_ip}) eq 'ARRAY') {
           foreach my $id (@{$iphost{$primary_ip}}) {
               my $intdom = &Apache::lonnet::internet_dom($id);
               unless(grep(/^\Q$intdom\E$/,@{$intdoms})) {
                   push(@{$intdoms},$intdom);
               }
           }
       }
       foreach my $ip (keys(%iphost)) {
           if (ref($iphost{$ip}) eq 'ARRAY') {
               foreach my $id (@{$iphost{$ip}}) {
                   my $location = &Apache::lonnet::internet_dom($id);
                   if ($location) {
                       next if (grep(/^\Q$location\E$/,@{$intdoms}));
                       if (ref($by_ip->{$ip}) eq 'ARRAY') {
                           unless(grep(/^\Q$location\E$/,@{$by_ip->{$ip}})) {
                               push(@{$by_ip->{$ip}},$location);
                           }
                       } else {
                           $by_ip->{$ip} = [$location];
                       }
                   }
               }
           }
       }
       foreach my $ip (sort(keys(%{$by_ip}))) {
           if (ref($by_ip->{$ip}) eq 'ARRAY') {
               @{$by_ip->{$ip}} = sort(@{$by_ip->{$ip}});
               my $first = $by_ip->{$ip}->[0];
               if (ref($by_location->{$first}) eq 'ARRAY') {
                   unless (grep(/^\Q$ip\E$/,@{$by_location->{$first}})) {
                       push(@{$by_location->{$first}},$ip);
                   }
               } else {
                   $by_location->{$first} = [$ip];
               }
           }
       }
       return;
   }
   
 sub contact_titles {  sub contact_titles {
     my %titles = &Apache::lonlocal::texthash (      my %titles = &Apache::lonlocal::texthash (
                    'supportemail' => 'Support E-mail address',                     'supportemail' => 'Support E-mail address',
Line 6487  sub modify_coursedefaults { Line 6692  sub modify_coursedefaults {
             }              }
             $defaultshash{'coursedefaults'}{$item} = $env{'form.'.$item};              $defaultshash{'coursedefaults'}{$item} = $env{'form.'.$item};
         }          }
           my $currdefresponder = $domconfig{'coursedefaults'}{'anonsurvey_threshold'};
           my $newdefresponder = $env{'form.anonsurvey_threshold'};
           $newdefresponder =~ s/\D//g;
           if ($newdefresponder eq '' || $newdefresponder < 1) {
               $newdefresponder = 1;
           }
           $defaultshash{'coursedefaults'}{'anonsurvey_threshold'} = $newdefresponder;
           if ($currdefresponder ne $newdefresponder) {
               unless ($currdefresponder eq '' && $newdefresponder == 10) {
                   $changes{'anonsurvey_threshold'} = 1;
               }
           }
     }      }
     my $putresult = &Apache::lonnet::put_dom('configuration',\%defaultshash,      my $putresult = &Apache::lonnet::put_dom('configuration',\%defaultshash,
                                              $dom);                                               $dom);
Line 6506  sub modify_coursedefaults { Line 6723  sub modify_coursedefaults {
                     } else {                      } else {
                         $resulttext .= '<li>'.&mt('Course/Community users can create/upload PDF forms set to "off"').'</li>';                          $resulttext .= '<li>'.&mt('Course/Community users can create/upload PDF forms set to "off"').'</li>';
                     }                      }
                 }                  } elsif ($item eq 'anonsurvey_threshold') {
                           $resulttext .= '<li>'.&mt('Responder count required for display of anonymous survey submissions set to [_1].',$defaultshash{'coursedefaults'}{'anonsurvey_threshold'}).'</li>';
                   } 
             }              }
             $resulttext .= '</ul>';              $resulttext .= '</ul>';
         } else {          } else {
Line 6519  sub modify_coursedefaults { Line 6738  sub modify_coursedefaults {
     return $resulttext;      return $resulttext;
 }  }
   
   sub modify_usersessions {
       my ($dom,%domconfig) = @_;
       my @types = ('version','excludedomain','includedomain');
       my @prefixes = ('remote','hosted');
       my @lcversions = &Apache::lonnet::all_loncaparevs();
       my (%by_ip,%by_location,@intdoms);
       &build_location_hashes(\@intdoms,\%by_ip,\%by_location);
       my @locations = sort(keys(%by_location));
       my (%defaultshash,%changes);
       foreach my $prefix (@prefixes) {
           $defaultshash{'usersessions'}{$prefix} = {};
       }
       my %domdefaults = &Apache::lonnet::get_domain_defaults($dom);
       my $resulttext;
       my %iphost = &Apache::lonnet::get_iphost();
       foreach my $prefix (@prefixes) {
           foreach my $type (@types) {
               my $inuse = $env{'form.'.$prefix.'_'.$type.'_inuse'};
               if ($type eq 'version') {
                   my $value = $env{'form.'.$prefix.'_'.$type};
                   my $okvalue;
                   if ($value ne '') {
                       if (grep(/^\Q$value\E$/,@lcversions)) {
                           $okvalue = $value;
                       }
                   }
                   if (ref($domconfig{'usersessions'}) eq 'HASH') {
                       if (ref($domconfig{'usersessions'}{$prefix}) eq 'HASH') {
                           if ($domconfig{'usersessions'}{$prefix}{$type} ne '') {
                               if ($inuse == 0) {
                                   $changes{$prefix}{$type} = 1;
                               } else {
                                   if ($okvalue ne $domconfig{'usersessions'}{$prefix}{$type}) {
                                       $changes{$prefix}{$type} = 1;
                                   }
                                   if ($okvalue ne '') {
                                       $defaultshash{'usersessions'}{$prefix}{$type} = $okvalue;
                                   } 
                               }
                           } else {
                               if (($inuse == 1) && ($okvalue ne '')) {
                                   $defaultshash{'usersessions'}{$prefix}{$type} = $okvalue;
                                   $changes{$prefix}{$type} = 1;
                               }
                           }
                       } else {
                           if (($inuse == 1) && ($okvalue ne '')) {
                               $defaultshash{'usersessions'}{$prefix}{$type} = $okvalue;
                               $changes{$prefix}{$type} = 1;
                           }
                       }
                   } else {
                       if (($inuse == 1) && ($okvalue ne '')) {
                           $defaultshash{'usersessions'}{$prefix}{$type} = $okvalue;
                           $changes{$prefix}{$type} = 1;
                       }
                   }
               } else {
                   my @vals = &Apache::loncommon::get_env_multiple('form.'.$prefix.'_'.$type);
                   my @okvals;
                   foreach my $val (@vals) {
                       if ($val =~ /:/) {
                           my @items = split(/:/,$val);
                           foreach my $item (@items) {
                               if (ref($by_location{$item}) eq 'ARRAY') {
                                   push(@okvals,$item);
                               }
                           }
                       } else {
                           if (ref($by_location{$val}) eq 'ARRAY') {
                               push(@okvals,$val);
                           }
                       }
                   }
                   @okvals = sort(@okvals);
                   if (ref($domconfig{'usersessions'}) eq 'HASH') {
                       if (ref($domconfig{'usersessions'}{$prefix}) eq 'HASH') {
                           if (ref($domconfig{'usersessions'}{$prefix}{$type}) eq 'ARRAY') {
                               if ($inuse == 0) {
                                   $changes{$prefix}{$type} = 1; 
                               } else {
                                   $defaultshash{'usersessions'}{$prefix}{$type} = \@okvals;
                                   my @changed = &Apache::loncommon::compare_arrays($domconfig{'usersessions'}{$prefix}{$type},$defaultshash{'usersessions'}{$prefix}{$type});
                                   if (@changed > 0) {
                                       $changes{$prefix}{$type} = 1;
                                   }
                               }
                           } else {
                               if ($inuse == 1) {
                                   $defaultshash{'usersessions'}{$prefix}{$type} = \@okvals;
                                   $changes{$prefix}{$type} = 1;
                               }
                           } 
                       } else {
                           if ($inuse == 1) {
                               $defaultshash{'usersessions'}{$prefix}{$type} = \@okvals;
                               $changes{$prefix}{$type} = 1;
                           }
                       }
                   } else {
                       if ($inuse == 1) {
                           $defaultshash{'usersessions'}{$prefix}{$type} = \@okvals;
                           $changes{$prefix}{$type} = 1;
                       }
                   }
               }
           }
       }
       if (keys(%changes) > 0) {
           my $putresult = &Apache::lonnet::put_dom('configuration',\%defaultshash,
                                                    $dom);
           if ($putresult eq 'ok') {
               if (ref($defaultshash{'usersessions'}) eq 'HASH') {
                   if (ref($defaultshash{'usersessions'}{'remote'}) eq 'HASH') {
                       $domdefaults{'remotesessions'} = $defaultshash{'usersessions'}{'remote'};
                   }
                   if (ref($defaultshash{'usersessions'}{'hosted'}) eq 'HASH') {
                       $domdefaults{'hostedsessions'} = $defaultshash{'usersessions'}{'hosted'};
                   }
               }
               my $cachetime = 24*60*60;
               &Apache::lonnet::do_cache_new('domdefaults',$dom,\%domdefaults,$cachetime);
               my %lt = &usersession_titles();
               $resulttext = &mt('Changes made:').'<ul>';
               foreach my $prefix (@prefixes) {
                   if (ref($changes{$prefix}) eq 'HASH') {
                       $resulttext .= '<li>'.$lt{$prefix}.'<ul>';
                       foreach my $type (@types) {
                           if (defined($changes{$prefix}{$type})) {
                               my $newvalue;
                               if (ref($defaultshash{'usersessions'}) eq 'HASH') {
                                   if (ref($defaultshash{'usersessions'}{$prefix})) {
                                       if ($type eq 'version') {
                                           $newvalue = $defaultshash{'usersessions'}{$prefix}{$type};
                                       } elsif (ref($defaultshash{'usersessions'}{$prefix}{$type}) eq 'ARRAY') {
                                           if (@{$defaultshash{'usersessions'}{$prefix}{$type}} > 0) {
                                               $newvalue = join(', ',@{$defaultshash{'usersessions'}{$prefix}{$type}});
                                           }
                                       }
                                   }
                               }
                               if ($newvalue eq '') {
                                   if ($type eq 'version') {
                                       $resulttext .= '<li>'.&mt('[_1] set to: off',$lt{$type}).'</li>';
                                   } else {
                                       $resulttext .= '<li>'.&mt('[_1] set to: none',$lt{$type}).'</li>';
                                   }
                               } else {
                                   if ($type eq 'version') {
                                       $newvalue .= ' '.&mt('(or later)'); 
                                   } 
                                   $resulttext .= '<li>'.&mt('[_1] set to: [_2].',$lt{$type},$newvalue).'</li>'; 
                               }
                           }
                       }
                       $resulttext .= '</ul>';
                   }
               }
               $resulttext .= '</ul>';
           } else {
               $resulttext = '<span class="LC_error">'.
                             &mt('An error occurred: [_1]',$putresult).'</span>';
           }
       } else {
           $resulttext =  &mt('No changes made to settings for user session hosting.');
       }
       return $resulttext;
   }
   
 sub recurse_check {  sub recurse_check {
     my ($chkcats,$categories,$depth,$name) = @_;      my ($chkcats,$categories,$depth,$name) = @_;
     if (ref($chkcats->[$depth]{$name}) eq 'ARRAY') {      if (ref($chkcats->[$depth]{$name}) eq 'ARRAY') {
Line 6662  sub active_dc_picker { Line 7050  sub active_dc_picker {
     return ($numdcs,$datatable);      return ($numdcs,$datatable);
 }  }
   
   sub usersession_titles {
       return &Apache::lonlocal::texthash(
                  hosted => 'Hosting of sessions for users from other domains on servers in this domain',
   
                  remote => 'Hosting of sessions for users in this domain on servers in other domains',
                  version => 'LON-CAPA version requirement',
                  excludedomain => 'Allow all, but exclude specific domains',
                  includedomain => 'Deny all, but include specific domains',
              );
   }
   
 1;  1;

Removed from v.1.135  
changed lines
  Added in v.1.139


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