Diff for /loncom/interface/lonpickcourse.pm between versions 1.60 and 1.65

version 1.60, 2006/11/29 07:46:39 version 1.65, 2007/10/06 04:32:49
Line 35  use Apache::loncoursedata; Line 35  use Apache::loncoursedata;
 use Apache::lonnet;  use Apache::lonnet;
 use Apache::lonlocal;  use Apache::lonlocal;
 use Apache::longroup;  use Apache::longroup;
 use lib '/home/httpd/lib/perl/';  
 use LONCAPA;  use LONCAPA;
   
 sub handler {  sub handler {
Line 176  sub display_matched_courses { Line 175  sub display_matched_courses {
     my $numcourses = keys(%courses);      my $numcourses = keys(%courses);
     foreach my $course (keys(%courses)) {      foreach my $course (keys(%courses)) {
         my $descr;          my $descr;
         if ($courses{$course} =~ m/^([^:]*):/i) {          if (ref($courses{$course}) eq 'HASH') {
               $descr = $courses{$course}{'description'};
           } elsif ($courses{$course} =~ m/^([^:]*):/i) {
             $descr = &unescape($1);              $descr = &unescape($1);
         } else {          } else {
             $descr = &unescape($courses{$course});              $descr = &unescape($courses{$course});
Line 196  sub display_matched_courses { Line 197  sub display_matched_courses {
             my $cleandesc=&HTML::Entities::encode($description,'<>&"');              my $cleandesc=&HTML::Entities::encode($description,'<>&"');
             $cleandesc=~s/'/\\'/g;              $cleandesc=~s/'/\\'/g;
             my ($cdom,$cnum)=split(/\_/,$course);              my ($cdom,$cnum)=split(/\_/,$course);
             my ($descr,$instcode,$owner,$ttype) = split/:/,$courses{$course};              my ($descr,$instcode,$ttype,@owners);
               if (ref($courses{$course}) eq 'HASH') {
                   $descr = $courses{$course}{'description'};
                   $instcode =  $courses{$course}{'inst_code'};
                   $ttype =  $courses{$course}{'type'};
                   push(@owners,&unescape($courses{$course}{'owner'}));
                   if (ref($courses{$course}{'co-owners'}) eq 'ARRAY') {
                       foreach my $item (@{$courses{$course}{'co-owners'}}) {
                           push(@owners,&unescape($item));
                       }
                   }
               } else {
                   my $singleowner; 
                   ($descr,$instcode,$singleowner,$ttype)=split(/:/,$courses{$course});
                   push(@owners,&unescape($singleowner));
               }
               my $owner = join(', ',@owners);
             $r->print(&course_chooser($multiple,$cdom,$cnum,$cleandesc));              $r->print(&course_chooser($multiple,$cdom,$cnum,$cleandesc));
             $r->print($description.'('.              $r->print($description.'('.
                       ($Apache::lonnet::domaindescription{$cdom}?                        (&Apache::lonnet::domain($cdom,'description')?
                        $Apache::lonnet::domaindescription{$cdom}:$cdom).")");                         &Apache::lonnet::domain($cdom,'description'):$cdom).")");
             unless ($instcode eq '') {              if ($instcode ne '') {
                 $r->print(" - ".&unescape($instcode));                  $r->print(" - ".&unescape($instcode));
             }              }
             unless ($owner eq '') {              if (@owners > 1) {
                 $r->print(", owner - ".&unescape($owner));                  $r->print(', '.&mt('owners').' - ',join(', ',@owners)); 
               } elsif (@owners == 1) {
                   $r->print(', '.&mt('owner').' - '.$owner);
             }              }
             unless ($ttype eq '') {              if ($ttype ne '') {
                 $r->print('('.&unescape($ttype).')');                  $r->print('('.&unescape($ttype).')');
             }              }
             if ($multiple) { $r->print("</label>\n"); }              if ($multiple) { $r->print("</label>\n"); }
Line 266  sub build_filters { Line 285  sub build_filters {
     foreach my $item (@{$filterlist}) {      foreach my $item (@{$filterlist}) {
         $filter->{$item} = $env{'form.'.$item};          $filter->{$item} = $env{'form.'.$item};
         if ($item ne 'descriptfilter' && $item ne 'instcodefilter') {          if ($item ne 'descriptfilter' && $item ne 'instcodefilter') {
             $filter->{$item} =~ s/\W//g;      if ($item eq 'domainfilter' || $item eq 'ownerdomfilter') {
    $filter->{$item} = &LONCAPA::clean_domain($filter->{$item});
       } elsif ($item eq 'coursefilter') {
    $filter->{$item} = &LONCAPA::clean_courseid($filter->{$item});
       } elsif ($item eq 'ownerfilter') {
    $filter->{$item} = &LONCAPA::clean_username($filter->{$item});
       } else {
    $filter->{$item} =~ s/\W//g;
       }
             if (!$filter->{$item}) {              if (!$filter->{$item}) {
                 $filter->{$item} = '';                  $filter->{$item} = '';
             }              }
         }          }
         if ($item eq 'domainfilter') {          if ($item eq 'domainfilter') {
       my $allow_blank = 1;
       if ($formname eq 'portform') {
    $filter->{$item} ||= $env{'user.domain'};
    $allow_blank=0;
       }
             $domainselectform =              $domainselectform =
      &Apache::loncommon::select_dom_form($filter->{$item},'domainfilter',1);   &Apache::loncommon::select_dom_form($filter->{$item},
       'domainfilter',
       $allow_blank);
         } elsif ($item eq 'ownerdomfilter') {          } elsif ($item eq 'ownerdomfilter') {
             $ownerdomselectform =              $ownerdomselectform =
      &Apache::loncommon::select_dom_form($filter->{$item},'ownerdomfilter',1);       &Apache::loncommon::select_dom_form($filter->{$item},'ownerdomfilter',1);
Line 308  sub build_filters { Line 342  sub build_filters {
               'cog' => &mt('Course Type')                'cog' => &mt('Course Type')
              );               );
   
     $typeselectform =  '<select name="type" size="1"';      $typeselectform =  '<select name="type" size="1">'."\n";
     $typeselectform .= ">\n";  
     if ($type eq 'Course') {      if ($type eq 'Course') {
         $instcodeform =           $instcodeform = 
                 '<input type="text" name="instcodefilter" size="10" value="'.                  '<input type="text" name="instcodefilter" size="10" value="'.
Line 411  sub search_courses { Line 444  sub search_courses {
         $r->print('<br />');          $r->print('<br />');
         my %coursehash = &Apache::loncommon::findallcourses();           my %coursehash = &Apache::loncommon::findallcourses(); 
         foreach my $cid (sort(keys(%coursehash))) {          foreach my $cid (sort(keys(%coursehash))) {
             $courses{$cid} = $env{'course.'.$cid.'.description'};              $courses{$cid}{'description'} = $env{'course.'.$cid.'.description'};
         }          }
     }      }
     return %courses;      return %courses;

Removed from v.1.60  
changed lines
  Added in v.1.65


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