Diff for /loncom/interface/coursecatalog.pm between versions 1.41 and 1.48.2.2

version 1.41, 2008/07/17 12:00:28 version 1.48.2.2, 2009/10/28 17:28:17
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);
               my ($currdepth,$deeper) = &get_depth_values();
               if ($selitem) {
                   my $alert = &mt('Choose a subcategory to display');
                   if (!$deeper) {
                       $alert = &mt('Choose a category to display');
                   }
                   $catjs .= <<ENDJS;
   function check_selected() {
       if (document.coursecats.$selitem.options[document.coursecats.$selitem.selectedIndex].value == "") {
           alert('$alert');
           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 '') {
                 $r->print('<form name="'.$formname.                  $r->print('<form name="'.$formname.
                           '" method="post" action="/adm/coursecatalog">'.                            '" method="post" action="/adm/coursecatalog">'.
                           &additional_filters($codedom,$has_subcats)."\n");                            &additional_filters($codedom,$has_subcats)."\n");
                 my ($currdepth,$deeper) = &get_depth_values();  
                 $r->print('<input type="hidden" name="catalog_maxdepth" value="'.                  $r->print('<input type="hidden" name="catalog_maxdepth" value="'.
                           $deeper.'" />'."\n");                            $deeper.'" />'."\n");
                 for (my $i=0; $i<$deeper; $i++) {                  for (my $i=0; $i<$deeper; $i++) {
Line 351  function setElements() { Line 365  function setElements() {
                   '<input type="hidden" name="numtitles" value="'.$numtitles.                    '<input type="hidden" name="numtitles" value="'.$numtitles.
                   '" /></form><br /><br />');                    '" /></form><br /><br />');
     } else {      } else {
           $js = '<script type"text/javascript">'."\n$catjs\n".'</script>';
         &cat_header($r,$codedom,$js,\%add_entries,$catlinks,$numtitles);          &cat_header($r,$codedom,$js,\%add_entries,$catlinks,$numtitles);
         my $cat_maxdepth = $env{'form.catalog_maxdepth'};          my $cat_maxdepth = $env{'form.catalog_maxdepth'};
         $r->print('<form name="'.$formname.'" method="post" action="/adm/coursecatalog">'.          $r->print('<form name="'.$formname.'" method="post" action="/adm/coursecatalog">'.
Line 387  sub cat_header { Line 402  sub cat_header {
           text=>"Select courses"});            text=>"Select courses"});
         $r->print(&Apache::lonhtmlcommon::breadcrumbs('Select courses'));          $r->print(&Apache::lonhtmlcommon::breadcrumbs('Select courses'));
     }      }
       my $onchange;
       unless (($env{'browser.interface'} eq 'textual') || ($env{'form.interface'} eq 'textual')) {
           $onchange = 'this.form.submit()';
       }
     $r->print('<form name="coursecatdom" method="post" action="/adm/coursecatalog">'.      $r->print('<form name="coursecatdom" method="post" action="/adm/coursecatalog">'.
               '<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,$onchange));
       '&nbsp;<input type="submit" name="godom" value="'.&mt('Change').'" /></td></tr></table></form>'.      if (!$onchange) {
       '<form name="coursecats" method="post" action="/adm/coursecatalog">'.     $r->print('&nbsp;<input type="submit" name="godom" value="'.&mt('Change').'" />');
       }
       $r->print('</td></tr></table></form>'.
         '<form name="coursecats" method="post" action="/adm/coursecatalog"'.
                 ' onsubmit="return check_selected();">'.
               '<table border="0"><tr>'.$catlinks.'</tr></table></form>');                '<table border="0"><tr>'.$catlinks.'</tr></table></form>');
     return;      return;
 }  }
   
 sub category_breadcrumbs {  sub category_breadcrumbs {
     my ($dom,@cats) = @_;      my ($dom,@cats) = @_;
       my $crumbsymbol = ' &#x25b6; ';
     my ($currdepth,$deeper) = &get_depth_values();      my ($currdepth,$deeper) = &get_depth_values();
     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>-&gt;</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 443  sub category_breadcrumbs { Line 481  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 463  sub category_breadcrumbs { Line 502  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 {
Line 810  sub construct_data_table { Line 856  sub construct_data_table {
             $output .=              $output .=
               '<th>'.&mt('Default Access Dates for Students').'</th>'.                '<th>'.&mt('Default Access Dates for Students').'</th>'.
               '<th>'.&mt('Student Counts').'</th>'.                '<th>'.&mt('Student Counts').'</th>'.
               '<th>'.&mt('Auto-enrollment of <br />registered students').'</th>';                '<th>'.&mt('Auto-enrollment of[_1]registered students','<br />').'</th>';
         } else {          } else {
             $output .= '<th>'.&mt('Details').'</th>';              $output .= '<th>'.&mt('Details').'</th>';
         }          }
Line 957  sub build_courseinfo_hash { Line 1003  sub build_courseinfo_hash {
                 }                  }
             }              }
             if ($startaccess) {              if ($startaccess) {
                 $accessdates .= &mt('<i>From:</i> ').$startaccess.'<br />';                  $accessdates .= '<i>'.&mt('From:[_1]','</i> '.$startaccess).'<br />';
             }              }
             if ($endaccess) {              if ($endaccess) {
                 $accessdates .= &mt('<i>To:</i> ').$endaccess.'<br />';                  $accessdates .= '<i>'.&mt('To:[_1]','</i> '.$endaccess).'<br />';
             }              }
             if (($selfenroll_types ne '') &&               if (($selfenroll_types ne '') && 
                 ($selfenroll_end > 0 && $selfenroll_end > $now)) {                  ($selfenroll_end > 0 && $selfenroll_end > $now)) {
Line 981  sub build_courseinfo_hash { Line 1027  sub build_courseinfo_hash {
                     if ($selfenroll_start_access || $selfenroll_end_access) {                      if ($selfenroll_start_access || $selfenroll_end_access) {
                         $accessdates .= '<br/><br /><i>'.&mt('Self-enrollers:').'</i><br />';                          $accessdates .= '<br/><br /><i>'.&mt('Self-enrollers:').'</i><br />';
                         if ($selfenroll_start_access) {                          if ($selfenroll_start_access) {
                             $accessdates .= &mt('<i>From:</i> ').$selfenroll_start_access.'<br />';                              $accessdates .= '<i>'.&mt('From:[_1]','</i> '.$selfenroll_start_access).'<br />';
                         }                          }
                         if ($selfenroll_end_access) {                          if ($selfenroll_end_access) {
                             $accessdates .= &mt('<i>To:</i> ').$selfenroll_end_access.'<br />';                              $accessdates .= '<i>'.&mt('To:[_1]','</i> '.$selfenroll_end_access).'<br />';
                         }                          }
                     }                      }
                 }                  }
Line 1019  sub count_students { Line 1065  sub count_students {
         $student_count{$data->[$idx{'status'}]} ++;          $student_count{$data->[$idx{'status'}]} ++;
     }      }
   
     my $countslist = &mt('[quant,_1,section]',$numsec).':<br />';      my $countslist = &mt('[quant,_1,section:,sections:,No sections]',$numsec).'<br />';
     foreach my $status ('Active','Future') {      foreach my $status ('Active','Future') {
         $countslist .= '<nobr>'.$status_title{$status}.': '.          $countslist .= '<span class="LC_nobreak">'.$status_title{$status}.': '.
                        $student_count{$status}.'</nobr><br />';                         $student_count{$status}.'</span><br />';
     }      }
     return $countslist;      return $countslist;
 }  }
Line 1162  sub get_valid_classes { Line 1208  sub get_valid_classes {
     }      }
     if ($totalitems > 0) {      if ($totalitems > 0) {
         if (@{$validations{'sections'}}) {          if (@{$validations{'sections'}}) {
             $response = &mt('Sections: ').              $response = &mt('Sections:').' '.
                         join(', ',@{$validations{'sections'}}).'<br />';                          join(', ',@{$validations{'sections'}}).'<br />';
         }          }
         if (@{$validations{'xlists'}}) {          if (@{$validations{'xlists'}}) {
             $response .= &mt('Courses: ').              $response .= &mt('Courses:').' '.
                         join(', ',@{$validations{'xlists'}});                          join(', ',@{$validations{'xlists'}});
         }          }
     }      }
Line 1331  sub autoenroll_info { Line 1377  sub autoenroll_info {
                    &get_valid_classes($seclist,$xlist_items,$code,                     &get_valid_classes($seclist,$xlist_items,$code,
                                       $owners,$cdom,$cnum);                                        $owners,$cdom,$cnum);
                 if ($valid_classes ne '') {                  if ($valid_classes ne '') {
                     $autoenrolldates = &mt('Not enabled<br />Starts: ').                      $autoenrolldates = &mt('Not enabled').'<br />'
                                        $autostart.'<br />'.$valid_classes;                }                                        .&mt('Starts: [_1]',$autostart)
                                         .'<br />'.$valid_classes;
                   }
             }              }
         } else {          } else {
             if ($coursehash->{'internal.autoend'} && $coursehash->{'internal.autoend'} < $now) {              if ($coursehash->{'internal.autoend'} && $coursehash->{'internal.autoend'} < $now) {
                 $autoenrolldates = &mt('Not enabled<br />Ended: ').$autoend;                  $autoenrolldates = &mt('Not enabled').'<br />'
                                     .&mt('Ended: [_1]',$autoend);
             } else {              } else {
                 my $valid_classes = &get_valid_classes($seclist,$xlist_items,                  my $valid_classes = &get_valid_classes($seclist,$xlist_items,
                                                        $code,$owners,$cdom,$cnum);                                                         $code,$owners,$cdom,$cnum);
                 if ($valid_classes ne '') {                  if ($valid_classes ne '') {
                     $autoenrolldates = &mt('Currently enabled<br />').                      $autoenrolldates = &mt('Currently enabled').'<br />'.
                                        $valid_classes;                                         $valid_classes;
                 }                  }
             }              }

Removed from v.1.41  
changed lines
  Added in v.1.48.2.2


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