Diff for /loncom/interface/coursecatalog.pm between versions 1.58.4.9 and 1.59

version 1.58.4.9, 2013/11/21 16:34:23 version 1.59, 2010/03/22 20:11:22
Line 66  sub handler { Line 66  sub handler {
     }      }
     my $formname = 'coursecatalog';      my $formname = 'coursecatalog';
     if ($env{'form.showdom'} ne '') {      if ($env{'form.showdom'} ne '') {
         $env{'form.showdom'} = &LONCAPA::clean_domain($env{'form.showdom'});  
         if (&Apache::lonnet::domain($env{'form.showdom'}) ne '') {          if (&Apache::lonnet::domain($env{'form.showdom'}) ne '') {
             $codedom = $env{'form.showdom'};              $codedom = $env{'form.showdom'};
         } else {  
             $env{'form.showdom'} = '';  
         }          }
     }      }
     my $domdesc = &Apache::lonnet::domain($codedom,'description');      my $domdesc = &Apache::lonnet::domain($codedom,'description');
     &Apache::lonhtmlcommon::clear_breadcrumbs();      &Apache::lonhtmlcommon::clear_breadcrumbs();
   
     if ($env{'form.catalog_maxdepth'} ne '') {  
         $env{'form.catalog_maxdepth'} =~ s{\D}{}g;  
     }  
   
     my %domconfig =      my %domconfig =
         &Apache::lonnet::get_dom('configuration',['coursecategories'],$codedom);          &Apache::lonnet::get_dom('configuration',['coursecategories'],$codedom);
     my (@cats,@trails,%allitems,%idx,@jsarray,%subcathash,$cathash);      my (@cats,@trails,%allitems,%idx,@jsarray,%subcathash,$cathash);
Line 94  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,\@codetitles);          &course_details($r,$codedom,$formname,$domdesc,\@trails,\%allitems);
     } 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 122  function setCourseId(caller) { Line 114  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,\@codetitles);                                                     $catlinks,$catjs);
             if ($env{'form.state'} eq 'listing') {              if ($env{'form.state'} eq 'listing') {
                 $r->print(&print_course_listing($codedom,$numtitles,undef,undef,undef,                  $r->print(&print_course_listing($codedom,$numtitles));
                                                 \@codetitles));  
             }              }
         } else {          } else {
             my (%add_entries);              my (%add_entries);
Line 172  ENDJS Line 164  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,\@codetitles));                  $r->print(&print_course_listing($codedom,undef,\@trails,\%allitems,$subcats));
             }              }
         }          }
     }      }
