Diff for /loncom/interface/coursecatalog.pm between versions 1.58.4.1 and 1.67

version 1.58.4.1, 2010/05/30 14:49:22 version 1.67, 2011/01/25 02:49:42
Line 87  sub handler { Line 87  sub handler {
     }      }
     &Apache::loncommon::extract_categories($cathash,\@cats,\@trails,\%allitems,      &Apache::loncommon::extract_categories($cathash,\@cats,\@trails,\%allitems,
                                            \%idx,\@jsarray,$subcats);                                             \%idx,\@jsarray,$subcats);
       my ($numtitles,@codetitles);
     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,\@codetitles);
     } else {      } else {
         my ($catlinks,$has_subcats,$selitem) = &category_breadcrumbs($codedom,@cats);          my ($catlinks,$has_subcats,$selitem) = &category_breadcrumbs($codedom,@cats);
         my $catjs = <<"ENDSCRIPT";          my $catjs = <<"ENDSCRIPT";
Line 114  function setCourseId(caller) { Line 115  function setCourseId(caller) {
   
 ENDSCRIPT  ENDSCRIPT
         $catjs .= &courselink_javascript();           $catjs .= &courselink_javascript(); 
         my $numtitles;  
         if ($env{'form.currcat_0'} eq 'instcode::0') {          if ($env{'form.currcat_0'} eq 'instcode::0') {
             $numtitles = &instcode_course_selector($r,$codedom,$formname,$domdesc,              $numtitles = &instcode_course_selector($r,$codedom,$formname,$domdesc,
                                                    $catlinks,$catjs);                                                     $catlinks,$catjs,\@codetitles);
             if ($env{'form.state'} eq 'listing') {              if ($env{'form.state'} eq 'listing') {
                 $r->print(&print_course_listing($codedom,$numtitles));                  $r->print(&print_course_listing($codedom,$numtitles,undef,undef,undef,
                                                   \@codetitles));
             }              }
         } else {          } else {
             my (%add_entries);              my (%add_entries);
Line 164  ENDJS Line 165  ENDJS
                           $display_button.'" /></form><br /><br />');                            $display_button.'" /></form><br /><br />');
             }              }
             if ($env{'form.state'} eq 'listing') {              if ($env{'form.state'} eq 'listing') {
                 $r->print(&print_course_listing($codedom,undef,\@trails,\%allitems,$subcats));                  $r->print(&print_course_listing($codedom,undef,\@trails,\%allitems,$subcats,\@codetitles));
             }              }
         }          }
     }      }
