Diff for /loncom/interface/lonpickcourse.pm between versions 1.67 and 1.72

version 1.67, 2007/11/06 04:39:19 version 1.72, 2008/05/31 00:50:00
Line 104  sub handler { Line 104  sub handler {
   
     # if called to assign a role in a course to a user via CUSR      # if called to assign a role in a course to a user via CUSR
     if ($env{'form.form'} eq 'cu' || $env{'form.form'} eq 'studentform') {      if ($env{'form.form'} eq 'cu' || $env{'form.form'} eq 'studentform') {
         $r->print(&create_user_javascript($type));           $r->print(&create_user_javascript($type));
     }      }
   
     # print javascript functions for choosing a course       # print javascript functions for choosing a course 
Line 215  sub display_matched_courses { Line 215  sub display_matched_courses {
     if ($env{'form.form'} eq 'portform') {      if ($env{'form.form'} eq 'portform') {
         $action = '/adm/portfolio';          $action = '/adm/portfolio';
     }      }
       my $numcourses = keys(%courses);
     $r->print('<form name="courselist" method="post" action="'.$action.'">');      $r->print('<form name="courselist" method="post" action="'.$action.'">');
       if ($env{'form.form'} eq 'modifycourse') {
           if ($numcourses > 0) {
               my $cctitle = &Apache::lonnet::plaintext('cc',$type);
               my $dctitle = &Apache::lonnet::plaintext('dc');
               my $ccrolechk = ' checked="checked" ';
               my $menuchk = ' ';
               if ($env{'form.prevphase'} ne '') {
                    $ccrolechk = ' ';
                    $menuchk = ' checked="checked" ';
               }
               $r->print(
                   '<span class="LC_nobreak"><label>'.
                   '<input type="radio" name="phase" value="ccrole"'.$ccrolechk.'/>'.
                   '&nbsp;'.&mt('Enter the course with the role of [_1].',$cctitle).
                   '</label>'.('&nbsp;'x3).'</span><br />'.
                   '<span class="LC_nobreak"><label>'.
                   '<input type="radio" name="phase" value="menu"'.$menuchk.'/>&nbsp;'.
                   &mt('View or modify course settings which only a [_1] may modify.',$dctitle).
                   '</label></span><br /><br />');
           }
       }
     my %by_descrip;      my %by_descrip;
     my $numcourses = keys(%courses);  
     foreach my $course (keys(%courses)) {      foreach my $course (keys(%courses)) {
         my $descr;          my $descr;
         if (ref($courses{$course}) eq 'HASH') {          if (ref($courses{$course}) eq 'HASH') {
Line 230  sub display_matched_courses { Line 251  sub display_matched_courses {
         my $description = $descr;          my $description = $descr;
         push (@{$by_descrip{$description}}, $course);          push (@{$by_descrip{$description}}, $course);
     }      }
    
     if ($numcourses > 1 && $multiple) {      if ($numcourses > 1 && $multiple) {
         $r->print('<input type="button" value="check all"          $r->print('<input type="button" value="check all"
                   onclick="javascript:checkAll(document.courselist.course_id)" />                    onclick="javascript:checkAll(document.courselist.course_id)" />
Line 237  sub display_matched_courses { Line 259  sub display_matched_courses {
                   onclick="javascript:uncheckAll(document.courselist.course_id)" />                    onclick="javascript:uncheckAll(document.courselist.course_id)" />
                   <br /><br />');                    <br /><br />');
     }      }
   
       if (%courses) {
           $r->print(&Apache::loncommon::start_data_table());
           $r->print(&Apache::loncommon::start_data_table_header_row());
           $r->print('<th>'.&mt('Select').'</th>'
                    .'<th>'.&mt('Course Description').'</th>'
                    .'<th>'.&mt('Domain').'</th>'
                    .'<th>'.&mt('Course Code').'</th>'
                    .'<th>'.&mt('Owner/Co-owner(s)').'</th>'
                    .'<th>'.&mt('Type').'</th>'
                    );
           $r->print(&Apache::loncommon::end_data_table_header_row());
       }
     foreach my $description (sort { lc($a) cmp lc($b) } (keys(%by_descrip))) {      foreach my $description (sort { lc($a) cmp lc($b) } (keys(%by_descrip))) {
         foreach my $course (@{$by_descrip{$description}}) {          foreach my $course (@{$by_descrip{$description}}) {
               $r->print(&Apache::loncommon::start_data_table_row());
             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);
Line 258  sub display_matched_courses { Line 294  sub display_matched_courses {
                 ($descr,$instcode,$singleowner,$ttype)=split(/:/,$courses{$course});                  ($descr,$instcode,$singleowner,$ttype)=split(/:/,$courses{$course});
                 push(@owners,&unescape($singleowner));                  push(@owners,&unescape($singleowner));
             }              }
             my $owner = join(', ',@owners);              my $ownerstr = join(', ',@owners);
             $r->print(&course_chooser($multiple,$cdom,$cnum,$cleandesc));              $r->print('<td>'.&course_chooser($multiple,$cdom,$cnum,$cleandesc).'</td>');
             $r->print($description.'('.              $r->print('<td>'.$description.'</td>');
                       (&Apache::lonnet::domain($cdom,'description')?              $r->print('<td>');
                        &Apache::lonnet::domain($cdom,'description'):$cdom).")");              $r->print(&Apache::lonnet::domain($cdom,'description')?
                         $cdom.' ('.&Apache::lonnet::domain($cdom,'description').')':$cdom);
               $r->print('</td>');
               $r->print('<td>');
             if ($instcode ne '') {              if ($instcode ne '') {
                 $r->print(" - ".&unescape($instcode));                  $r->print(&unescape($instcode));
             }              } else {
             if (@owners > 1) {                  $r->print('&nbsp;');
                 $r->print(', '.&mt('owners').' - ',join(', ',@owners));   
             } elsif (@owners == 1) {  
                 $r->print(', '.&mt('owner').' - '.$owner);  
             }              }
               $r->print('</td>');
               $r->print('<td>'.$ownerstr.'</td>');
               $r->print('<td>');
             if ($ttype ne '') {              if ($ttype ne '') {
                 $r->print('('.&unescape($ttype).')');                  $r->print(&mt(&unescape($ttype)));
               } else {
                   $r->print('&nbsp;');
             }              }
               $r->print('</td>');
             if ($multiple) { $r->print("</label>\n"); }              if ($multiple) { $r->print("</label>\n"); }
             $r->print("<br />\n");              $r->print(&Apache::loncommon::end_data_table_row());
               # $r->print("<br />\n");
         }          }
     }      }
       if (%courses) {
           $r->print(&Apache::loncommon::end_data_table());
       }
   
     if (!%courses) {      if (!%courses) {
         $r->print(&mt('None found'));          $r->print(&mt('None found'));
     } elsif ($multiple) {      } elsif ($multiple) {
Line 296  sub display_matched_courses { Line 343  sub display_matched_courses {
         $r->print('<input type="hidden" name="setroles" value="'.$env{'form.setroles'}.'" />');          $r->print('<input type="hidden" name="setroles" value="'.$env{'form.setroles'}.'" />');
         $r->print('<input type="hidden" name="action" value="rolepicker" />');          $r->print('<input type="hidden" name="action" value="rolepicker" />');
     } elsif ($env{'form.form'} eq 'modifycourse') {      } elsif ($env{'form.form'} eq 'modifycourse') {
         $r->print('<input type="hidden" name="phase" value="menu" />'."\n");  
         $r->print(&Apache::lonhtmlcommon::echo_form_input(['phase','pickedcourse','type','form']));          $r->print(&Apache::lonhtmlcommon::echo_form_input(['phase','pickedcourse','type','form']));
     } else {      } else {
         $r->print('<input type="hidden" name="cnumelement" value="'.          $r->print('<input type="hidden" name="cnumelement" value="'.
Line 397  sub build_filters { Line 443  sub build_filters {
                 $list->{'instcodefilter'}.'" />';                  $list->{'instcodefilter'}.'" />';
     }      }
     foreach my $posstype ('Course','Non-standard Course') {      foreach my $posstype ('Course','Non-standard Course') {
         $typeselectform.='<option value="'.$posstype.'" "'.          $typeselectform.='<option value="'.$posstype.'"'.
             ($posstype eq $type ? 'selected="selected" ' : ''). ">$posstype</option>\n";              ($posstype eq $type ? ' selected="selected" ' : ''). ">$posstype</option>\n";
     }      }
     $typeselectform.="</select>";      $typeselectform.="</select>";
     my $output = qq|      my $output = qq|
Line 406  sub build_filters { Line 452  sub build_filters {
 <input type="hidden" name="form" value="$formname" />  <input type="hidden" name="form" value="$formname" />
 |;  |;
     if ($formname eq 'modifycourse') {      if ($formname eq 'modifycourse') {
         $output .= '<input type="hidden" name="phase" value="courselist" />';          $output .= '<input type="hidden" name="phase" value="courselist" />'."\n".
     } else {                          '<input type="hidden" name="prevphase" value="'.
                      $env{'form.prevphase'}.'" />'."\n";
       } else {
         my $name_input;          my $name_input;
         if ($env{'form.cnameelement'} ne '') {          if ($env{'form.cnameelement'} ne '') {
             $name_input = '<input type="hidden" name="cnameelement" value="'.              $name_input = '<input type="hidden" name="cnameelement" value="'.
Line 452  $multelement Line 500  $multelement
                   '<input type="text" name="descriptfilter" size="40" value="'.                    '<input type="text" name="descriptfilter" size="40" value="'.
                   $list->{'descriptfilter'}.'" />'."\n";                    $list->{'descriptfilter'}.'" />'."\n";
     }      }
     $output .= qq|      $output .= '<p><input type="submit" name="gosearch" value="'. 
 <p><input type="submit" name="gosearch" value="Search" /></p>                 &mt('Search').'" /></p>'."\n".'</form>'."\n".'<hr />'."\n";
 </form>  
 <hr />  
 |;  
     return $output;       return $output; 
 }  }
   
Line 464  sub search_courses { Line 509  sub search_courses {
     my ($r,$type,$onlyown,$filter) = @_;      my ($r,$type,$onlyown,$filter) = @_;
     my %courses;      my %courses;
     if (!$onlyown) {      if (!$onlyown) {
         $r->print(&mt('Searching').' ...<br />&nbsp;<br />');          $r->print(&mt('Searching ...').'<br />&nbsp;<br />');
         $r->rflush();          $r->rflush();
         if (($filter->{'ownerfilter'} ne '') ||          if (($filter->{'ownerfilter'} ne '') ||
             ($filter->{'ownerdomfilter'} ne '')) {              ($filter->{'ownerdomfilter'} ne '')) {
Line 504  sub course_chooser { Line 549  sub course_chooser {
     if ($multiple) {      if ($multiple) {
         $output = '<label><input type="checkbox" name="course_id" value="'.$cdom.'_'.$cnum.'" />'."\n";          $output = '<label><input type="checkbox" name="course_id" value="'.$cdom.'_'.$cnum.'" />'."\n";
     } else {      } else {
         $output = '<input type="button" value="Select" onClick="gochoose('.          $output = '<input type="button" value="'.&mt('Select').'" onClick="gochoose('.
                   "'".$cnum."','".$cdom."','".$cleandesc."')".'" />'."\n";                    "'".$cnum."','".$cdom."','".$cleandesc."')".'" />'."\n";
     }      }
     return $output;      return $output;

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


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