Diff for /loncom/interface/domainprefs.pm between versions 1.102.2.11 and 1.130

version 1.102.2.11, 2010/03/11 02:51:44 version 1.130, 2010/03/11 21:18:24
Line 202  sub handler { Line 202  sub handler {
                 'quotas','autoenroll','autoupdate','autocreate',                  'quotas','autoenroll','autoupdate','autocreate',
                 'directorysrch','usercreation','usermodification',                  'directorysrch','usercreation','usermodification',
                 'contacts','defaults','scantron','coursecategories',                  'contacts','defaults','scantron','coursecategories',
                 'serverstatuses','requestcourses','coursedefaults'],$dom);                  'serverstatuses','requestcourses','helpsettings',
                   'coursedefaults'],$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',                         'requestcourses','coursecategories','serverstatuses','helpsettings',
                        'coursedefaults');                         'coursedefaults');
     my %prefs = (      my %prefs = (
         'rolecolors' =>          'rolecolors' =>
Line 221  sub handler { Line 222  sub handler {
                                 {col1 => 'Administrator Settings',                                  {col1 => 'Administrator Settings',
                                  col2 => '',}],                                   col2 => '',}],
                     },                      },
         'login' =>            'login' =>
                     { text => 'Log-in page options',                      { text => 'Log-in page options',
                       help => 'Domain_Configuration_Login_Page',                        help => 'Domain_Configuration_Login_Page',
                       header => [{col1 => 'Item',                        header => [{col1 => 'Item',
                                   col2 => '',}],                                    col2 => '',}],
                     },                      },
   
         'defaults' =>           'defaults' => 
                     { text => 'Default authentication/language/timezone',                      { text => 'Default authentication/language/timezone',
                       help => 'Domain_Configuration_LangTZAuth',                        help => 'Domain_Configuration_LangTZAuth',
Line 255  sub handler { Line 257  sub handler {
                                  col2 => 'Updataeable user data'}],                                   col2 => 'Updataeable user data'}],
                   },                    },
         'autocreate' =>           'autocreate' => 
                   {  text => 'Auto-course creation settings',                    { text => 'Auto-course creation settings',
                      help => 'Domain_Configuration_Auto_Creation',                       help => 'Domain_Configuration_Auto_Creation',
                      header => [{col1 => 'Configuration Setting',                       header => [{col1 => 'Configuration Setting',
                                  col2 => 'Value',}],                                   col2 => 'Value',}],
Line 325  sub handler { Line 327  sub handler {
                               col3 => 'Specific IPs',                                col3 => 'Specific IPs',
                             }],                              }],
                  },                   },
         'coursedefaults' =>          'helpsettings' =>
                    {text   => 'Help page settings',
                     help   => 'Domain_Configuration_Help_Settings',
                     header => [{col1 => 'Authenticated Help Settings',
                                 col2 => ''},
                                {col1 => 'Unauthenticated Help Settings',
                                 col2 => ''}],
                    },
           'coursedefaults' => 
                  {text => 'Course/Community defaults',                   {text => 'Course/Community defaults',
                   help => 'Domain_Configuration_Course_Defaults',                    help => 'Domain_Configuration_Course_Defaults',
                   header => [{col1 => 'Setting',                    header => [{col1 => 'Setting',
                               col2 => 'Value',}],                                col2 => 'Value',}],
                  },                   },
           'privacy' => 
                    {text   => 'User Privacy',
                     help   => 'Domain_Configuration_User_Privacy',
                     header => [{col1 => 'Setting',
                                 col2 => 'Value',}],
                    },
     );      );
     my %servers = &dom_servers($dom);      my %servers = &dom_servers($dom);
     if (keys(%servers) > 1) {      if (keys(%servers) > 1) {
Line 429  sub process_changes { Line 445  sub process_changes {
         $output = &modify_serverstatuses($dom,%domconfig);          $output = &modify_serverstatuses($dom,%domconfig);
     } elsif ($action eq 'requestcourses') {      } elsif ($action eq 'requestcourses') {
         $output = &modify_quotas($dom,$action,%domconfig);          $output = &modify_quotas($dom,$action,%domconfig);
       } elsif ($action eq 'helpsettings') {
           $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);
     }      }
Line 456  sub print_config_box { Line 474  sub print_config_box {
     }      }
     if ($numheaders > 1) {      if ($numheaders > 1) {
         my $colspan = '';          my $colspan = '';
         if (($action eq 'rolecolors') || ($action eq 'coursecategories')) {          if (($action eq 'rolecolors') || ($action eq 'coursecategories') || ($action eq 'helpsettings')) {
             $colspan = ' colspan="2"';              $colspan = ' colspan="2"';
         }          }
         $output .= '          $output .= '
Line 481  sub print_config_box { Line 499  sub print_config_box {
             $colspan = ' colspan="2"';              $colspan = ' colspan="2"';
         } elsif ($action eq 'requestcourses') {          } elsif ($action eq 'requestcourses') {
             $output .= &print_quotas($dom,$settings,\$rowtotal,$action);              $output .= &print_quotas($dom,$settings,\$rowtotal,$action);
         } else {          } elsif ($action eq 'helpsettings') {
               $output .= &print_helpsettings('top',$dom,$confname,$settings,\$rowtotal);
           } elsif ($action eq 'rolecolors') {
             $output .= &print_rolecolors($phase,'student',$dom,$confname,$settings,\$rowtotal);              $output .= &print_rolecolors($phase,'student',$dom,$confname,$settings,\$rowtotal);
         }          }
         $output .= '          $output .= '
Line 532  sub print_config_box { Line 552  sub print_config_box {
             $output .= &print_login('bottom',$dom,$confname,$phase,$settings,\$rowtotal);              $output .= &print_login('bottom',$dom,$confname,$phase,$settings,\$rowtotal);
         } elsif ($action eq 'requestcourses') {          } elsif ($action eq 'requestcourses') {
             $output .= &print_courserequestmail($dom,$settings,\$rowtotal);              $output .= &print_courserequestmail($dom,$settings,\$rowtotal);
         } else {          } elsif ($action eq 'helpsettings') {
               $output .= &print_helpsettings('bottom',$dom,$confname,$settings,\$rowtotal);
           } elsif ($action eq 'rolecolors') {
             $output .= &print_rolecolors($phase,'coordinator',$dom,$confname,$settings,\$rowtotal).'              $output .= &print_rolecolors($phase,'coordinator',$dom,$confname,$settings,\$rowtotal).'
            </table>             </table>
           </td>            </td>
Line 618  sub print_config_box { Line 640  sub print_config_box {
             $output .= &print_scantronformat($r,$dom,$confname,$settings,\$rowtotal);              $output .= &print_scantronformat($r,$dom,$confname,$settings,\$rowtotal);
         } elsif ($action eq 'serverstatuses') {          } elsif ($action eq 'serverstatuses') {
             $output .= &print_serverstatuses($dom,$settings,\$rowtotal);              $output .= &print_serverstatuses($dom,$settings,\$rowtotal);
         } elsif ($action eq 'coursedefaults') {          } elsif ($action eq 'helpsettings') {
               $output .= &print_helpsettings('top',$dom,$confname,$settings,\$rowtotal);
       } elsif ($action eq 'coursedefaults') {
             $output .= &print_coursedefaults($dom,$settings,\$rowtotal);              $output .= &print_coursedefaults($dom,$settings,\$rowtotal);
         }          }
     }      }
Line 839  sub login_choices { Line 863  sub login_choices {
     my %choices =      my %choices =
         &Apache::lonlocal::texthash (          &Apache::lonlocal::texthash (
             coursecatalog => 'Display Course/Community Catalog link?',              coursecatalog => 'Display Course/Community Catalog link?',
             adminmail => "Display Administrator's E-mail Address?",              adminmail     => "Display Administrator's E-mail Address?",
             disallowlogin => "Login page requests redirected",              disallowlogin => "Login page requests redirected",
             hostid        => "Server",              hostid        => "Server",
             server        => "Redirect to:",              server        => "Redirect to:",
             serverpath    => "Path",              serverpath    => "Path",
             custompath    => "Custom",              custompath    => "Custom", 
             exempt        => "Exempt IP(s)",              exempt        => "Exempt IP(s)",
             directlogin   => "No redirect",              directlogin   => "No redirect",
             newuser   => "Link to create a user account",              newuser       => "Link to create a user account",
             img => "Header",              img           => "Header",
             logo => "Main Logo",              logo          => "Main Logo",
             domlogo => "Domain Logo",              domlogo       => "Domain Logo",
             login => "Log-in Header",               login         => "Log-in Header", 
             textcol => "Text color",              textcol       => "Text color",
             bgcol   => "Box color",              bgcol         => "Box color",
             bgs => "Background colors",              bgs           => "Background colors",
             links => "Link colors",              links         => "Link colors",
             font => "Font color",              font          => "Font color",
             pgbg => "Header",              pgbg          => "Header",
             mainbg => "Page",              mainbg        => "Page",
             sidebg => "Login box",              sidebg        => "Login box",
             link => "Link",              link          => "Link",
             alink => "Active link",              alink         => "Active link",
             vlink => "Visited link",              vlink         => "Visited link",
         );          );
     return %choices;      return %choices;
 }  }
Line 880  sub print_rolecolors { Line 904  sub print_rolecolors {
     my %defaults = (      my %defaults = (
                    img => $defaultdesign{$role.'.img'},                     img => $defaultdesign{$role.'.img'},
                    font => $defaultdesign{$role.'.font'},                     font => $defaultdesign{$role.'.font'},
      fontmenu => $defaultdesign{$role.'.fontmenu'},
                    );                     );
     foreach my $item (@bgs) {      foreach my $item (@bgs) {
         $defaults{'bgs'}{$item} = $defaultdesign{$role.'.'.$item};          $defaults{'bgs'}{$item} = $defaultdesign{$role.'.'.$item};
Line 897  sub print_rolecolors { Line 922  sub print_rolecolors {
                 $designs{'font'} = $settings->{$role}->{'font'};                  $designs{'font'} = $settings->{$role}->{'font'};
                 $is_custom{'font'} = 1;                  $is_custom{'font'} = 1;
             }              }
               if ($settings->{$role}->{'fontmenu'} ne '') {
                   $designs{'fontmenu'} = $settings->{$role}->{'fontmenu'};
                   $is_custom{'fontmenu'} = 1;
               }
             foreach my $item (@bgs) {              foreach my $item (@bgs) {
                 if ($settings->{$role}->{$item} ne '') {                  if ($settings->{$role}->{$item} ne '') {
                     $designs{'bgs'}{$item} = $settings->{$role}->{$item};                      $designs{'bgs'}{$item} = $settings->{$role}->{$item};
Line 915  sub print_rolecolors { Line 944  sub print_rolecolors {
             $designs{img} = $designhash{$dom.'.'.$role.'.img'};              $designs{img} = $designhash{$dom.'.'.$role.'.img'};
             $is_custom{'img'} = 1;              $is_custom{'img'} = 1;
         }          }
           if ($designhash{$dom.'.'.$role.'.fontmenu'} ne '') {
               $designs{fontmenu} = $designhash{$dom.'.'.$role.'.fontmenu'};
               $is_custom{'fontmenu'} = 1; 
           }
         if ($designhash{$dom.'.'.$role.'.font'} ne '') {          if ($designhash{$dom.'.'.$role.'.font'} ne '') {
             $designs{font} = $designhash{$dom.'.'.$role.'.font'};              $designs{font} = $designhash{$dom.'.'.$role.'.font'};
             $is_custom{'font'} = 1;              $is_custom{'font'} = 1;
Line 943  sub display_color_options { Line 976  sub display_color_options {
     my ($dom,$confname,$phase,$role,$itemcount,$choices,$is_custom,$defaults,$designs,      my ($dom,$confname,$phase,$role,$itemcount,$choices,$is_custom,$defaults,$designs,
         $images,$bgs,$links,$alt_text,$rowtotal,$logintext,$loginheader) = @_;          $images,$bgs,$links,$alt_text,$rowtotal,$logintext,$loginheader) = @_;
     my $css_class = $itemcount%2?' class="LC_odd_row"':'';      my $css_class = $itemcount%2?' class="LC_odd_row"':'';
     my $datatable = '<tr'.$css_class.'>'.      my $datatable = '<tr>'.
         '<td>'.$choices->{'font'}.'</td>';          '<td>'.$choices->{'font'}.'</td>';
     if (!$is_custom->{'font'}) {      if (!$is_custom->{'font'}) {
         $datatable .=  '<td>'.&mt('Default in use:').'&nbsp;<span id="css_default_'.$role.'_font" style="color: '.$defaults->{'font'}.';">'.$defaults->{'font'}.'</span></td>';          $datatable .=  '<td>'.&mt('Default in use:').'&nbsp;<span id="css_default_'.$role.'_font" style="color: '.$defaults->{'font'}.';">'.$defaults->{'font'}.'</span></td>';
Line 957  sub display_color_options { Line 990  sub display_color_options {
                   '&nbsp;<span id="css_'.$role.'_font" style="background-color: '.                    '&nbsp;<span id="css_'.$role.'_font" style="background-color: '.
                   $designs->{'font'}.';">&nbsp;&nbsp;&nbsp;</span>'.                    $designs->{'font'}.';">&nbsp;&nbsp;&nbsp;</span>'.
                   '</span></td></tr>';                    '</span></td></tr>';
       unless ($role eq 'login') { 
           $datatable .= '<tr'.$css_class.'>'.
                         '<td>'.$choices->{'fontmenu'}.'</td>';
           if (!$is_custom->{'fontmenu'}) {
               $datatable .=  '<td>'.&mt('Default in use:').'&nbsp;<span id="css_default_'.$role.'_font" style="color: '.$defaults->{'fontmenu'}.';">'.$defaults->{'fontmenu'}.'</span></td>';
           } else {
               $datatable .= '<td>&nbsp;</td>';
           }
           $fontlink = &color_pick($phase,$role,'fontmenu',$choices->{'fontmenu'},$designs->{'fontmenu'});
           $datatable .= '<td><span class="LC_nobreak">'.
                         '<input type="text" size="10" name="'.$role.'_fontmenu"'.
                         ' value="'.$designs->{'fontmenu'}.'" />&nbsp;'.$fontlink.
                         '&nbsp;<span id="css_'.$role.'_fontmenu" style="background-color: '.
                         $designs->{'fontmenu'}.';">&nbsp;&nbsp;&nbsp;</span>'.
                         '</span></td></tr>';
       }
     my $switchserver = &check_switchserver($dom,$confname);      my $switchserver = &check_switchserver($dom,$confname);
     foreach my $img (@{$images}) {      foreach my $img (@{$images}) {
  $itemcount ++;   $itemcount ++;
Line 1343  sub print_quotas { Line 1392  sub print_quotas {
                 if ($context eq 'requestcourses') {                  if ($context eq 'requestcourses') {
                     $datatable .= '</tr><tr>';                      $datatable .= '</tr><tr>';
                     foreach my $item (@usertools) {                      foreach my $item (@usertools) {
                         $datatable .= '<td style="vertical-align: top;">'.$cell{$item}.'</td>';                            $datatable .= '<td style="vertical-align: top">'.$cell{$item}.'</td>';  
                     }                      }
                     $datatable .= '</tr></table>';                      $datatable .= '</tr></table>';
                 }                  }
Line 1449  sub print_quotas { Line 1498  sub print_quotas {
     if ($context eq 'requestcourses') {      if ($context eq 'requestcourses') {
         $datatable .= '</tr><tr>';          $datatable .= '</tr><tr>';
         foreach my $item (@usertools) {          foreach my $item (@usertools) {
             $datatable .= '<td style="vertical-align: top;">'.$defcell{$item}.'</td>';              $datatable .= '<td style="vertical-align: top">'.$defcell{$item}.'</td>';
         }          }
         $datatable .= '</tr></table>';          $datatable .= '</tr></table>';
     }      }
Line 1552  sub print_quotas { Line 1601  sub print_quotas {
     if ($context eq 'requestcourses') {      if ($context eq 'requestcourses') {
         $datatable .= '</tr><tr>';          $datatable .= '</tr><tr>';
         foreach my $item (@usertools) {          foreach my $item (@usertools) {
             $datatable .= '<td style="vertical-align: top;">'.$advcell{$item}.'</td>';              $datatable .= '<td style="vertical-align: top">'.$advcell{$item}.'</td>';
         }          }
         $datatable .= '</tr></table>';          $datatable .= '</tr></table>';
     }      }
Line 1811  sub print_autocreate { Line 1860  sub print_autocreate {
     my ($numdc,$dctable) = &active_dc_picker($dom,$curr_dc);      my ($numdc,$dctable) = &active_dc_picker($dom,$curr_dc);
     if ($numdc > 1) {      if ($numdc > 1) {
         $datatable .= '</td><tr><td>'.          $datatable .= '</td><tr><td>'.
                       &mt('XML files processed as: (choose Dom. Coord.)').                        &mt('XML files processed as: (choose Dom. Coord.)'). 
                       '</td><td class="LC_left_item">'.$dctable.'</td></tr>'.                        '</td><td class="LC_left_item">'.$dctable.'</td></tr>'.
                       '<tr class="LC_odd_row">';                        '<tr class="LC_odd_row">';
         $$rowtotal ++ ;          $$rowtotal ++ ;
Line 2016  sub print_contacts { Line 2065  sub print_contacts {
     return $datatable;      return $datatable;
 }  }
   
   sub print_helpsettings {
   
    my ($position,$dom,$confname,$settings,$rowtotal) = @_;
    my ($css_class,$datatable);
   
    my $switchserver = &check_switchserver($dom,$confname);
   
    my $itemcount = 1;
   
    if ($position eq 'top') {
   
    my (%checkedon,%checkedoff,%choices,%defaultchecked,@toggles);
   
    %choices =
    &Apache::lonlocal::texthash (
    submitbugs => 'Display &quot;Submit a bug&quot; link?',
    );
   
    %defaultchecked = ('submitbugs' => 'on');
   
    @toggles = ('submitbugs',);
   
    foreach my $item (@toggles) {
    if ($defaultchecked{$item} eq 'on') { 
    $checkedon{$item} = ' checked="checked" ';
    $checkedoff{$item} = ' ';
    } elsif ($defaultchecked{$item} eq 'off') {
    $checkedoff{$item} = ' checked="checked" ';
    $checkedon{$item} = ' ';
    }
    }
   
    if (ref($settings) eq 'HASH') {
    foreach my $item (@toggles) {
    if ($settings->{$item} eq '1') {
    $checkedon{$item} =  ' checked="checked" ';
    $checkedoff{$item} = ' ';
    } elsif ($settings->{$item} eq '0') {
    $checkedoff{$item} =  ' checked="checked" ';
    $checkedon{$item} = ' ';
    }
    }
    }
   
    foreach my $item (@toggles) {
    $css_class = $itemcount%2 ? ' class="LC_odd_row"' : '';
    $datatable .=  
    '<tr'.$css_class.'>
    <td><span class="LC_nobreak">'.$choices{$item}.'</span></td>
    <td><span class="LC_nobreak">&nbsp;</span></td>
    <td class="LC_right_item"><span class="LC_nobreak">
    <label><input type="radio" name="'.$item.'" '.$checkedon{$item}.' value="1" />'.&mt('Yes').'</label>&nbsp;
    <label><input type="radio" name="'.$item.'" '.$checkedoff{$item}.' value="0" />'.&mt('No').'</label>'.
    '</span></td>'.
    '</tr>';
    $itemcount ++;
    }
        
        } else {
        
         $css_class = $itemcount%2 ? ' class="LC_odd_row"' : '';
        
         $datatable .= '<tr'.$css_class.'>';
        
         if (ref($settings) eq 'HASH') {
    if ($settings->{'loginhelpurl'} ne '') {
    my($directory, $filename) = $settings->{'loginhelpurl'} =~ m/(.*\/)(.*)$/;
    $datatable .= '<td width="33%"><span class="LC_left_item"><label><a href="'.$settings->{'loginhelpurl'}.'" target="_blank">'.&mt('Custom Login Page Help File In Use').'</a></label></span></td>';
    $datatable .= '<td width="33%"><span class="LC_right_item"><label><input type="checkbox" name="loginhelpurl_del" value="1" />'.&mt('Delete?').'</label></span></td>'
    } else {
    $datatable .= '<td width="33%"><span class="LC_left_item"><label>'.&mt('Default Login Page Help File In Use').'</label></span></td>';
    $datatable .= '<td width="33%"><span class="LC_right_item">&nbsp;</span></td>';
    }
    } else {
    $datatable .= '<td><span class="LC_left_item">&nbsp;</span></td>';
    $datatable .= '<td><span class="LC_right_item">&nbsp;</span></td>';
    }
      
         $datatable .= '<td width="33%"><span class="LC_right_item">';
         if ($switchserver) {
               $datatable .= &mt('Upload to library server: [_1]',$switchserver);
           } else {
           $datatable .= &mt('Upload Custom Login Page Help File:');
               $datatable .='<input type="file" name="loginhelpurl" />';
           }
           $datatable .= '</span></td></tr>';
           
        }
        
        return $datatable;
   
   }
   
   
 sub radiobutton_prefs {  sub radiobutton_prefs {
     my ($settings,$toggles,$defaultchecked,$choices,$itemcount) = @_;      my ($settings,$toggles,$defaultchecked,$choices,$itemcount) = @_;
     return unless ((ref($toggles) eq 'ARRAY') && (ref($defaultchecked) eq 'HASH') &&      return unless ((ref($toggles) eq 'ARRAY') && (ref($defaultchecked) eq 'HASH') &&
Line 2122  sub courserequest_titles { Line 2265  sub courserequest_titles {
   
 sub courserequest_conditions {  sub courserequest_conditions {
     my %conditions = &Apache::lonlocal::texthash (      my %conditions = &Apache::lonlocal::texthash (
        approval   => '(Processing of request subject to approval by Domain Coordinator).',         approval    => '(Processing of request subject to approval by Domain Coordinator).',
        validate   => '(Processing of request subject to instittutional validation).',         validate   => '(Processing of request subject to instittutional validation).',
                  );                   );
     return %conditions;      return %conditions;
Line 2618  sub print_scantronformat { Line 2761  sub print_scantronformat {
                       '<span class="LC_nobreak">';                        '<span class="LC_nobreak">';
         if ($scantronurl) {          if ($scantronurl) {
             $datatable .= '<a href="'.$scantronurl.'" target="_blank">'.              $datatable .= '<a href="'.$scantronurl.'" target="_blank">'.
                           &mt('Default scantron format file').'</a>';                            &mt('Default bubblesheet format file').'</a>';
         } else {          } else {
             $datatable = &mt('File unavailable for display');              $datatable = &mt('File unavailable for display');
         }          }
Line 2645  sub print_scantronformat { Line 2788  sub print_scantronformat {
         } elsif ($scantronurl) {          } elsif ($scantronurl) {
             $datatable .= '<td><span class="LC_nobreak">'.              $datatable .= '<td><span class="LC_nobreak">'.
                           '<a href="'.$scantronurl.'" target="_blank">'.                            '<a href="'.$scantronurl.'" target="_blank">'.
                           &mt('Custom scantron format file').'</a><label>'.                            &mt('Custom bubblesheet format file').'</a><label>'.
                           '<input type="checkbox" name="scantronformat_del"'.                            '<input type="checkbox" name="scantronformat_del"'.
                           '" value="1" />'.&mt('Delete?').'</label></span></td>'.                            '" value="1" />'.&mt('Delete?').'</label></span></td>'.
                           '<td><span class="LC_nobreak">&nbsp;'.                            '<td><span class="LC_nobreak">&nbsp;'.
Line 2674  sub legacy_scantronformat { Line 2817  sub legacy_scantronformat {
             &publishlogo($r,'copy',$legacyfile,$dom,$confname,'scantron',              &publishlogo($r,'copy',$legacyfile,$dom,$confname,'scantron',
                          '','',$newfile);                           '','',$newfile);
         if ($result ne 'ok') {          if ($result ne 'ok') {
             $error = &mt("An error occurred publishing the [_1] scantron format file in RES space. Error was: [_2].",$newfile,$result);              $error = &mt("An error occurred publishing the [_1] bubblesheet format file in RES space. Error was: [_2].",$newfile,$result);
         }          }
     }      }
     return ($url,$error);      return ($url,$error);
Line 2718  sub print_coursecategories { Line 2861  sub print_coursecategories {
                      categorizecomm => 'Assign a category to a community',                       categorizecomm => 'Assign a category to a community',
                     );                      );
         my %level = &Apache::lonlocal::texthash (          my %level = &Apache::lonlocal::texthash (
                      dom => 'Set in Domain',                       dom  => 'Set in Domain',
                      crs => 'Set in Course',                          crs  => 'Set in Course',
                      comm => 'Set in Community',                       comm => 'Set in Community',
                     );                      );
         $datatable = '<tr class="LC_odd_row">'.          $datatable = '<tr class="LC_odd_row">'.
Line 2778  sub print_coursecategories { Line 2921  sub print_coursecategories {
                           communities => &mt('Communities'),                            communities => &mt('Communities'),
                     );                      );
   
                     if ((!grep(/^instcode$/,@{$cats[0]})) ||                      if ((!grep(/^instcode$/,@{$cats[0]})) || 
                         ($cathash->{'instcode::0'} eq '') ||                          ($cathash->{'instcode::0'} eq '') ||
                         (!grep(/^communities$/,@{$cats[0]})) ||                          (!grep(/^communities$/,@{$cats[0]})) || 
                         ($cathash->{'communities::0'} eq '')) {                          ($cathash->{'communities::0'} eq '')) {
                         $maxnum ++;                          $maxnum ++;
                     }                      }
Line 2874  sub print_coursecategories { Line 3017  sub print_coursecategories {
                                           '<td><span class="LC_nobreak">'.                                            '<td><span class="LC_nobreak">'.
                                           $default_names{$default}.'</span>';                                            $default_names{$default}.'</span>';
                             if ($default eq 'instcode') {                              if ($default eq 'instcode') {
                                 $datatable .= '<br /><span class="LC_nobreak">('                                  $datatable .= '<br /><span class="LC_nobreak">(' 
                                               .&mt('with institutional codes').')</span>';                                                .&mt('with institutional codes').')</span>';
                             }                              }
                             $datatable .= '</td>'                              $datatable .= '</td>'
Line 2973  sub coursecategories_javascript { Line 3116  sub coursecategories_javascript {
     }      }
     my $instcode_reserved = &mt('The name: "instcode" is a reserved category');      my $instcode_reserved = &mt('The name: "instcode" is a reserved category');
     my $communities_reserved = &mt('The name: "communities" is a reserved category');      my $communities_reserved = &mt('The name: "communities" is a reserved category');
     my $choose_again = '\\n'.&mt('Please use a different name for the new top level category');      my $choose_again = '\\n'.&mt('Please use a different name for the new top level category'); 
     $output = <<"ENDSCRIPT";      $output = <<"ENDSCRIPT";
 <script type="text/javascript">  <script type="text/javascript">
 // <![CDATA[  // <![CDATA[
Line 3451  sub modify_login { Line 3594  sub modify_login {
                                 $new = '/';                                  $new = '/';
                             }                              }
                         }                          }
                         if (($item eq 'custompath') &&                          if (($item eq 'custompath') && 
                             ($env{'form.'.$lonhost.'_serverpath'} ne 'custom')) {                              ($env{'form.'.$lonhost.'_serverpath'} ne 'custom')) {
                             $new = '';                              $new = '';
                         }                          }
Line 3466  sub modify_login { Line 3609  sub modify_login {
                             foreach my $ip (@poss_ips) {                              foreach my $ip (@poss_ips) {
                                 if ($ip =~ /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/) {                                  if ($ip =~ /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/) {
                                     if (($1 <= 255) && ($2 <= 255) && ($3 <= 255) && ($4 <= 255)) {                                      if (($1 <= 255) && ($2 <= 255) && ($3 <= 255) && ($4 <= 255)) {
                                         push(@okips,$ip);                                          push(@okips,$ip); 
                                     }                                      }
                                 }                                  }
                             }                              }
                             if (@okips > 0) {                              if (@okips > 0) {
                                 $new = join(',',@okips);                                  $new = join(',',@okips); 
                             } else {                              } else {
                                 $new = '';                                  $new = ''; 
                             }                              }
                         }                          }
   
Line 3491  sub modify_login { Line 3634  sub modify_login {
                                 $new = '/';                                  $new = '/';
                             }                              }
                         }                          }
                         if (($item eq 'custompath') &&                          if (($item eq 'custompath') && 
                             ($env{'form.'.$lonhost.'_serverpath'} ne 'custom')) {                              ($env{'form.'.$lonhost.'_serverpath'} ne 'custom')) {
                             $new = '';                              $new = '';
                         }                          }
Line 3561  sub modify_login { Line 3704  sub modify_login {
                                     if ($loginhash{login}{loginvia}{$lonhost}{'serverpath'} eq 'custom') {                                      if ($loginhash{login}{loginvia}{$lonhost}{'serverpath'} eq 'custom') {
                                         $target .= $loginhash{login}{loginvia}{$lonhost}{'custompath'};                                          $target .= $loginhash{login}{loginvia}{$lonhost}{'custompath'};
                                     } else {                                      } else {
                                         $target .= $loginhash{login}{loginvia}{$lonhost}{'serverpath'};                                          $target .= $loginhash{login}{loginvia}{$lonhost}{'serverpath'}; 
                                     }                                      }
                                     $resulttext .= '<li>'.&mt('Server: [_1] log-in page redirects to [_2].',$servers{$lonhost},'<a href="'.$target.'">'.$target.'</a>');                                      $resulttext .= '<li>'.&mt('Server: [_1] log-in page redirects to [_2].',$servers{$lonhost},'<a href="'.$target.'">'.$target.'</a>');
                                     if ($loginhash{login}{loginvia}{$lonhost}{'exempt'} ne '') {                                      if ($loginhash{login}{loginvia}{$lonhost}{'exempt'} ne '') {
Line 3604  sub color_font_choices { Line 3747  sub color_font_choices {
             links => "Link colors",              links => "Link colors",
             images => "Images",              images => "Images",
             font => "Font color",              font => "Font color",
               fontmenu => "Font Menu",
             pgbg => "Page",              pgbg => "Page",
             tabbg => "Header",              tabbg => "Header",
             sidebg => "Border",              sidebg => "Border",
Line 3661  sub modify_colors { Line 3805  sub modify_colors {
             @logintext = ('textcol','bgcol');              @logintext = ('textcol','bgcol');
         } else {          } else {
             %choices = &color_font_choices();              %choices = &color_font_choices();
               $confhash->{$role}{'fontmenu'} = $env{'form.'.$role.'_fontmenu'};
         }          }
         if ($role eq 'login') {          if ($role eq 'login') {
             @images = ('img','logo','domlogo','login');              @images = ('img','logo','domlogo','login');
Line 3783  sub modify_colors { Line 3928  sub modify_colors {
                         $changes{$role}{'font'} = 1;                          $changes{$role}{'font'} = 1;
                     }                      }
                 }                  }
                   if ($role ne 'login') {
                       if ($domconfig->{$role}{'fontmenu'} ne '') {
                           if ($confhash->{$role}{'fontmenu'} ne $domconfig->{$role}{'fontmenu'}) {
                               $changes{$role}{'fontmenu'} = 1;
                           }
                       } else {
                           if ($confhash->{$role}{'fontmenu'}) {
                               $changes{$role}{'fontmenu'} = 1;
                           }
                       }
                   }
                 foreach my $item (@bgs) {                  foreach my $item (@bgs) {
                     if ($domconfig->{$role}{$item} ne '') {                      if ($domconfig->{$role}{$item} ne '') {
                         if ($confhash->{$role}{$item} ne $domconfig->{$role}{$item}) {                          if ($confhash->{$role}{$item} ne $domconfig->{$role}{$item}) {
Line 4278  sub modify_quotas { Line 4434  sub modify_quotas {
     }      }
     foreach my $item (@usertools) {      foreach my $item (@usertools) {
         foreach my $type (@{$types},'default','_LC_adv') {          foreach my $type (@{$types},'default','_LC_adv') {
             my $unset;              my $unset; 
             if ($context eq 'requestcourses') {              if ($context eq 'requestcourses') {
                 $unset = '0';                  $unset = '0';
                 if ($type eq '_LC_adv') {                  if ($type eq '_LC_adv') {
Line 4510  sub modify_autoenroll { Line 4666  sub modify_autoenroll {
     }      }
     my $coowners = $env{'form.autoassign_coowners'};      my $coowners = $env{'form.autoassign_coowners'};
     my %autoenrollhash =  (      my %autoenrollhash =  (
                        autoenroll => { run => $env{'form.autoenroll_run'},                         autoenroll => { 'run' => $env{'form.autoenroll_run'},
                                        sender_uname => $sender_uname,                                         'sender_uname' => $sender_uname,
                                        sender_domain => $sender_domain,                                         'sender_domain' => $sender_domain,
                                        'co-owners' => $coowners,                                         'co-owners' => $coowners,
                                 }                                  }
                      );                       );
Line 4540  sub modify_autoenroll { Line 4696  sub modify_autoenroll {
             }              }
         } elsif ($coowners) {          } elsif ($coowners) {
             $changes{'coowners'} = 1;              $changes{'coowners'} = 1;
         }          }      
         if (keys(%changes) > 0) {          if (keys(%changes) > 0) {
             $resulttext = &mt('Changes made:').'<ul>';              $resulttext = &mt('Changes made:').'<ul>';
             if ($changes{'run'}) {              if ($changes{'run'}) {
Line 4712  sub modify_autocreate { Line 4868  sub modify_autocreate {
     my %domcoords = &get_active_dcs($dom);      my %domcoords = &get_active_dcs($dom);
     unless (exists($domcoords{$newvals{'xmldc'}})) {      unless (exists($domcoords{$newvals{'xmldc'}})) {
         $newvals{'xmldc'} = '';          $newvals{'xmldc'} = '';
     }      } 
     %autocreatehash =  (      %autocreatehash =  (
                         autocreate => { xml => $newvals{'xml'},                          autocreate => { xml => $newvals{'xml'},
                                         req => $newvals{'req'},                                          req => $newvals{'req'},
Line 4738  sub modify_autocreate { Line 4894  sub modify_autocreate {
             }              }
         }          }
         if (keys(%changes) > 0) {          if (keys(%changes) > 0) {
             my @offon = ('off','on');              my @offon = ('off','on'); 
             $resulttext = &mt('Changes made:').'<ul>';              $resulttext = &mt('Changes made:').'<ul>';
             foreach my $item (@types) {              foreach my $item (@types) {
                 if ($changes{$item}) {                  if ($changes{$item}) {
Line 4749  sub modify_autocreate { Line 4905  sub modify_autocreate {
             if ($changes{'xmldc'}) {              if ($changes{'xmldc'}) {
                 my ($dcname,$dcdom) = split(':',$newvals{'xmldc'});                  my ($dcname,$dcdom) = split(':',$newvals{'xmldc'});
                 my $newtxt = &Apache::loncommon::plainname($dcname,$dcdom);                  my $newtxt = &Apache::loncommon::plainname($dcname,$dcdom);
                 $resulttext .= '<li>'.&mt("$title{'xmldc'} set to [_1]$newtxt [_2]",'<b>','</b>').'</li>';                  $resulttext .= '<li>'.&mt("$title{'xmldc'} set to [_1]$newtxt [_2]",'<b>','</b>').'</li>'; 
             }              }
             $resulttext .= '</ul>';              $resulttext .= '</ul>';
         } else {          } else {
Line 5660  sub modify_scantron { Line 5816  sub modify_scantron {
         my $error;          my $error;
         if ($configuserok eq 'ok') {          if ($configuserok eq 'ok') {
             if ($switchserver) {              if ($switchserver) {
                 $error = &mt("Upload of scantron format file is not permitted to this server: [_1]",$switchserver);                  $error = &mt("Upload of bubblesheet format file is not permitted to this server: [_1]",$switchserver);
             } else {              } else {
                 if ($author_ok eq 'ok') {                  if ($author_ok eq 'ok') {
                     my ($result,$scantronurl) =                      my ($result,$scantronurl) =
Line 5700  sub modify_scantron { Line 5856  sub modify_scantron {
                 if (ref($confhash{'scantron'}) eq 'HASH') {                  if (ref($confhash{'scantron'}) eq 'HASH') {
                     $resulttext = &mt('Changes made:').'<ul>';                      $resulttext = &mt('Changes made:').'<ul>';
                     if ($confhash{'scantron'}{'scantronformat'} eq '') {                      if ($confhash{'scantron'}{'scantronformat'} eq '') {
                         $resulttext .= '<li>'.&mt('[_1] scantron format file removed; [_2] file will be used for courses in this domain.',$custom,$default).'</li>';                          $resulttext .= '<li>'.&mt('[_1] bubblesheet format file removed; [_2] file will be used for courses in this domain.',$custom,$default).'</li>';
                     } else {                      } else {
                         $resulttext .= '<li>'.&mt('Custom scantron format file ([_1]) uploaded for use with courses in this domain.',$custom).'</li>';                          $resulttext .= '<li>'.&mt('Custom bubblesheet format file ([_1]) uploaded for use with courses in this domain.',$custom).'</li>';
                     }                      }
                     $resulttext .= '</ul>';                      $resulttext .= '</ul>';
                 } else {                  } else {
                     $resulttext = &mt('Changes made to scantron format file.');                      $resulttext = &mt('Changes made to bubblesheet format file.');
                 }                  }
                 $resulttext .= '</ul>';                  $resulttext .= '</ul>';
                 &Apache::loncommon::devalidate_domconfig_cache($dom);                  &Apache::loncommon::devalidate_domconfig_cache($dom);
             } else {              } else {
                 $resulttext = &mt('No changes made to scantron format file');                  $resulttext = &mt('No changes made to bubblesheet format file');
             }              }
         } else {          } else {
             $resulttext = '<span class="LC_error">'.              $resulttext = '<span class="LC_error">'.
                 &mt('An error occurred: [_1]',$putresult).'</span>';                  &mt('An error occurred: [_1]',$putresult).'</span>';
         }          }
     } else {      } else {
         $resulttext = &mt('No changes made to scantron format file');           $resulttext = &mt('No changes made to bubblesheet format file'); 
     }      }
     if ($errors) {      if ($errors) {
         $resulttext .= &mt('The following errors occurred: ').'<ul>'.          $resulttext .= &mt('The following errors occurred: ').'<ul>'.
Line 6076  sub modify_serverstatuses { Line 6232  sub modify_serverstatuses {
     return $resulttext;      return $resulttext;
 }  }
   
   sub modify_helpsettings {
       my ($r,$dom,$confname,%domconfig) = @_;
     my ($resulttext,$errors,%changes,%helphash);
    
     my $customhelpfile  = $env{'form.loginhelpurl.filename'};
       my $defaulthelpfile = 'defaulthelp.html';
     my $servadm = $r->dir_config('lonAdmEMail');
       my ($configuserok,$author_ok,$switchserver) = 
           &config_check($dom,$confname,$servadm);
    
     my %defaultchecked = ('submitbugs' => 'on');
     my @offon = ('off','on');
       my %title = ( submitbugs     => 'Display link for users to submit a bug', 
        loginhelpurl  => 'Unauthenticated login help page set to custom file');
        
       my @toggles = ('submitbugs');
   
       $helphash{'helpsettings'} = {};
       
       if (ref($domconfig{'helpsettings'}) ne 'HASH') {
           if ($domconfig{'helpsettings'} eq '') {
               $domconfig{'helpsettings'} = {};
           }
       }
       
       if (ref($domconfig{'helpsettings'}) eq 'HASH') {
      
           foreach my $item (@toggles) {
          
    if ($defaultchecked{$item} eq 'on') { 
    if (($domconfig{'helpsettings'}{$item} eq '') &&
    ($env{'form.'.$item} eq '0')) {
    $changes{$item} = 1;
    } elsif ($domconfig{'helpsettings'}{$item} ne $env{'form.'.$item}) {
    $changes{$item} = 1;
    }
    } elsif ($defaultchecked{$item} eq 'off') {
    if (($domconfig{'helpsettings'}{$item} eq '') &&
    ($env{'form.'.$item} eq '1')) {
    $changes{$item} = 1;
    } elsif ($domconfig{'helpsettings'}{$item} ne $env{'form.'.$item}) {
    $changes{$item} = 1;
    }
    }
    $helphash{'helpsettings'}{$item} = $env{'form.'.$item};
    }
   
    if ($customhelpfile ne '') {
    my $error;
    if ($configuserok eq 'ok') {
    if ($switchserver) {
    $error = &mt("Upload of custom help file is not permitted to this server: [_1]",$switchserver);
    } else {
    if ($author_ok eq 'ok') {
    my ($result,$loginhelpurl) =
    &publishlogo($r,'upload','loginhelpurl',$dom,
    $confname,'help','','',$customhelpfile);
    if ($result eq 'ok') {
    $helphash{'helpsettings'}{'loginhelpurl'} = $loginhelpurl;
    $changes{'loginhelpurl'} = 1;
    } else {
    $error = &mt("Upload of [_1] failed because an error occurred publishing the file in RES space. Error was: [_2].",$customhelpfile,$result);
    }
    } else {
    $error = &mt("Upload of [_1] failed because an author role could not be assigned to a Domain Configuration user ([_2]) in domain: [_3].  Error was: [_4].",$customhelpfile,$confname,$dom,$author_ok);
    }
    }
    } else {
    $error = &mt("Upload of [_1] failed because a Domain Configuration user ([_2]) could not be created in domain: [_3].  Error was: [_4].",$customhelpfile,$confname,$dom,$configuserok);
    }
    if ($error) {
    &Apache::lonnet::logthis($error);
    $errors .= '<li><span class="LC_error">'.$error.'</span></li>';
    }
    }
   
           if ($domconfig{'helpsettings'}{'loginhelpurl'} ne '') {
               if ($env{'form.loginhelpurl_del'}) {
                   $helphash{'helpsettings'}{'loginhelpurl'} = '';
                   $changes{'loginhelpurl'} = 1;
               }
           }
       }
       
       
       my $putresult;
       
       if (keys(%changes) > 0) {
       $putresult = &Apache::lonnet::put_dom('configuration',\%helphash,$dom);
       } else {
       $putresult = 'ok';
       }
                                                
       if ($putresult eq 'ok') {
           if (keys(%changes) > 0) {
    $resulttext = &mt('Changes made:').'<ul>';
    foreach my $item (sort(keys(%changes))) {
    if ($item eq 'submitbugs') {
    $resulttext .= '<li>'.&mt("$title{$item} set to $offon[$env{'form.'.$item}]").'</li>';
    }
    if ($item eq 'loginhelpurl') {
    if ($helphash{'helpsettings'}{'loginhelpurl'} eq '') {
                           $resulttext .= '<li>'.&mt('[_1] help file removed; [_2] file will be used for the unathorized help page in this domain.',$customhelpfile,$defaulthelpfile).'</li>';
                       } else {
                           $resulttext .= '<li>'.&mt("$title{$item} [_1]",$customhelpfile).'</li>';
                       }
    }
    }
    $resulttext .= '</ul>';
    } else {
    $resulttext = &mt('No changes made to help settings');
    }
       } else {
           $resulttext = '<span class="LC_error">'.
       &mt('An error occurred: [_1]',$putresult).'</span>';
       }
       if ($errors) {
           $resulttext .= &mt('The following errors occurred: ').'<ul>'.
                          $errors.'</ul>';
       }
       return $resulttext;
   }
   
 sub modify_coursedefaults {  sub modify_coursedefaults {
     my ($dom,%domconfig) = @_;      my ($dom,%domconfig) = @_;
     my ($resulttext,$errors,%changes,%defaultshash);      my ($resulttext,$errors,%changes,%defaultshash);
Line 6237  sub get_active_dcs { Line 6516  sub get_active_dcs {
   
 sub active_dc_picker {  sub active_dc_picker {
     my ($dom,$curr_dc) = @_;      my ($dom,$curr_dc) = @_;
     my %domcoords = &get_active_dcs($dom);      my %domcoords = &get_active_dcs($dom); 
     my @dcs = sort(keys(%domcoords));      my @dcs = sort(keys(%domcoords));
     my $numdcs = scalar(@dcs);      my $numdcs = scalar(@dcs); 
     my $datatable;      my $datatable;
     my $numinrow = 2;      my $numinrow = 2;
     if ($numdcs > 1) {      if ($numdcs > 1) {
Line 6254  sub active_dc_picker { Line 6533  sub active_dc_picker {
             }              }
             my $check = ' ';              my $check = ' ';
             if ($curr_dc eq '') {              if ($curr_dc eq '') {
                 if (!$i) {                  if (!$i) { 
                     $check = ' checked="checked" ';                      $check = ' checked="checked" ';
                 }                  }
             } elsif ($dcs[$i] eq $curr_dc) {              } elsif ($dcs[$i] eq $curr_dc) {

Removed from v.1.102.2.11  
changed lines
  Added in v.1.130


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