Diff for /loncom/interface/coursecatalog.pm between versions 1.45 and 1.46

version 1.45, 2009/02/07 18:06:19 version 1.46, 2009/02/07 18:15:44
Line 90  sub handler { Line 90  sub handler {
     if ($env{'form.coursenum'} ne '' && &user_is_known()) {      if ($env{'form.coursenum'} ne '' && &user_is_known()) {
         &course_details($r,$codedom,$formname,$domdesc,\@trails,\%allitems);          &course_details($r,$codedom,$formname,$domdesc,\@trails,\%allitems);
     } else {      } else {
         my ($catlinks,$has_subcats) = &category_breadcrumbs($codedom,@cats);          my ($catlinks,$has_subcats,$selitem) = &category_breadcrumbs($codedom,@cats);
         my $catjs = <<"ENDSCRIPT";          my $catjs = <<"ENDSCRIPT";
   
 function setCatDepth(depth) {  function setCatDepth(depth) {
Line 123  ENDSCRIPT Line 123  ENDSCRIPT
             }              }
         } else {          } else {
             my (%add_entries);              my (%add_entries);
               if ($selitem) {
                   $catjs .= <<ENDJS;
   function check_selected() {
       if (document.coursecats.$selitem.options[document.coursecats.$selitem.selectedIndex].value == "") {
           alert('Choose a subcategory to display');
           return false;
       }
   }
   ENDJS
               }
             $catjs = '<script type="text/javascript">'."\n".$catjs."\n".'</script>';              $catjs = '<script type="text/javascript">'."\n".$catjs."\n".'</script>';
             &cat_header($r,$codedom,$catjs,\%add_entries,$catlinks);              &cat_header($r,$codedom,$catjs,\%add_entries,$catlinks);
             if ($env{'form.currcat_0'} ne '') {              if ($env{'form.currcat_0'} ne '') {
Line 392  sub cat_header { Line 402  sub cat_header {
               '<table border="0"><tr><td><b>'.&mt('Domain:').'</b></td><td>'.                '<table border="0"><tr><td><b>'.&mt('Domain:').'</b></td><td>'.
               &Apache::loncommon::select_dom_form($codedom,'showdom','',1).                &Apache::loncommon::select_dom_form($codedom,'showdom','',1).
       '&nbsp;<input type="submit" name="godom" value="'.&mt('Change').'" /></td></tr></table></form>'.        '&nbsp;<input type="submit" name="godom" value="'.&mt('Change').'" /></td></tr></table></form>'.
       '<form name="coursecats" method="post" action="/adm/coursecatalog">'.        '<form name="coursecats" method="post" action="/adm/coursecatalog"'.
                 ' onsubmit="check_selected()">'.
               '<table border="0"><tr>'.$catlinks.'</tr></table></form>');                '<table border="0"><tr>'.$catlinks.'</tr></table></form>');
     return;      return;
 }  }
Line 404  sub category_breadcrumbs { Line 415  sub category_breadcrumbs {
     my $currcat_str = '<input type="hidden" name="catalog_maxdepth" value="'.$deeper.'" /><input type="hidden" name="showdom" value="'.$dom.'" />';      my $currcat_str = '<input type="hidden" name="catalog_maxdepth" value="'.$deeper.'" /><input type="hidden" name="showdom" value="'.$dom.'" />';
     my $catlinks = '<td valign="top"><b>'.&mt('Catalog:').'</b></td><td><table><tr>';      my $catlinks = '<td valign="top"><b>'.&mt('Catalog:').'</b></td><td><table><tr>';
     my $has_subcats;      my $has_subcats;
       my $selitem;
     for (my $i=0; $i<$deeper; $i++) {      for (my $i=0; $i<$deeper; $i++) {
         $currcat_str .= '<input type="hidden" name="currcat_'.$i.'" value="'.$env{'form.currcat_'.$i}.'" />';          $currcat_str .= '<input type="hidden" name="currcat_'.$i.'" value="'.$env{'form.currcat_'.$i}.'" />';
         my ($cattitle,$shallower);          my ($cattitle,$shallower);
         if ($i == 0) {          if ($i == 0) {
             $cattitle = &mt('Main Categories');              if (ref($cats[0]) eq 'ARRAY') {
                   if (@{$cats[0]} > 1) {
                       $cattitle = &mt('Main Categories');
                   }
               }
         } else {          } else {
             $shallower = $i-1;              $shallower = $i-1;
             my ($cat,$container,$depth) = map { &unescape($_); } split(/:/,$env{'form.currcat_'.$shallower});              my ($cat,$container,$depth) = map { &unescape($_); } split(/:/,$env{'form.currcat_'.$shallower});
             $cattitle = $cat;              $cattitle = $cat;
         }          }
         $catlinks .= '<td valign="top"><a href="javascript:setCatDepth('."'$shallower'".')">'.$cattitle.'</a>'.$crumbsymbol.'</td>';          if ($cattitle ne '') {
               $catlinks .= '<td valign="top"><a href="javascript:setCatDepth('."'$shallower'".')">'.$cattitle.'</a>'.$crumbsymbol.'</td>';
           }
     }      }
     if ($deeper == 0) {      if ($deeper == 0) {
         $catlinks .= '<td>'.&mt('Main Categories').':&nbsp;';          $catlinks .= '<td>';
         if (ref($cats[0]) eq 'ARRAY') {          if (ref($cats[0]) eq 'ARRAY') {
             if ((@{$cats[0]} == 1) && ($cats[0][0] eq 'instcode')) {              if ((@{$cats[0]} == 1) && (@cats == 1)) {
                 $catlinks .= &mt('Official courses (with institutional codes)').                  if ($cats[0][0] eq 'instcode') {
                              '<input type="hidden" name="currcat_0" value="instcode::0" />';                      $catlinks .= &mt('Official courses (with institutional codes)').
                 $env{'form.currcat_0'} = 'instcode::0';                                   '<input type="hidden" name="currcat_0" value="instcode::0" />';
                       $env{'form.currcat_0'} = 'instcode::0';
                   } else {
                       my $name = $cats[0][0];
                       my $item = &escape($name).'::0';
                       $catlinks .= $name.
                                '<input type="hidden" name="currcat_0" value="'.$item.'" />';
                       $env{'form.currcat_0'} = $item;
                   }
             } else {              } else {
                 $has_subcats = 1;                  $has_subcats = 1;
                 $catlinks .= '<select name="currcat_0">'."\n";                  my $buttontext = &mt('Show subcategories');
                   $selitem = 'currcat_0';
                   $catlinks .= '<select name="'.$selitem.'">'."\n";
                 if (@{$cats[0]} > 1) {                  if (@{$cats[0]} > 1) {
                     my $selstr;                      $catlinks .= '<option value="" selected="selected">'.&mt('Select').'</option>'."\n";
                     if ($env{'form.currcat_0'} eq '') {                      $buttontext = &mt('Pick main category');
                         $selstr = ' selected="selected" ';  
                     }  
                     $catlinks .= '<option value=""  selected="selected">'.&mt('Select').'</option>'."\n";  
                 }                  }
                 for (my $i=0; $i<@{$cats[0]}; $i++) {                  for (my $i=0; $i<@{$cats[0]}; $i++) {
                     my $name = $cats[0][$i];                      my $name = $cats[0][$i];
Line 445  sub category_breadcrumbs { Line 470  sub category_breadcrumbs {
                     $catlinks .= '</option>'."\n";                      $catlinks .= '</option>'."\n";
                 }                  }
                 $catlinks .= '</select>'."\n".                  $catlinks .= '</select>'."\n".
                              '&nbsp;<input type="submit" name="gocats" value="'.&mt('Change').'" />';                               '&nbsp;<input type="submit" name="gocats" value="'.
                                $buttontext.'" />';
             }              }
         } else {          } else {
             $catlinks .= &mt('Official courses (with institutional codes)').              $catlinks .= &mt('Official courses (with institutional codes)').
Line 465  sub category_breadcrumbs { Line 491  sub category_breadcrumbs {
         if ($cat eq 'instcode') {          if ($cat eq 'instcode') {
             $currcat = &mt('Official courses (with institutional codes)');              $currcat = &mt('Official courses (with institutional codes)');
         }          }
         $catlinks .= '<td>'.$currcat;          $catlinks .= '<td><b>'.$currcat.'</b>';
         if (ref($cats[$deeper]{$cat}) eq 'ARRAY') {          if (ref($cats[$deeper]{$cat}) eq 'ARRAY') {
             $has_subcats = 1;              $has_subcats = 1;
             my $selstr;              my $buttontext = &mt('Show subcategories');
             $catlinks .= ':&nbsp;<select name="currcat_'.$deeper.'">'.              $selitem = 'currcat_'.$deeper;
                          '<option value="" selected="selected">'.              $catlinks .= ':&nbsp;<select name="'.$selitem.'">';
                          &mt('Select').'</option>';              if (@{$cats[$deeper]{$cat}} > 1) {
                   $catlinks .= '<option value="" selected="selected">'.
                                &mt('Select').'</option>';
                   $buttontext = &mt('Pick subcategory');
               }
             for (my $k=0; $k<@{$cats[$deeper]{$cat}}; $k++) {              for (my $k=0; $k<@{$cats[$deeper]{$cat}}; $k++) {
                 my $name = $cats[$deeper]{$cat}[$k];                  my $name = $cats[$deeper]{$cat}[$k];
                 my $item = &escape($name).':'.&escape($cat).':'.$deeper;                  my $item = &escape($name).':'.&escape($cat).':'.$deeper;
                 $catlinks .= '<option value="'.$item.'">'.$name.'</option>'."\n";                  $catlinks .= '<option value="'.$item.'">'.$name.'</option>'."\n";
             }              }
             $catlinks .= '</select>'."\n".              $catlinks .= '</select>'."\n".
                          '&nbsp;<input type="submit" name="gocats" value="'.&mt('Change').'" />';                           '&nbsp;<input type="submit" name="gocats" value="'.
                            $buttontext.'" />';
           } elsif ($cat ne 'instcode') {
               $catlinks .= '&nbsp;'.&mt('(No subcategories)');
         }          }
     }      }
     $catlinks .= $currcat_str.'</td></tr></table></td>';      $catlinks .= $currcat_str.'</td></tr></table></td>';
     return ($catlinks,$has_subcats);      return ($catlinks,$has_subcats,$selitem);
 }  }
   
 sub get_depth_values {  sub get_depth_values {

Removed from v.1.45  
changed lines
  Added in v.1.46


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