Diff for /loncom/interface/lonpickcourse.pm between versions 1.66 and 1.75

version 1.66, 2007/10/22 22:16:38 version 1.75, 2008/11/24 14:49:42
Line 93  sub handler { Line 93  sub handler {
   
     if ($env{'form.form'} eq 'portform') {      if ($env{'form.form'} eq 'portform') {
         $lastaction = 'document.courselist.submit()';          $lastaction = 'document.courselist.submit()';
     } elsif ($env{'form.form'} eq 'cu' || $env{'form.form'} eq 'studentform') {      } elsif ($env{'form.form'} eq 'cu' || ($env{'form.form'} eq 'studentform' &&
           !$multiple)) {
         $lastaction =           $lastaction = 
              'document.courselist.pickedcourse.value = cdom+"_"+cname;'."\n".               'document.courselist.pickedcourse.value = cdom+"_"+cname;'."\n".
              'document.courselist.submit();';               'document.courselist.submit();';
Line 103  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 214  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(
                   '<fieldset>'
                  .'<legend>'.&mt('Action').'</legend>'
                  .'<div class="LC_nobreak"><label>'
                  .'<input type="radio" name="phase" value="ccrole"'.$ccrolechk.'/>'
                  .'&nbsp;'.&mt('Enter the course with the role of [_1].',$cctitle)
                  .'</label></div>'
                  .'<div 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></div>'
                  .'</fieldset>'
                  .'<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 229  sub display_matched_courses { Line 256  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 236  sub display_matched_courses { Line 264  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 257  sub display_matched_courses { Line 299  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 295  sub display_matched_courses { Line 348  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 347  sub build_filters { Line 399  sub build_filters {
     if ($formname eq 'portform') {      if ($formname eq 'portform') {
  $filter->{$item} ||= $env{'user.domain'};   $filter->{$item} ||= $env{'user.domain'};
  $allow_blank=0;   $allow_blank=0;
     }      } elsif ($formname eq 'studentform') {
                   $filter->{$item} ||= $env{'request.role.domain'};
                   $allow_blank=0;
               }
             $domainselectform =              $domainselectform =
  &Apache::loncommon::select_dom_form($filter->{$item},   &Apache::loncommon::select_dom_form($filter->{$item},
     'domainfilter',      'domainfilter',
Line 377  sub build_filters { Line 432  sub build_filters {
                       '15552000','31104000']));                        '15552000','31104000']));
   
     my %lt = (      my %lt = (
               'cac' => &mt('[_1] Activity',$type),                'cac' => &mt("$type Activity"),
               'cde' => &mt('[_1] Description',$type),                'cde' => &mt("$type Description"),
               'cdo' => &mt('[_1] Domain',$type),                'cdo' => &mt("$type Domain"),
               'cin' => &mt('Course Institutional Code'),                'cin' => &mt('Course Institutional Code'),
               'cow' => &mt("[_1] Owner's Username",$type),                'cow' => &mt("$type Owner's Username"),
               'cod' => &mt("[_1] Owner's Domain", $type),                'cod' => &mt("$type Owner's Domain"),
               'cog' => &mt('Course Type')                'cog' => &mt('Course Type')
              );               );
   
Line 393  sub build_filters { Line 448  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" ' : ''). ">".&mt($posstype)."</option>\n";
     }      }
     $typeselectform.="</select>";      $typeselectform.="</select>";
     my $output = qq|      my $output = qq|
Line 402  sub build_filters { Line 457  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 420  $multelement Line 477  $multelement
             $output .= '<input type="hidden" name="setroles" value="'.$env{'form.setroles'}.'" />';              $output .= '<input type="hidden" name="setroles" value="'.$env{'form.setroles'}.'" />';
         }          }
     }      }
   
       $output .= "<br />\n".&Apache::lonhtmlcommon::start_pick_box();
     if ($sincefilterform) {       if ($sincefilterform) { 
         $output .= $lt{'cac'}.': '.$sincefilterform.'<br />'."\n";          $output .= &Apache::lonhtmlcommon::row_title($lt{'cac'})
                     .$sincefilterform
                     .&Apache::lonhtmlcommon::row_closure();
     }      }
     if ($domainselectform) {      if ($domainselectform) {
         $output .= $lt{'cdo'}.': '.$domainselectform.'<br />'."\n";          $output .= &Apache::lonhtmlcommon::row_title($lt{'cdo'})
                     .$domainselectform
                     .&Apache::lonhtmlcommon::row_closure();
     }      }
     if ($typeselectform) {      if ($typeselectform) {
         $output .= $lt{'cog'}.': '.$typeselectform.'<br />'."\n";          $output .= &Apache::lonhtmlcommon::row_title($lt{'cog'})
                     .$typeselectform
                     .&Apache::lonhtmlcommon::row_closure();
     }      }
     if ($instcodeform) {      if ($instcodeform) {
         $output .= $lt{'cin'}.': '.$instcodeform.'<br />'."\n";          $output .= &Apache::lonhtmlcommon::row_title($lt{'cin'})
                     .$instcodeform
                     .&Apache::lonhtmlcommon::row_closure();
     }      }
     if (exists($filter->{'ownerfilter'})) {      if (exists($filter->{'ownerfilter'})) {
         $output .= $lt{'cow'}.': '.          $output .= &Apache::lonhtmlcommon::row_title($lt{'cow'})
                    '<input type="text" name="ownerfilter" size="10" value="'.                    .'<input type="text" name="ownerfilter" size="10" value="'
                    $list->{'ownerfilter'}.'" /><br />'."\n".                    .$list->{'ownerfilter'}.'" />'
                    $lt{'cod'}.': '.$ownerdomselectform.'<br />'."\n";                    .&Apache::lonhtmlcommon::row_closure()
                     .&Apache::lonhtmlcommon::row_title($lt{'cod'})
                     .$ownerdomselectform
                     .&Apache::lonhtmlcommon::row_closure();
     }      }
     if (exists($filter->{'coursefilter'})) {      if (exists($filter->{'coursefilter'})) {
         $output .= &mt('LON-CAPA course ID').': '.          $output .= &Apache::lonhtmlcommon::row_title(&mt('LON-CAPA course ID'))
                    '<input type="text" name="coursefilter" size="25" value="'.                    .'<input type="text" name="coursefilter" size="25" value="'
                     $list->{'coursefilter'}.'" /><br />';                    .$list->{'coursefilter'}.'" />'
                     .&Apache::lonhtmlcommon::row_closure();
     }      }
     if (exists($filter->{'descriptfilter'})) {      if (exists($filter->{'descriptfilter'})) {
         $output .=$lt{'cde'}.': '.          $output .= &Apache::lonhtmlcommon::row_title($lt{'cde'})
                   '<input type="text" name="descriptfilter" size="40" value="'.                    .'<input type="text" name="descriptfilter" size="40" value="'
                   $list->{'descriptfilter'}.'" />'."\n";                    .$list->{'descriptfilter'}.'" />'
     }                    .&Apache::lonhtmlcommon::row_closure(1);
     $output .= qq|      }
 <p><input type="submit" name="gosearch" value="Search" /></p>      $output .= &Apache::lonhtmlcommon::end_pick_box();
 </form>      $output .= '<p><input type="submit" name="gosearch" value="'. 
 <hr />                 &mt('Search').'" /></p>'."\n".'</form>'."\n".'<hr />'."\n";
 |;  
     return $output;       return $output; 
 }  }
   
Line 460  sub search_courses { Line 530  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 500  sub course_chooser { Line 570  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.66  
changed lines
  Added in v.1.75


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