[LON-CAPA-cvs] cvs: loncom(version_2_10_X) /interface coursecatalog.pm

raeburn raeburn@source.lon-capa.org
Sat, 14 Aug 2010 02:00:27 -0000


raeburn		Sat Aug 14 02:00:27 2010 EDT

  Modified files:              (Branch: version_2_10_X)
    /loncom/interface	coursecatalog.pm 
  Log:
  - Backport 1.63.
  
  
Index: loncom/interface/coursecatalog.pm
diff -u loncom/interface/coursecatalog.pm:1.58.4.1 loncom/interface/coursecatalog.pm:1.58.4.2
--- loncom/interface/coursecatalog.pm:1.58.4.1	Sun May 30 14:49:22 2010
+++ loncom/interface/coursecatalog.pm	Sat Aug 14 02:00:27 2010
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Handler for displaying the course catalog interface
 #
-# $Id: coursecatalog.pm,v 1.58.4.1 2010/05/30 14:49:22 raeburn Exp $
+# $Id: coursecatalog.pm,v 1.58.4.2 2010/08/14 02:00:27 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -87,8 +87,13 @@
     }
     &Apache::loncommon::extract_categories($cathash,\@cats,\@trails,\%allitems,
                                            \%idx,\@jsarray,$subcats);
+    my ($numtitles,@codetitles);
     if ($env{'form.coursenum'} ne '' && &user_is_known()) {
-        &course_details($r,$codedom,$formname,$domdesc,\@trails,\%allitems);
+        if ($env{'form.currcat_0'} eq 'instcode::0') {
+            $numtitles = &instcode_course_selector($r,$codedom,$formname,$domdesc,
+                                                   undef,undef,\@codetitles);
+        }
+        &course_details($r,$codedom,$formname,$domdesc,\@trails,\%allitems,\@codetitles);
     } else {
         my ($catlinks,$has_subcats,$selitem) = &category_breadcrumbs($codedom,@cats);
         my $catjs = <<"ENDSCRIPT";
@@ -114,12 +119,12 @@
 
 ENDSCRIPT
         $catjs .= &courselink_javascript(); 
-        my $numtitles;
         if ($env{'form.currcat_0'} eq 'instcode::0') {
             $numtitles = &instcode_course_selector($r,$codedom,$formname,$domdesc,
-                                                   $catlinks,$catjs);
+                                                   $catlinks,$catjs,\@codetitles);
             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 {
             my (%add_entries);
@@ -164,7 +169,7 @@
                           $display_button.'" /></form><br /><br />');
             }
             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));
             }
         }
     }
@@ -173,7 +178,7 @@
 }
 
 sub course_details {
-    my ($r,$codedom,$formname,$domdesc,$trails,$allitems) = @_;
+    my ($r,$codedom,$formname,$domdesc,$trails,$allitems,$codetitles) = @_;
     my $output;
     my %add_entries = (topmargin    => "0",
                        marginheight => "0",);
@@ -207,7 +212,7 @@
         $r->print(&mt('Detailed course information:'));
     }
     $r->print('<br /><br />'.
-              &print_course_listing($codedom,undef,$trails,$allitems).
+              &print_course_listing($codedom,undef,$trails,$allitems,undef,$codetitles).
               '<br /><br />');
     $r->print('<form name="'.$formname.'" method="post" action="/adm/coursecatalog">'.
               '<a href = "javascript:document.coursecatalog.submit()">');
@@ -249,10 +254,9 @@
 }
 
 sub instcode_course_selector {
-    my ($r,$codedom,$formname,$domdesc,$catlinks,$catjs) = @_;
+    my ($r,$codedom,$formname,$domdesc,$catlinks,$catjs,$codetitles) = @_;
     my %coursecodes = ();
     my %codes = ();
-    my @codetitles = ();
     my %cat_titles = ();
     my %cat_order = ();
     my %cat_items;
@@ -262,7 +266,7 @@
                        marginheight => "0",);
     my ($jscript,$totcodes,$numtitles,$lasttitle) = 
         &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".
               '</script>';
     if ($totcodes) {
@@ -279,7 +283,7 @@
         if ($numtitles > 0) {
             $r->print('<b>'.&mt('Choose which course(s) to list.').'</b><br />'.
                       &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".
                   '<input type="hidden" name="sortby" value="" />'."\n".
@@ -581,8 +585,8 @@
 }
 
 sub search_official_courselist {
-    my ($domain,$numtitles) = @_;
-    my $instcode = &Apache::courseclassifier::instcode_search_str($domain,$numtitles);
+    my ($domain,$numtitles,$codetitles) = @_;
+    my $instcode = &Apache::courseclassifier::instcode_search_str($domain,$numtitles,$codetitles);
     my $showhidden;
     if (&user_is_dc($domain)) {
         $showhidden = $env{'form.showhidden'};
@@ -639,7 +643,7 @@
 }
 
 sub print_course_listing {
-    my ($domain,$numtitles,$trails,$allitems,$subcats) = @_;
+    my ($domain,$numtitles,$trails,$allitems,$subcats,$codetitles) = @_;
     my $output;
     my %courses;
     my $knownuser = &user_is_known();
@@ -663,7 +667,7 @@
         }
     } else {
         if ($env{'form.currcat_0'} eq 'instcode::0') {
-            %courses = &search_official_courselist($domain,$numtitles);
+            %courses = &search_official_courselist($domain,$numtitles,$codetitles);
         } else {
             %courses = &search_courselist($domain,$subcats);
         }