Line 181  ENDJS Line 173  ENDJS
 }  }
   
 sub course_details {  sub course_details {
     my ($r,$codedom,$formname,$domdesc,$trails,$allitems,$codetitles) = @_;      my ($r,$codedom,$formname,$domdesc,$trails,$allitems) = @_;
     my $output;      my $output;
     my %add_entries = (topmargin    => "0",      my %add_entries = (topmargin    => "0",
                        marginheight => "0",);                         marginheight => "0",);
Line 189  sub course_details { Line 181  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 $brtexttwo = 'Course details';  
     if ($env{'form.currcat_0'} eq 'communities::0') {  
         $brtextone = 'Community listing';  
         $brtexttwo = 'Community details';  
     }  
     &Apache::lonhtmlcommon::add_breadcrumb      &Apache::lonhtmlcommon::add_breadcrumb
              ({href=>"javascript:document.$formname.submit()",               ({href=>"javascript:document.$formname.submit()",
               text=>$brtextone},                text=>"Course listing"},
              {text=>$brtexttwo});               {text=>"Course details"});
     $r->print('<br />');      $r->print(&Apache::lonhtmlcommon::breadcrumbs('Course/Community Catalog'));
     if ($env{'form.currcat_0'} eq 'communities::0') {      $r->print('<br />'.&mt('Detailed course information:').'<br /><br />'.
         $r->print(&mt('Detailed community information:'));                &print_course_listing($codedom,undef,$trails,$allitems).
     } else {  
         $r->print(&mt('Detailed course information:'));  
     }  
     $r->print('<br /><br />'.  
               &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()">'.
     if ($env{'form.currcat_0'} eq 'communities::0') {                &mt('Back to course listing').'</a>'.
         $r->print(&mt('Back to community listing'));  
     } else {  
         $r->print(&mt('Back to course listing'));  
     }  
     $r->print('</a>'.  
               &Apache::lonhtmlcommon::echo_form_input(['coursenum','catalogfilter',                &Apache::lonhtmlcommon::echo_form_input(['coursenum','catalogfilter',
                                                        'showdetails','courseid']).'</form>');                                                         'showdetails','courseid']).'</form>');
     return;      return;
Line 257  END Line 231  END
 }  }
   
 sub instcode_course_selector {  sub instcode_course_selector {
     my ($r,$codedom,$formname,$domdesc,$catlinks,$catjs,$codetitles) = @_;      my ($r,$codedom,$formname,$domdesc,$catlinks,$catjs) = @_;
     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 269  sub instcode_course_selector { Line 244  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 286  sub instcode_course_selector { Line 261  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".
                   '<input type="hidden" name="state" value="listing" />'."\n".                    '<input type="hidden" name="state" value="listing" />'."\n".
                     '<input type="hidden" name="form.currcat_0" value="instcode::0" />'."\n".
                   '<input type="submit" name="catalogfilter" value="'.                    '<input type="submit" name="catalogfilter" value="'.
                   &mt('Display courses').'" />'.                    &mt('Display courses').'" />'.
                   '<input type="hidden" name="numtitles" value="'.$numtitles.                    '<input type="hidden" name="numtitles" value="'.$numtitles.
Line 312  sub cat_header { Line 288  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';  
     if ($env{'form.currcat_0'} eq 'communities::0') {  
         $brtext = 'Community listing';  
     }  
     if ($env{'form.state'} eq 'listing') {      if ($env{'form.state'} eq 'listing') {
         if ($numtitles > 0) {          if ($numtitles > 0) {
             &Apache::lonhtmlcommon::add_breadcrumb              &Apache::lonhtmlcommon::add_breadcrumb
                 ({href=>"/adm/coursecatalog",                  ({href=>"/adm/coursecatalog",
                   text=>"Course/Community Catalog"},                    text=>"Course/Community Catalog"},
                  {text=>$brtext});                   {text=>"Course listing"});
         } else {          } else {
             &Apache::lonhtmlcommon::add_breadcrumb              &Apache::lonhtmlcommon::add_breadcrumb
             ({text=>$brtext});              ({text=>"Course listing"});
         }          }
     } else {      } else {
         &Apache::lonhtmlcommon::add_breadcrumb          &Apache::lonhtmlcommon::add_breadcrumb
Line 407  sub category_breadcrumbs { Line 377  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).':'.&escape($container).':'.$shallower;                          my $item = &escape($name).':'.$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 587  sub user_is_dc { Line 557  sub user_is_dc {
 }  }
   
 sub search_official_courselist {  sub search_official_courselist {
     my ($domain,$numtitles,$codetitles) = @_;      my ($domain,$numtitles) = @_;
     my $instcode = &Apache::courseclassifier::instcode_search_str($domain,$numtitles,$codetitles);      my $instcode = &Apache::courseclassifier::instcode_search_str($domain,$numtitles);
     my $showhidden;      my $showhidden;
     if (&user_is_dc($domain)) {      if (&user_is_dc($domain)) {
         $showhidden = $env{'form.showhidden'};          $showhidden = $env{'form.showhidden'};
Line 645  sub search_courselist { Line 615  sub search_courselist {
 }  }
   
 sub print_course_listing {  sub print_course_listing {
     my ($domain,$numtitles,$trails,$allitems,$subcats,$codetitles) = @_;      my ($domain,$numtitles,$trails,$allitems,$subcats) = @_;
     my $output;      my $output;
     my %courses;      my %courses;
     my $knownuser = &user_is_known();      my $knownuser = &user_is_known();
Line 660  sub print_course_listing { Line 630  sub print_course_listing {
                                                  $env{'form.coursenum'},                                                   $env{'form.coursenum'},
                                                  undef,undef,'.',1);                                                   undef,undef,'.',1);
         if (keys(%courses) == 0) {          if (keys(%courses) == 0) {
             if ($env{'form.currcat_0'} eq 'communities::0') {              $output .= &mt('The courseID provided does not match a course in this domain.');
                 $output .= &mt('The courseID provided does not match a community in this domain.');  
             } else {  
                 $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,$codetitles);              %courses = &search_official_courselist($domain,$numtitles);
         } else {          } else {
             %courses = &search_courselist($domain,$subcats);              %courses = &search_courselist($domain,$subcats);
         }          }
Line 733  sub construct_data_table { Line 699  sub construct_data_table {
     }      }
     if ($knownuser) {      if ($knownuser) {
         if ($details) {          if ($details) {
             if ($env{'form.currcat_0'} eq 'communities::0') {              $output .=
                 $output .= '<th>'.&mt('Default Access Dates for Members').'</th>';                '<th>'.&mt('Default Access Dates for Students').'</th>'.
             } else {                '<th>'.&mt('Student Counts').'</th>'.
                 $output .=                '<th>'.&mt('Auto-enrollment of[_1]registered students','<br />').'</th>';
                     '<th>'.&mt('Default Access Dates for Students').'</th>'.  
                     '<th>'.&mt('Student Counts').'</th>'.  
                     '<th>'.&mt('Auto-enrollment of[_1]registered students','<br />').'</th>';  
             }  
         } else {          } else {
             $output .= '<th>'.&mt('Details').'</th>';              $output .= '<th>'.&mt('Details').'</th>';
         }          }
Line 811  sub build_courseinfo_hash { Line 773  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 ($courses->{$course}{'co-owners'} ne '') {              if (ref($courses->{$course}{'co-owners'}) eq 'ARRAY') {
                 foreach my $item (split(/,/,$courses->{$course}{'co-owners'})) {                  foreach my $item (@{$courses->{$course}{'co-owners'}}) {
                     push(@owners,$item);                      push(@owners,$item);
                 }                  }
             }              }
Line 1009  sub courseinfo_row { Line 971  sub courseinfo_row {
                '<td>'.$ownerlast.'</td>';                 '<td>'.$ownerlast.'</td>';
     if ($knownuser) {      if ($knownuser) {
         if ($details) {          if ($details) {
             if ($env{'form.currcat_0'} eq 'communities::0') {              $output .=
                 $output .= '<td>'.$accessdates.'</td>';                 '<td>'.$accessdates.'</td>'. 
             } else {                 '<td>'.$counts.'</td>'.
                 $output .=                 '<td>'.$autoenrollment.'</td>';
                     '<td>'.$accessdates.'</td>'.  
                     '<td>'.$counts.'</td>'.  
                     '<td>'.$autoenrollment.'</td>';  
             }  
         } else {          } else {
             $output .= "<td><a href=\"javascript:setCourseId('$cnum')\">".&mt('Show more details').'</a></td>';              $output .= "<td><a href=\"javascript:setCourseId('$cnum')\">".&mt('Show more details').'</a></td>';
         }          }
Line 1029  sub courseinfo_row { Line 987  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><br />';                  $output .= '<td><a href="javascript:ToSelfenroll('."'$course'".')">'.&mt('Enroll in course').'</a></td>';
                 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.9  
changed lines
  Added in v.1.59


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