Diff for /loncom/interface/domainprefs.pm between versions 1.102.2.6 and 1.106

version 1.102.2.6, 2010/01/02 21:50:54 version 1.106, 2009/08/22 18:48:56
Line 302  sub handler { Line 302  sub handler {
                               col2 => 'Value'}],                                col2 => 'Value'}],
                  },                   },
         'coursecategories' =>          'coursecategories' =>
                   { text => 'Cataloging of courses/communities',                    { text => 'Cataloging of courses',
                     help => 'Domain_Configuration_Cataloging_Courses',                      help => 'Domain_Configuration_Cataloging_Courses',
                     header => [{col1 => 'Category settings',                      header => [{col1 => 'Category settings',
                                 col2 => '',},                                  col2 => '',},
Line 728  sub print_login { Line 728  sub print_login {
 sub login_choices {  sub login_choices {
     my %choices =      my %choices =
         &Apache::lonlocal::texthash (          &Apache::lonlocal::texthash (
             coursecatalog => 'Display Course/Community Catalog link?',              coursecatalog => 'Display Course Catalog link?',
             adminmail => "Display Administrator's E-mail Address?",              adminmail => "Display Administrator's E-mail Address?",
             newuser   => "Link to create a user account",              newuser   => "Link to create a user account",
             img => "Header",              img => "Header",
Line 763  sub print_rolecolors { Line 763  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 780  sub print_rolecolors { Line 781  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 798  sub print_rolecolors { Line 803  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 826  sub display_color_options { Line 835  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 840  sub display_color_options { Line 849  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>';
       $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 1126  sub print_quotas { Line 1149  sub print_quotas {
     my ($css_class,%titles);      my ($css_class,%titles);
     if ($context eq 'requestcourses') {      if ($context eq 'requestcourses') {
         @usertools = ('official','unofficial','community');          @usertools = ('official','unofficial','community');
         @options =('norequest','approval','autolimit','validate');          @options =('norequest','approval','validate','autolimit');
         %validations = &Apache::lonnet::auto_courserequest_checks($dom);          %validations = &Apache::lonnet::auto_courserequest_checks($dom);
         %titles = &courserequest_titles();          %titles = &courserequest_titles();
     } else {      } else {
Line 1201  sub print_quotas { Line 1224  sub print_quotas {
                                                 $item.'_limit_'.$type.'" size="1" '.                                                  $item.'_limit_'.$type.'" size="1" '.
                                                 'value="'.$currlimit.'" />';                                                  'value="'.$currlimit.'" />';
                             }                              }
                               $cell{$item} .= '</span>&nbsp; ';
                             if ($option eq 'autolimit') {                              if ($option eq 'autolimit') {
                                 $cell{$item} .= $titles{'unlimited'};                                  $cell{$item} .= $titles{'unlimited'}
                             }                              }
                             $cell{$item} .= '</span>&nbsp; ';  
                         }                          }
                     } else {                      } else {
                         my $checked = 'checked="checked" ';                          my $checked = 'checked="checked" ';
Line 1226  sub print_quotas { Line 1249  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 1309  sub print_quotas { Line 1332  sub print_quotas {
                 }                  }
                 $defcell{$item} .= '</span>&nbsp; ';                  $defcell{$item} .= '</span>&nbsp; ';
                 if ($option eq 'autolimit') {                  if ($option eq 'autolimit') {
                     $defcell{$item} .= $titles{'unlimited'};                      $defcell{$item} .= $titles{'unlimited'}
                 }                  }
             }              }
         } else {          } else {
Line 1332  sub print_quotas { Line 1355  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 1348  sub print_quotas { Line 1371  sub print_quotas {
     $datatable .= '<tr'.$css_class.'>'.      $datatable .= '<tr'.$css_class.'>'.
                   '<td>'.&mt('LON-CAPA Advanced Users').' ';                    '<td>'.&mt('LON-CAPA Advanced Users').' ';
     if ($context eq 'requestcourses') {      if ($context eq 'requestcourses') {
         $datatable .= &mt('(overrides affiliation, if set)').          $datatable .= &mt('(overrides affiliation, if set)');
                       '</td>'.      } else {
                       '<td class="LC_left_item">'.          $datatable .= &mt('(overrides affiliation, if checked)');
                       '<table><tr>';      }
       $datatable .= '</td>'.
                     '<td class="LC_left_item" colspan="2">';
       if ($context eq 'requestcourses') {
           $datatable .= '<table><tr>';
     } else {      } else {
         $datatable .= &mt('(overrides affiliation, if checked)').          $datatable .= '<br />';
                       '</td>'.  
                       '<td class="LC_left_item" colspan="2">'.  
                       '<br />';  
     }      }
     my %advcell;      my %advcell;
     foreach my $item (@usertools) {      foreach my $item (@usertools) {
Line 1412  sub print_quotas { Line 1436  sub print_quotas {
                 }                  }
                 $advcell{$item} .= '</span>&nbsp; ';                  $advcell{$item} .= '</span>&nbsp; ';
                 if ($option eq 'autolimit') {                  if ($option eq 'autolimit') {
                     $advcell{$item} .= $titles{'unlimited'};                      $advcell{$item} .= $titles{'unlimited'}
                 }                  }
             }              }
         } else {          } else {
Line 1435  sub print_quotas { Line 1459  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 1873  sub courserequest_titles { Line 1897  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 2439  sub print_coursecategories { Line 2463  sub print_coursecategories {
         my $toggle_cats_dom = ' checked="checked" ';          my $toggle_cats_dom = ' checked="checked" ';
         my $can_cat_crs = ' ';          my $can_cat_crs = ' ';
         my $can_cat_dom = ' checked="checked" ';          my $can_cat_dom = ' checked="checked" ';
         my $toggle_catscomm_comm = ' ';  
         my $toggle_catscomm_dom = ' checked="checked" ';  
         my $can_catcomm_comm = ' ';  
         my $can_catcomm_dom = ' checked="checked" ';  
   
         if (ref($settings) eq 'HASH') {          if (ref($settings) eq 'HASH') {
             if ($settings->{'togglecats'} eq 'crs') {              if ($settings->{'togglecats'} eq 'crs') {
                 $toggle_cats_crs = $toggle_cats_dom;                  $toggle_cats_crs = $toggle_cats_dom;
Line 2453  sub print_coursecategories { Line 2472  sub print_coursecategories {
                 $can_cat_crs = $can_cat_dom;                  $can_cat_crs = $can_cat_dom;
                 $can_cat_dom = ' ';                  $can_cat_dom = ' ';
             }              }
             if ($settings->{'togglecatscomm'} eq 'comm') {  
                 $toggle_catscomm_comm = $toggle_catscomm_dom;  
                 $toggle_catscomm_dom = ' ';  
             }  
             if ($settings->{'categorizecomm'} eq 'comm') {  
                 $can_catcomm_comm = $can_catcomm_dom;  
                 $can_catcomm_dom = ' ';  
             }  
         }          }
         my %title = &Apache::lonlocal::texthash (          my %title = &Apache::lonlocal::texthash (
                      togglecats     => 'Show/Hide a course in catalog',                       togglecats => 'Show/Hide a course in the catalog',
                      togglecatscomm => 'Show/Hide a community in catalog',                       categorize    => 'Assign a category to a course',
                      categorize     => 'Assign a category to a course',  
                      categorizecomm => 'Assign a category to a community',  
                     );                      );
         my %level = &Apache::lonlocal::texthash (          my %level = &Apache::lonlocal::texthash (
                      dom => 'Set in Domain',                       dom => 'Set in "Modify Course" (Domain)',
                      crs => 'Set in Course',                          crs => 'Set in "Modify Parameters" (Course)',   
                      comm => 'Set in Community',  
                     );                      );
         $datatable = '<tr class="LC_odd_row">'.          $datatable = '<tr class="LC_odd_row">'.
                   '<td>'.$title{'togglecats'}.'</td>'.                    '<td>'.$title{'togglecats'}.'</td>'.
Line 2487  sub print_coursecategories { Line 2495  sub print_coursecategories {
                   $can_cat_dom.' value="dom" />'.$level{'dom'}.'</label>&nbsp;'.                    $can_cat_dom.' value="dom" />'.$level{'dom'}.'</label>&nbsp;'.
                   '<label><input type="radio" name="categorize"'.                    '<label><input type="radio" name="categorize"'.
                   $can_cat_crs.'value="crs" />'.$level{'crs'}.'</label></span></td>'.                    $can_cat_crs.'value="crs" />'.$level{'crs'}.'</label></span></td>'.
                   '</tr><tr class="LC_odd_row">'.  
                   '<td>'.$title{'togglecatscomm'}.'</td>'.  
                   '<td class="LC_right_item"><span class="LC_nobreak"><label>'.  
                   '<input type="radio" name="togglecatscomm"'.  
                   $toggle_catscomm_dom.' value="dom" />'.$level{'dom'}.'</label>&nbsp;'.  
                   '<label><input type="radio" name="togglecatscomm"'.  
                   $toggle_catscomm_comm.' value="comm" />'.$level{'comm'}.'</label></span></td>'.  
                   '</tr><tr>'.  
                   '<td>'.$title{'categorizecomm'}.'</td>'.  
                   '<td class="LC_right_item"><span class="LC_nobreak">'.  
                   '<label><input type="radio" name="categorizecomm"'.  
                   $can_catcomm_dom.' value="dom" />'.$level{'dom'}.'</label>&nbsp;'.  
                   '<label><input type="radio" name="categorizecomm"'.  
                   $can_catcomm_comm.'value="comm" />'.$level{'comm'}.'</label></span></td>'.  
                   '</tr>';                    '</tr>';
         $$rowtotal += 4;          $$rowtotal += 2;
     } else {      } else {
         my $css_class;          my $css_class;
         my $itemcount = 1;          my $itemcount = 1;
Line 2524  sub print_coursecategories { Line 2518  sub print_coursecategories {
                 if (ref($cats[0]) eq 'ARRAY') {                  if (ref($cats[0]) eq 'ARRAY') {
                     my $numtop = @{$cats[0]};                      my $numtop = @{$cats[0]};
                     my $maxnum = $numtop;                      my $maxnum = $numtop;
                     my %default_names = (                      if ((!grep(/^instcode$/,@{$cats[0]})) || ($cathash->{'instcode::0'} eq '')) {
                           instcode    => &mt('Official courses'),  
                           communities => &mt('Communities'),  
                     );  
   
                     if ((!grep(/^instcode$/,@{$cats[0]})) ||  
                         ($cathash->{'instcode::0'} eq '') ||  
                         (!grep(/^communities$/,@{$cats[0]})) ||  
                         ($cathash->{'communities::0'} eq '')) {  
                         $maxnum ++;                          $maxnum ++;
                     }                      }
                     my $lastidx;                      my $lastidx;
Line 2553  sub print_coursecategories { Line 2539  sub print_coursecategories {
                             $datatable .= '<option value="'.$k.'"'.$selstr.'>'.$vpos.'</option>';                              $datatable .= '<option value="'.$k.'"'.$selstr.'>'.$vpos.'</option>';
                         }                          }
                         $datatable .= '</select></td><td>';                          $datatable .= '</select></td><td>';
                         if ($parent eq 'instcode' || $parent eq 'communities') {                          if ($parent eq 'instcode') {
                             $datatable .=  '<span class="LC_nobreak">'.                              $datatable .=  '<span class="LC_nobreak">'.&mt('Official courses')
                                            .$default_names{$parent}.'</span>';                                             .'</span><br /><span class="LC_nobreak">('
                             if ($parent eq 'instcode') {                                             .&mt('with institutional codes').')</span></td>'
                                 $datatable .= '<br /><span class="LC_nobreak">('                                             .'<td'.$colattrib.'><span class="LC_nobreak"><label><input type="radio" name="instcode" value="1" checked="checked" />'
                                               .&mt('with institutional codes')                                              .&mt('Display').'</label>&nbsp;'
                                               .')</span></td><td'.$colattrib.'>';                                              .'<label><input type="radio" name="instcode" value="0" />'
                             } else {                                              .&mt('Do not display').'</label></span></td>';
                                 $datatable .= '<table><tr><td>';  
                             }  
                             $datatable .= '<span class="LC_nobreak">'  
                                           .'<label><input type="radio" name="'  
                                           .$parent.'" value="1" checked="checked" />'  
                                           .&mt('Display').'</label>';  
                             if ($parent eq 'instcode') {  
                                 $datatable .= '&nbsp;';  
                             } else {  
                                 $datatable .= '</span></td></tr><tr><td>'  
                                               .'<span class="LC_nobreak">';  
                             }  
                             $datatable .= '<label><input type="radio" name="'  
                                           .$parent.'" value="0" />'  
                                           .&mt('Do not display').'</label></span>';  
                             if ($parent eq 'communities') {  
                                 $datatable .= '</td></tr></table>';  
                             }  
                             $datatable .= '</td>';  
                         } else {                          } else {
                             $datatable .= $parent                              $datatable .= $parent
                                           .'&nbsp;<label><input type="checkbox" name="deletecategory" '                                            .'&nbsp;<label><input type="checkbox" name="deletecategory" '
Line 2607  sub print_coursecategories { Line 2574  sub print_coursecategories {
                                   .'<input type="text" size="20" name="addcategory_name" value="" /></td>'                                    .'<input type="text" size="20" name="addcategory_name" value="" /></td>'
                                   .'</tr>'."\n";                                    .'</tr>'."\n";
                     $itemcount ++;                      $itemcount ++;
                     foreach my $default ('instcode','communities') {                      if ((!grep(/^instcode$/,@{$cats[0]})) || ($cathash->{'instcode::0'} eq '')) {
                         if ((!grep(/^\Q$default\E$/,@{$cats[0]})) || ($cathash->{$default.'::0'} eq '')) {                          $css_class = $itemcount%2?' class="LC_odd_row"':'';
                             $css_class = $itemcount%2?' class="LC_odd_row"':'';                          my $chgstr = ' onchange="javascript:reorderCats(this.form,'."'','instcode_pos','$lastidx'".');"';
                             my $chgstr = ' onchange="javascript:reorderCats(this.form,'."'','$default"."_pos','$lastidx'".');"';                          $datatable .= '<tr><td colspan="'.$maxdepth.'" class="LC_row_separator"></td></tr><tr '.$css_class.'><td>'.
                             $datatable .= '<tr><td colspan="'.$maxdepth.'" class="LC_row_separator"></td></tr><tr '.$css_class.'><td>'.                                        '<span class="LC_nobreak"><select name="instcode_pos"'.$chgstr.'>';
                                           '<span class="LC_nobreak"><select name="'.$default.'_pos"'.$chgstr.'>';                          for (my $k=0; $k<=$maxnum; $k++) {
                             for (my $k=0; $k<=$maxnum; $k++) {                              my $vpos = $k+1;
                                 my $vpos = $k+1;                              my $selstr;
                                 my $selstr;                              if ($k == $maxnum) {
                                 if ($k == $maxnum) {                                  $selstr = ' selected="selected" ';
                                     $selstr = ' selected="selected" ';  
                                 }  
                                 $datatable .= '<option value="'.$k.'"'.$selstr.'>'.$vpos.'</option>';  
                             }                              }
                             $datatable .= '</select></span></td>'.                              $datatable .= '<option value="'.$k.'"'.$selstr.'>'.$vpos.'</option>';
                                           '<td><span class="LC_nobreak">'.  
                                           $default_names{$default}.'</span>';  
                             if ($default eq 'instcode') {  
                                 $datatable .= '<br /><span class="LC_nobreak">('  
                                               .&mt('with institutional codes').')</span>';  
                             }  
                             $datatable .= '</td>'  
                                           .'<td><span class="LC_nobreak"><label><input type="radio" name="'.$default.'" value="1" />'  
                                           .&mt('Display').'</label>&nbsp;'  
                                           .'<label><input type="radio" name="'.$default.'" value="0" checked="checked"/>'  
                                           .&mt('Do not display').'</label></span></td></tr>';  
                         }                          }
                           $datatable .= '</select></span></td><td><span class="LC_nobreak">'
                                         .&mt('Official courses').'</span>'.'<br /><span class="LC_nobreak">('
                                         .&mt('with institutional codes').')</span></td>'
                                         .'<td><span class="LC_nobreak"><label><input type="radio" name="instcode" value="1" />'
                                         .&mt('Display').'</label>&nbsp;'
                                         .'<label><input type="radio" name="instcode" value="0" checked="checked"/>'
                                         .&mt('Do not display').'</label></span></td></tr>';
                     }                      }
                 }                  }
             } else {              } else {
Line 2697  sub print_serverstatuses { Line 2657  sub print_serverstatuses {
 sub serverstatus_pages {  sub serverstatus_pages {
     return ('userstatus','lonstatus','loncron','server-status','codeversions',      return ('userstatus','lonstatus','loncron','server-status','codeversions',
             'clusterstatus','metadata_keywords','metadata_harvest',              'clusterstatus','metadata_keywords','metadata_harvest',
             'takeoffline','takeonline','showenv','toggledebug');              'takeoffline','takeonline','showenv');
 }  }
   
 sub coursecategories_javascript {  sub coursecategories_javascript {
Line 2722  sub coursecategories_javascript { Line 2682  sub coursecategories_javascript {
         $jstext  = '    var categories = Array(1);'."\n".          $jstext  = '    var categories = Array(1);'."\n".
                    '    categories[0] = Array("instcode_pos");'."\n";                      '    categories[0] = Array("instcode_pos");'."\n"; 
     }      }
     my $instcode_reserved = &mt('The name: "instcode" 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');  
     $output = <<"ENDSCRIPT";      $output = <<"ENDSCRIPT";
 <script type="text/javascript">  <script type="text/javascript">
 // <![CDATA[  
 function reorderCats(form,parent,item,idx) {  function reorderCats(form,parent,item,idx) {
     var changedVal;      var changedVal;
 $jstext  $jstext
Line 2784  $jstext Line 2740  $jstext
     }      }
     return;      return;
 }  }
   
 function categoryCheck(form) {  
     if (form.elements['addcategory_name'].value == 'instcode') {  
         alert('$instcode_reserved\\n$choose_again');  
         return false;  
     }  
     if (form.elements['addcategory_name'].value == 'communities') {  
         alert('$communities_reserved\\n$choose_again');  
         return false;  
     }  
     return true;  
 }  
   
 // ]]>  
 </script>  </script>
   
 ENDSCRIPT  ENDSCRIPT
Line 2806  ENDSCRIPT Line 2748  ENDSCRIPT
   
 sub initialize_categories {  sub initialize_categories {
     my ($itemcount) = @_;      my ($itemcount) = @_;
     my ($datatable,$css_class,$chgstr);      my $datatable;
     my %default_names = (      my $css_class = $itemcount%2?' class="LC_odd_row"':'';
                       instcode    => 'Official courses (with institutional codes)',      my $chgstr = ' onchange="javascript:reorderCats(this.form,'."'','instcode_pos','0'".');"';
                       communities => 'Communities',  
                         );      $datatable = '<tr '.$css_class.'><td><span class="LC_nobreak">'
     my $select0 = ' selected="selected"';                   .'<select name="instcode_pos"><option value="0" selected="selected">1</option>'
     my $select1 = '';                   .'<option value="1">2</option></select>&nbsp;'
     foreach my $default ('instcode','communities') {                   .&mt('Official courses (with institutional codes)')
         $css_class = $itemcount%2?' class="LC_odd_row"':'';                   .'</span></td><td><span class="LC_nobreak">'
         $chgstr = ' onchange="javascript:reorderCats(this.form,'."'',$default"."_pos','0'".');"';                   .'<label><input type="radio" name="instcode" value="1" checked="checked" />'
         if ($default eq 'communities') {                   .&mt('Display').'</label>&nbsp;<label>'
             $select1 = $select0;                   .'<input type="radio" name="instcode" value="0" />'.&mt('Do not display')
             $select0 = '';  
         }  
         $datatable .= '<tr '.$css_class.'><td><span class="LC_nobreak">'  
                      .'<select name="'.$default.'_pos">'  
                      .'<option value="0"'.$select0.'>1</option>'  
                      .'<option value="1"'.$select1.'>2</option>'  
                      .'<option value="2">3</option></select>&nbsp;'  
                      .$default_names{$default}  
                      .'</span></td><td><span class="LC_nobreak">'  
                      .'<label><input type="radio" name="'.$default.'" value="1" checked="checked" />'  
                      .&mt('Display').'</label>&nbsp;<label>'  
                      .'<input type="radio" name="'.$default.'" value="0" />'.&mt('Do not display')  
                  .'</label></span></td></tr>';                   .'</label></span></td></tr>';
         $itemcount ++;      $itemcount ++;
     }  
     $css_class = $itemcount%2?' class="LC_odd_row"':'';      $css_class = $itemcount%2?' class="LC_odd_row"':'';
     $chgstr = ' onchange="javascript:reorderCats(this.form,'."'','addcategory_pos','0'".');"';      $chgstr = ' onchange="javascript:reorderCats(this.form,'."'','addcategory_pos','0'".');"';
     $datatable .= '<tr '.$css_class.'><td><span class="LC_nobreak">'      $datatable .= '<tr '.$css_class.'><td><span class="LC_nobreak">'
                   .'<select name="addcategory_pos"'.$chgstr.'>'                    .'<select name="addcategory_pos"'.$chgstr.'><option value="0">1</option>'
                   .'<option value="0">1</option>'                    .'<option value="1" selected="selected">2</option></select>&nbsp;'
                   .'<option value="1">2</option>'  
                   .'<option value="2" selected="selected">3</option></select>&nbsp;'  
                   .&mt('Add category').'</td><td>'.&mt('Name:')                    .&mt('Add category').'</td><td>'.&mt('Name:')
                   .'&nbsp;<input type="text" size="20" name="addcategory_name" value="" /></td></tr>';                    .'&nbsp;<input type="text" size="20" name="addcategory_name" value="" /></td></tr>';
     return $datatable;      return $datatable;
Line 3231  sub color_font_choices { Line 3158  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 3297  sub modify_colors { Line 3225  sub modify_colors {
             @bgs = ('pgbg','tabbg','sidebg');               @bgs = ('pgbg','tabbg','sidebg'); 
         }          }
         $confhash->{$role}{'font'} = $env{'form.'.$role.'_font'};          $confhash->{$role}{'font'} = $env{'form.'.$role.'_font'};
    $confhash->{$role}{'fontmenu'} = $env{'form.'.$role.'_fontmenu'};
         foreach my $item (@bgs,@links,@logintext) {          foreach my $item (@bgs,@links,@logintext) {
             $confhash->{$role}{$item} = $env{'form.'.$role.'_'.$item};              $confhash->{$role}{$item} = $env{'form.'.$role.'_'.$item};
         }          }
Line 3410  sub modify_colors { Line 3339  sub modify_colors {
                         $changes{$role}{'font'} = 1;                          $changes{$role}{'font'} = 1;
                     }                      }
                 }                  }
                   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 3850  sub modify_quotas { Line 3788  sub modify_quotas {
     }      }
     if ($context eq 'requestcourses') {      if ($context eq 'requestcourses') {
         @usertools = ('official','unofficial','community');          @usertools = ('official','unofficial','community');
         @options =('norequest','approval','autolimit','validate');          @options =('norequest','approval','validate','autolimit');
         %validations = &Apache::lonnet::auto_courserequest_checks($dom);          %validations = &Apache::lonnet::auto_courserequest_checks($dom);
         %titles = &courserequest_titles();          %titles = &courserequest_titles();
         $toolregexp = join('|',@usertools);          $toolregexp = join('|',@usertools);
Line 3905  sub modify_quotas { Line 3843  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 4034  sub modify_quotas { Line 3972  sub modify_quotas {
                                                           $env{'user.domain'},                                                            $env{'user.domain'},
                                                           $item,'reload',$context);                                                            $item,'reload',$context);
                     if ($context eq 'requestcourses') {                      if ($context eq 'requestcourses') {
                         if ($env{'environment.canrequest.'.$item} ne $newacc) {                          if ($env{'environment.crsrequest.'.$item} ne $newacc) {
                             $newenv{'environment.canrequest.'.$item} = $newacc;                              $newenv{'environment.crsrequest.'.$item} = $newacc;
                         }                          }
                     } else {                      } else {
                         if ($env{'environment.availabletools.'.$item} ne $newacc) {                           if ($env{'environment.availabletools.'.$item} ne $newacc) { 
Line 5284  sub modify_coursecategories { Line 5222  sub modify_coursecategories {
             $changes{'categorize'} = 1;              $changes{'categorize'} = 1;
             $domconfig{'coursecategories'}{'categorize'} = $env{'form.categorize'};              $domconfig{'coursecategories'}{'categorize'} = $env{'form.categorize'};
         }          }
         if ($domconfig{'coursecategories'}{'togglecatscomm'} ne $env{'form.togglecatscomm'}) {  
             $changes{'togglecatscomm'} = 1;  
             $domconfig{'coursecategories'}{'togglecatscomm'} = $env{'form.togglecatscomm'};  
         }  
         if ($domconfig{'coursecategories'}{'categorizecomm'} ne $env{'form.categorizecomm'}) {  
             $changes{'categorizecomm'} = 1;  
             $domconfig{'coursecategories'}{'categorizecomm'} = $env{'form.categorizecomm'};  
         }  
     } else {      } else {
         $changes{'togglecats'} = 1;          $changes{'togglecats'} = 1;
         $changes{'categorize'} = 1;          $changes{'categorize'} = 1;
         $changes{'togglecatscomm'} = 1;  
         $changes{'categorizecomm'} = 1;  
         $domconfig{'coursecategories'} = {          $domconfig{'coursecategories'} = {
                                              togglecats => $env{'form.togglecats'},                                               togglecats => $env{'form.togglecats'},
                                              categorize => $env{'form.categorize'},                                               categorize => $env{'form.categorize'},
                                              togglecatscomm => $env{'form.togglecatscomm'},  
                                              categorizecomm => $env{'form.categorizecomm'},  
                                          };                                           };
     }      }
     if (ref($cathash) eq 'HASH') {      if (ref($cathash) eq 'HASH') {
         if (($domconfig{'coursecategories'}{'cats'}{'instcode::0'} ne '')  && ($env{'form.instcode'} == 0)) {          if (($domconfig{'coursecategories'}{'cats'}{'instcode::0'} ne '')  && ($env{'form.instcode'} == 0)) {
             push (@deletecategory,'instcode::0');              push (@deletecategory,'instcode::0');
         }          }
         if (($domconfig{'coursecategories'}{'cats'}{'communities::0'} ne '')  && ($env{'form.communities'} == 0)) {  
             push(@deletecategory,'communities::0');  
         }  
     }      }
     my (@predelcats,@predeltrails,%predelallitems,%sort_by_deltrail);      my (@predelcats,@predeltrails,%predelallitems,%sort_by_deltrail);
     if (ref($cathash) eq 'HASH') {      if (ref($cathash) eq 'HASH') {
Line 5360  sub modify_coursecategories { Line 5283  sub modify_coursecategories {
             $adds{$newitem} = 1;              $adds{$newitem} = 1;
         }          }
     }      }
     if ($env{'form.communities'} eq '1') {  
         if (ref($cathash) eq 'HASH') {  
             my $newitem = 'communities::0';  
             if ($cathash->{$newitem} eq '') {  
                 $domconfig{'coursecategories'}{'cats'}{$newitem} = $env{'form.communities_pos'};  
                 $adds{$newitem} = 1;  
             }  
         } else {  
             my $newitem = 'communities::0';  
             $domconfig{'coursecategories'}{'cats'}{$newitem} = $env{'form.communities_pos'};  
             $adds{$newitem} = 1;  
         }  
     }  
     if ($env{'form.addcategory_name'} ne '') {      if ($env{'form.addcategory_name'} ne '') {
         if (($env{'form.addcategory_name'} ne 'instcode') &&          my $newitem = &escape($env{'form.addcategory_name'}).'::0';
             ($env{'form.addcategory_name'} ne 'communities')) {          $domconfig{'coursecategories'}{'cats'}{$newitem} = $env{'form.addcategory_pos'};
             my $newitem = &escape($env{'form.addcategory_name'}).'::0';          $adds{$newitem} = 1;
             $domconfig{'coursecategories'}{'cats'}{$newitem} = $env{'form.addcategory_pos'};  
             $adds{$newitem} = 1;  
         }  
     }      }
     my $putresult;      my $putresult;
     if ((keys(%deletions) > 0) || (keys(%reorderings) > 0) || (keys(%adds) > 0)) {      if ((keys(%deletions) > 0) || (keys(%reorderings) > 0) || (keys(%adds) > 0)) {
Line 5416  sub modify_coursecategories { Line 5323  sub modify_coursecategories {
         $putresult = &Apache::lonnet::put_dom('configuration',\%domconfig,$dom);          $putresult = &Apache::lonnet::put_dom('configuration',\%domconfig,$dom);
         if ($putresult eq 'ok') {          if ($putresult eq 'ok') {
             my %title = (              my %title = (
                          togglecats     => 'Show/Hide a course in catalog',                           togglecats  => 'Show/Hide a course in the catalog',
                          categorize     => 'Assign a category to a course',                           categorize     => 'Category assigned to course',
                          togglecatscomm => 'Show/Hide a community in catalog',  
                          categorizecomm => 'Assign a category to a community',  
                         );                          );
             my %level = (              my %level = (
                          dom  => 'set in Domain ("Modify Course/Community")',                           dom => 'set from "Modify Course" (Domain)',
                          crs  => 'set in Course ("Course Configuration")',                           crs => 'set from "Parameters" (Course)',
                          comm => 'set in Community ("Community Configuration")',  
                         );                          );
             $resulttext = &mt('Changes made:').'<ul>';              $resulttext = &mt('Changes made:').'<ul>';
             if ($changes{'togglecats'}) {              if ($changes{'togglecats'}) {
Line 5433  sub modify_coursecategories { Line 5337  sub modify_coursecategories {
             if ($changes{'categorize'}) {              if ($changes{'categorize'}) {
                 $resulttext .= '<li>'.&mt("$title{'categorize'} $level{$env{'form.categorize'}}").'</li>';                  $resulttext .= '<li>'.&mt("$title{'categorize'} $level{$env{'form.categorize'}}").'</li>';
             }              }
             if ($changes{'togglecatscomm'}) {  
                 $resulttext .= '<li>'.&mt("$title{'togglecatscomm'} $level{$env{'form.togglecatscomm'}}").'</li>';  
             }  
             if ($changes{'categorizecomm'}) {  
                 $resulttext .= '<li>'.&mt("$title{'categorizecomm'} $level{$env{'form.categorizecomm'}}").'</li>';  
             }  
             if ((keys(%deletions) > 0) || (keys(%reorderings) > 0) || (keys(%adds) > 0)) {              if ((keys(%deletions) > 0) || (keys(%reorderings) > 0) || (keys(%adds) > 0)) {
                 my $cathash;                  my $cathash;
                 if (ref($domconfig{'coursecategories'}) eq 'HASH') {                  if (ref($domconfig{'coursecategories'}) eq 'HASH') {
Line 5488  sub modify_coursecategories { Line 5386  sub modify_coursecategories {
                           &mt('An error occurred: [_1]',$putresult).'</span>';                            &mt('An error occurred: [_1]',$putresult).'</span>';
         }          }
     } else {      } else {
         $resulttext = &mt('No changes made to course and community categories');          $resulttext = &mt('No changes made to course categories');
     }      }
     return $resulttext;      return $resulttext;
 }  }

Removed from v.1.102.2.6  
changed lines
  Added in v.1.106


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