Line 173  ENDJS Line 174  ENDJS
 }  }
   
 sub course_details {  sub course_details {
     my ($r,$codedom,$formname,$domdesc,$trails,$allitems) = @_;      my ($r,$codedom,$formname,$domdesc,$trails,$allitems,$codetitles) = @_;
     my $output;      my $output;
     my %add_entries = (topmargin    => "0",      my %add_entries = (topmargin    => "0",
                        marginheight => "0",);                         marginheight => "0",);
Line 181  sub course_details { Line 182  sub course_details {
              &courselink_javascript().'</script>'."\n";               &courselink_javascript().'</script>'."\n";
     my $start_page =      my $start_page =
         &Apache::loncommon::start_page('Course/Community Catalog',$js,          &Apache::loncommon::start_page('Course/Community Catalog',$js,
                                            {                                             {'add_entries' => \%add_entries, });
                                              'add_entries' => \%add_entries,  
                                              'no_inline_link'   => 1,});  
     $r->print($start_page);      $r->print($start_page);
     if ($env{'form.numtitles'} > 0) {      if ($env{'form.numtitles'} > 0) {
         &Apache::lonhtmlcommon::add_breadcrumb          &Apache::lonhtmlcommon::add_breadcrumb
                 ({href=>"/adm/coursecatalog",                  ({href=>"/adm/coursecatalog",
                   text=>"Course/Community Catalog"});                    text=>"Course/Community Catalog"});
     }      }
     my $brtextone = 'Course listing';       my $brtextone = 'Course listing';
     my $brtexttwo = 'Course details';      my $brtexttwo = 'Course details';
     if ($env{'form.currcat_0'} eq 'communities::0') {      if ($env{'form.currcat_0'} eq 'communities::0') {
         $brtextone = 'Community listing';          $brtextone = 'Community listing';
Line 200  sub course_details { Line 199  sub course_details {
              ({href=>"javascript:document.$formname.submit()",               ({href=>"javascript:document.$formname.submit()",
               text=>$brtextone},                text=>$brtextone},
              {text=>$brtexttwo});               {text=>$brtexttwo});
       $r->print(&Apache::lonhtmlcommon::breadcrumbs('Course/Community Catalog'));
     $r->print('<br />');      $r->print('<br />');
     if ($env{'form.currcat_0'} eq 'communities::0') {      if ($env{'form.currcat_0'} eq 'communities::0') {
         $r->print(&mt('Detailed community information:'));          $r->print(&mt('Detailed community information:'));
Line 207  sub course_details { Line 207  sub course_details {
         $r->print(&mt('Detailed course information:'));          $r->print(&mt('Detailed course information:'));
     }      }
     $r->print('<br /><br />'.      $r->print('<br /><br />'.
               &print_course_listing($codedom,undef,$trails,$allitems).                &print_course_listing($codedom,undef,$trails,$allitems,undef,$codetitles).
               '<br /><br />');                '<br /><br />');
     $r->print('<form name="'.$formname.'" method="post" action="/adm/coursecatalog">'.      $r->print('<form name="'.$formname.'" method="post" action="/adm/coursecatalog">'.
               '<a href = "javascript:document.coursecatalog.submit()">');                '<a href = "javascript:document.coursecatalog.submit()">');
Line 249  END Line 249  END
 }  }
   
 sub instcode_course_selector {  sub instcode_course_selector {
     my ($r,$codedom,$formname,$domdesc,$catlinks,$catjs) = @_;      my ($r,$codedom,$formname,$domdesc,$catlinks,$catjs,$codetitles) = @_;
     my %coursecodes = ();      my %coursecodes = ();
     my %codes = ();      my %codes = ();
     my @codetitles = ();  
     my %cat_titles = ();      my %cat_titles = ();
     my %cat_order = ();      my %cat_order = ();
     my %cat_items;      my %cat_items;
Line 262  sub instcode_course_selector { Line 261  sub instcode_course_selector {
                        marginheight => "0",);                         marginheight => "0",);
     my ($jscript,$totcodes,$numtitles,$lasttitle) =       my ($jscript,$totcodes,$numtitles,$lasttitle) = 
         &Apache::courseclassifier::instcode_selectors_data($codedom,$formname,          &Apache::courseclassifier::instcode_selectors_data($codedom,$formname,
                            \%cat_items,\@codetitles,\%cat_titles,\%cat_order);                             \%cat_items,$codetitles,\%cat_titles,\%cat_order);
     my $js = '<script type"text/javascript">'."\n$jscript\n$catjs\n".      my $js = '<script type"text/javascript">'."\n$jscript\n$catjs\n".
               '</script>';                '</script>';
     if ($totcodes) {      if ($totcodes) {
Line 279  sub instcode_course_selector { Line 278  sub instcode_course_selector {
         if ($numtitles > 0) {          if ($numtitles > 0) {
             $r->print('<b>'.&mt('Choose which course(s) to list.').'</b><br />'.              $r->print('<b>'.&mt('Choose which course(s) to list.').'</b><br />'.
                       &Apache::courseclassifier::build_instcode_selectors($numtitles,                        &Apache::courseclassifier::build_instcode_selectors($numtitles,
                        $lasttitle,\%cat_items,\@codetitles,\%cat_titles,\%cat_order));                         $lasttitle,\%cat_items,$codetitles,\%cat_titles,\%cat_order));
         }          }
         $r->print('<input type="hidden" name="coursenum" value="" />'."\n".          $r->print('<input type="hidden" name="coursenum" value="" />'."\n".
                   '<input type="hidden" name="sortby" value="" />'."\n".                    '<input type="hidden" name="sortby" value="" />'."\n".
Line 306  sub cat_header { Line 305  sub cat_header {
     my ($r,$codedom,$js,$add_entries,$catlinks,$numtitles) = @_;      my ($r,$codedom,$js,$add_entries,$catlinks,$numtitles) = @_;
     my $start_page =      my $start_page =
         &Apache::loncommon::start_page('Other',$js,          &Apache::loncommon::start_page('Other',$js,
                                        {                                         { 'add_entries' => $add_entries, });
                                          'add_entries' => $add_entries,  
                                          'no_inline_link'   => 1,});  
     $r->print($start_page);      $r->print($start_page);
     my $brtext = 'Course listing';      my $brtext = 'Course listing';
     if ($env{'form.currcat_0'} eq 'communities::0') {      if ($env{'form.currcat_0'} eq 'communities::0') {
Line 330  sub cat_header { Line 327  sub cat_header {
           text=>"Course/Community Catalog"});            text=>"Course/Community Catalog"});
     }      }
     $r->print(&Apache::lonhtmlcommon::breadcrumbs('Course/Community Catalog'));      $r->print(&Apache::lonhtmlcommon::breadcrumbs('Course/Community Catalog'));
     my $onchange;      my $onchange = 'this.form.submit()';
     unless ($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,$onchange));                &Apache::loncommon::select_dom_form($codedom,'showdom','',1,$onchange));
Line 401  sub category_breadcrumbs { Line 395  sub category_breadcrumbs {
                     $catlinks .= '<option value="">'.&mt('De-select').'</option>';                      $catlinks .= '<option value="">'.&mt('De-select').'</option>';
                     for (my $j=0; $j<@{$cats[$shallower]{$container}}; $j++) {                      for (my $j=0; $j<@{$cats[$shallower]{$container}}; $j++) {
                         my $name = $cats[$shallower]{$container}[$j];                          my $name = $cats[$shallower]{$container}[$j];
                         my $item = &escape($name).':'.$container.':'.$shallower;                          my $item = &escape($name).':'.&escape($container).':'.$shallower;
                         my $selected = '';                          my $selected = '';
                         if ($item eq $env{'form.currcat_'.$shallower}) {                          if ($item eq $env{'form.currcat_'.$shallower}) {
                             $selected = ' selected="selected"';                              $selected = ' selected="selected"';
Line 581  sub user_is_dc { Line 575  sub user_is_dc {
 }  }
   
 sub search_official_courselist {  sub search_official_courselist {
     my ($domain,$numtitles) = @_;      my ($domain,$numtitles,$codetitles) = @_;
     my $instcode = &Apache::courseclassifier::instcode_search_str($domain,$numtitles);      my $instcode = &Apache::courseclassifier::instcode_search_str($domain,$numtitles,$codetitles);
     my $showhidden;      my $showhidden;
     if (&user_is_dc($domain)) {      if (&user_is_dc($domain)) {
         $showhidden = $env{'form.showhidden'};          $showhidden = $env{'form.showhidden'};
Line 639  sub search_courselist { Line 633  sub search_courselist {
 }  }
   
 sub print_course_listing {  sub print_course_listing {
     my ($domain,$numtitles,$trails,$allitems,$subcats) = @_;      my ($domain,$numtitles,$trails,$allitems,$subcats,$codetitles) = @_;
     my $output;      my $output;
     my %courses;      my %courses;
     my $knownuser = &user_is_known();      my $knownuser = &user_is_known();
Line 656  sub print_course_listing { Line 650  sub print_course_listing {
         if (keys(%courses) == 0) {          if (keys(%courses) == 0) {
             if ($env{'form.currcat_0'} eq 'communities::0') {              if ($env{'form.currcat_0'} eq 'communities::0') {
                 $output .= &mt('The courseID provided does not match a community in this domain.');                  $output .= &mt('The courseID provided does not match a community in this domain.');
             } else {              } else { 
                 $output .= &mt('The courseID provided does not match a course in this domain.');                  $output .= &mt('The courseID provided does not match a course in this domain.');
             }              }
             return $output;              return $output;
         }          }
     } else {      } else {
         if ($env{'form.currcat_0'} eq 'instcode::0') {          if ($env{'form.currcat_0'} eq 'instcode::0') {
             %courses = &search_official_courselist($domain,$numtitles);              %courses = &search_official_courselist($domain,$numtitles,$codetitles);
         } else {          } else {
             %courses = &search_courselist($domain,$subcats);              %courses = &search_courselist($domain,$subcats);
         }          }
Line 805  sub build_courseinfo_hash { Line 799  sub build_courseinfo_hash {
             $selfenroll_end = $courses->{$course}{'selfenroll_end_date'};              $selfenroll_end = $courses->{$course}{'selfenroll_end_date'};
             $categories = $courses->{$course}{'categories'};              $categories = $courses->{$course}{'categories'};
             push(@owners,$singleowner);              push(@owners,$singleowner);
             if (ref($courses->{$course}{'co-owners'}) eq 'ARRAY') {              if ($courses->{$course}{'co-owners'} ne '') {
                 foreach my $item (@{$courses->{$course}{'co-owners'}}) {                  foreach my $item (split(/,/,$courses->{$course}{'co-owners'})) {
                     push(@owners,$item);                      push(@owners,$item);
                 }                  }
             }              }
Line 1005  sub courseinfo_row { Line 999  sub courseinfo_row {
         if ($details) {          if ($details) {
             if ($env{'form.currcat_0'} eq 'communities::0') {              if ($env{'form.currcat_0'} eq 'communities::0') {
                 $output .= '<td>'.$accessdates.'</td>';                  $output .= '<td>'.$accessdates.'</td>';
             } else {              } else { 
                 $output .=                  $output .=
                     '<td>'.$accessdates.'</td>'.                      '<td>'.$accessdates.'</td>'. 
                     '<td>'.$counts.'</td>'.                      '<td>'.$counts.'</td>'.
                     '<td>'.$autoenrollment.'</td>';                      '<td>'.$autoenrollment.'</td>';
             }              }
Line 1023  sub courseinfo_row { Line 1017  sub courseinfo_row {
             if (($info->{'selfenroll_start'} > 0) && ($info->{'selfenroll_start'} > $now)) {              if (($info->{'selfenroll_start'} > 0) && ($info->{'selfenroll_start'} > $now)) {
                 $output .= '<td>'.&mt('Starts: [_1]','<span class="LC_cusr_emph">'.$showstart.'</span>').'<br />'.&mt('Ends: [_1]','<span class="LC_cusr_emph">'.$showend.'</span>').'</td>';                  $output .= '<td>'.&mt('Starts: [_1]','<span class="LC_cusr_emph">'.$showstart.'</span>').'<br />'.&mt('Ends: [_1]','<span class="LC_cusr_emph">'.$showend.'</span>').'</td>';
             } else {               } else { 
                 $output .= '<td><a href="javascript:ToSelfenroll('."'$course'".')">'.&mt('Enroll in course').'</a></td>';                  $output .= '<td><a href="javascript:ToSelfenroll('."'$course'".')">'.&mt('Enroll in course').'</a><br />';
                   if ($info->{'selfenroll_end'} == 0) {
                       $output .= &mt('Available permanently');
                   } elsif ($info->{'selfenroll_end'} > $now) {
                       $output .= &mt('Self-enrollment ends: [_1]','<span class="LC_cusr_emph">'.$showend.'</span>');
                   }
                   $output .= '</td>';
             }              }
             $selfenroll = 1;              $selfenroll = 1;
         }          }

Removed from v.1.58.4.1  
changed lines
  Added in v.1.67


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