Diff for /loncom/auth/lonroles.pm between versions 1.211 and 1.212

version 1.211, 2008/12/04 08:53:04 version 1.212, 2008/12/04 16:56:46
Line 651  ENDHEADER Line 651  ENDHEADER
  my $roletext;   my $roletext;
  my $sortkey;   my $sortkey;
         if ($envkey=~/^user\.role\./) {          if ($envkey=~/^user\.role\./) {
             my ($role,$where,$trolecode,$tstart,$tend,$tremark,$tstatus,$tpstart,$tpend,$tfont);              my ($role,$where,$trolecode,$tstart,$tend,$tremark,$tstatus,$tpstart,$tpend);
             &role_status($envkey,$then,$now,\$role,\$where,\$trolecode,\$tstatus,\$tstart,\$tend);              &role_status($envkey,$then,$now,\$role,\$where,\$trolecode,\$tstatus,\$tstart,\$tend);
             next if (!defined($role) || $role eq '' || $role =~ /^gr/);              next if (!defined($role) || $role eq '' || $role =~ /^gr/);
             $tremark='';              $tremark='';
             $tpstart=' ';              $tpstart=' ';
             $tpend=' ';              $tpend=' ';
             $tfont='#000000';  
             if ($tstart) {              if ($tstart) {
                 $tpstart=&Apache::lonlocal::locallocaltime($tstart);                  $tpstart=&Apache::lonlocal::locallocaltime($tstart);
             }              }
Line 674  ENDHEADER Line 673  ENDHEADER
  || ($tstatus eq 'future')    || ($tstatus eq 'future') 
                 || ($env{'form.showall'})) {                  || ($env{'form.showall'})) {
                 if ($tstatus eq 'is') {                  if ($tstatus eq 'is') {
                     $tbg='#77FF77';                      $tbg='LC_roles_is';
                     $tfont='#003300';  
     $possiblerole=$trolecode;      $possiblerole=$trolecode;
     $countactive++;      $countactive++;
                 } elsif ($tstatus eq 'future') {                  } elsif ($tstatus eq 'future') {
                     $tbg='#FFFF77';                      $tbg='LC_roles_future';
                     $button=0;                      $button=0;
                     $futureroles{$trolecode} = $tstart.':'.$tend;                      $futureroles{$trolecode} = $tstart.':'.$tend;
                     $countfuture ++;                      $countfuture ++;
                 } elsif ($tstatus eq 'will') {                  } elsif ($tstatus eq 'will') {
                     $tbg='#FFAA77';                      $tbg='LC_roles_will';
                     $tremark.=&mt('Active at next login.').' ';                      $tremark.=&mt('Active at next login.').' ';
                     $roles_nextlogin{$trolecode} = $tstart.':'.$tend;                      $roles_nextlogin{$trolecode} = $tstart.':'.$tend;
                     $countwill ++;                      $countwill ++;
                 } elsif ($tstatus eq 'expired') {                  } elsif ($tstatus eq 'expired') {
                     $tbg='#FF7777';                      $tbg='LC_roles_expired';
                     $tfont='#330000';  
                     $button=0;                      $button=0;
                 } elsif ($tstatus eq 'will_not') {                  } elsif ($tstatus eq 'will_not') {
                     $tbg='#AAFF77';                      $tbg='LC_roles_will_not';
                     $tremark.=&mt('Expired after logout.').' ';                      $tremark.=&mt('Expired after logout.').' ';
                 } elsif ($tstatus eq 'selected') {                  } elsif ($tstatus eq 'selected') {
                     $tbg='#11CC55';                      $tbg='LC_roles_selected';
                     $tfont='#002200';  
     $inrole=1;      $inrole=1;
     $countactive++;      $countactive++;
                     $tremark.=&mt('Currently selected.').' ';                      $tremark.=&mt('Currently selected.').' ';
Line 760  ENDHEADER Line 756  ENDHEADER
  $sortkey=$role."\0".$tdom."\0".$twhere."\0".$envkey;   $sortkey=$role."\0".$tdom."\0".$twhere."\0".$envkey;
                         unless ($twhere eq &mt('Currently not available')) {                          unless ($twhere eq &mt('Currently not available')) {
     $twhere.=' <span class="LC_fontsize_small">'.      $twhere.=' <span class="LC_fontsize_small">'.
         &Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$trest,$tdom,$tfont).          &Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$trest,$tdom).
                                     '</span>';                                      '</span>';
  }   }
                     } else {                      } else {
Line 770  ENDHEADER Line 766  ENDHEADER
  "\0".$envkey;   "\0".$envkey;
                             $twhere=$newhash{'description'}.                              $twhere=$newhash{'description'}.
                               ' <span class="LC_fontsize_small">'.                                ' <span class="LC_fontsize_small">'.
         &Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$trest,$tdom,$tfont).          &Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$trest,$tdom).
                               '</span>';                                '</span>';
                             $ttype = $newhash{'type'};                              $ttype = $newhash{'type'};
                             $trole = &Apache::lonnet::plaintext($role,$ttype);                              $trole = &Apache::lonnet::plaintext($role,$ttype);
Line 794  ENDHEADER Line 790  ENDHEADER
                     $twhere=&mt('system wide');                      $twhere=&mt('system wide');
     $sortkey=$role.$twhere;      $sortkey=$role.$twhere;
                 }                  }
                 $roletext.=&build_roletext($trolecode,$tdom,$trest,$tstatus,$tryagain,$advanced,$tremark,$tbg,$tfont,$trole,$twhere,$tpstart,$tpend,$nochoose,$button,$switchserver,$reinit);                  $roletext.=&build_roletext($trolecode,$tdom,$trest,$tstatus,$tryagain,$advanced,$tremark,$tbg,$trole,$twhere,$tpstart,$tpend,$nochoose,$button,$switchserver,$reinit);
  $roletext{$envkey}=$roletext;   $roletext{$envkey}=$roletext;
  if (!$sortkey) {$sortkey=$twhere."\0".$envkey;}   if (!$sortkey) {$sortkey=$twhere."\0".$envkey;}
  $sortrole{$sortkey}=$envkey;   $sortrole{$sortkey}=$envkey;
Line 804  ENDHEADER Line 800  ENDHEADER
     }      }
     if ($env{'user.adv'}) {      if ($env{'user.adv'}) {
         $r->print(          $r->print(
               '<br /><span class="LC_rolesinfo"><label>'.&mt('Show all roles').': <input type="checkbox" name="showall"');                '<p><label>'.&mt('Show all roles').': <input type="checkbox" name="showall"');
         if ($env{'form.showall'}) { $r->print(' checked="checked" '); }          if ($env{'form.showall'}) { $r->print(' checked="checked" '); }
         $r->print(' /></label><input type="submit" value="'.&mt('Display').'" /></span>');          $r->print(' /></label><input type="submit" value="'.&mt('Display').'" /></p>');
     } else {      } else {
         if ($countactive > 0) {          if ($countactive > 0) {
             my $domdesc = &Apache::lonnet::domain($env{'user.domain'},'description');              my $domdesc = &Apache::lonnet::domain($env{'user.domain'},'description');
Line 831  ENDHEADER Line 827  ENDHEADER
             &print_rolerows($r,$doheaders,\%roleclass,\%sortrole,\%dcroles,              &print_rolerows($r,$doheaders,\%roleclass,\%sortrole,\%dcroles,
                             \%roletext);                              \%roletext);
             my $tremark='';              my $tremark='';
             my $tfont='#003300';              my $tbg;
             if ($env{'request.role'} eq 'cm') {              if ($env{'request.role'} eq 'cm') {
                 $r->print('<tr bgcolor="#11CC55">');                  $tbg="LC_roles_selected";
                 $tremark=&mt('Currently selected.').' ';                  $tremark=&mt('Currently selected.').' ';
                 $tfont='#002200';  
             } else {              } else {
                 $r->print('<tr bgcolor="#77FF77">');                  $tbg="LC_roles_is";
             }              }
             $r->print('<td></td><td colspan="3"><span style="color:'.$tfont.';"><span class="LC_rolesinfo">'.&mt('No role specified').              $r->print(&Apache::loncommon::start_data_table_row()
                       '</span></font></td><td><span style="color:'.$tfont.';">'.$tremark.                       .'<td class="'.$tbg.'">&nbsp;</td>'
                       '&nbsp;</font></td></tr>'."\n");                       .'<td colspan="3">'
                        .&mt('No role specified')
                        .'</td>'
                        .'<td>'.$tremark.'&nbsp;</td>'
                        .&Apache::loncommon::end_data_table_row()
               );
   
             $r->print('</table>');              $r->print(&Apache::loncommon::end_data_table());
         }          }
         $r->print(&Apache::loncommon::end_page());          $r->print(&Apache::loncommon::end_page());
  return OK;   return OK;
Line 871  ENDHEADER Line 871  ENDHEADER
             }               } 
  }   }
  if ($output) {   if ($output) {
     $r->print("<tr><td align='center' colspan='5'>".      $r->print(&Apache::loncommon::start_data_table_empty_row()
       &mt('Recent Roles')."</td></tr>");                       .'<td align="center" colspan="5">'
                        .&mt('Recent Roles')
                        .'</td>'
                        .&Apache::loncommon::end_data_table_empty_row()
               );
     $r->print($output);      $r->print($output);
             $doheaders ++;              $doheaders ++;
  }   }
Line 886  ENDHEADER Line 890  ENDHEADER
     &print_rolerows($r,$doheaders,\%roleclass,\%sortrole,\%dcroles,\%roletext);      &print_rolerows($r,$doheaders,\%roleclass,\%sortrole,\%dcroles,\%roletext);
     if ($countactive > 1) {      if ($countactive > 1) {
         my $tremark='';          my $tremark='';
         my $tfont='#003300';          my $tbg;
         if ($env{'request.role'} eq 'cm') {          if ($env{'request.role'} eq 'cm') {
     $r->print('<tr bgcolor="#11CC55">');              $tbg="LC_roles_selected";
             $tremark=&mt('Currently selected.').' ';              $tremark=&mt('Currently selected.').' ';
             $tfont='#002200';  
         } else {          } else {
             $r->print('<tr bgcolor="#77FF77">');                  $tbg="LC_roles_is";
         }          }
           $r->print(&Apache::loncommon::start_data_table_row());
         unless ($nochoose) {          unless ($nochoose) {
     if ($env{'request.role'} ne 'cm') {      if ($env{'request.role'} ne 'cm') {
         $r->print('<td><input type="submit" value="'.          $r->print('<td class="'.$tbg.'"><input type="submit" value="'.
           &mt('Select').'" name="cm" /></td>');            &mt('Select').'" name="cm" /></td>');
     } else {      } else {
         $r->print('<td>&nbsp;</td>');          $r->print('<td class="'.$tbg.'">&nbsp;</td>');
     }      }
         }          }
         $r->print('<td colspan="3"><span style="color:'.$tfont.';"><span class="LC_rolesinfo">'.&mt('No role specified').          $r->print('<td colspan="3">'
                   '</span></span></td><td><span style="color:'.$tfont.';">'.$tremark.                   .&mt('No role specified')
                   '&nbsp;</span></td></tr>'."\n");                   .'</td>'
                    .'<td>'.$tremark.'&nbsp;</td>'
                    .&Apache::loncommon::end_data_table_row()
           );
     }       } 
     $r->print('</table>');      $r->print(&Apache::loncommon::end_data_table());
     unless ($nochoose) {      unless ($nochoose) {
  $r->print("</form>\n");   $r->print("</form>\n");
     }      }
 # ------------------------------------------------------------ Privileges Info  # ------------------------------------------------------------ Privileges Info
     if (($advanced) && (($env{'user.error.msg'}) || ($error))) {      if (($advanced) && (($env{'user.error.msg'}) || ($error))) {
  $r->print('<hr /><h2>Current Privileges</h2>');   $r->print('<hr /><h2>'.&mt('Current Privileges').'</h2>');
  $r->print(&privileges_info());   $r->print(&privileges_info());
     }      }
     $r->print(&Apache::lonnet::getannounce());      $r->print(&Apache::lonnet::getannounce());
Line 934  sub roletable_headers { Line 941  sub roletable_headers {
     my ($r,$roleclass,$sortrole,$nochoose) = @_;      my ($r,$roleclass,$sortrole,$nochoose) = @_;
     my $doheaders;      my $doheaders;
     if ((ref($sortrole) eq 'HASH') && (ref($roleclass) eq 'HASH')) {      if ((ref($sortrole) eq 'HASH') && (ref($roleclass) eq 'HASH')) {
         $r->print('<br /><table id="LC_rolesmenu"><tr>');          $r->print('<br />'
                    .&Apache::loncommon::start_data_table()
                    .&Apache::loncommon::start_data_table_header_row()
           );
         if (!$nochoose) { $r->print('<th>&nbsp;</th>'); }          if (!$nochoose) { $r->print('<th>&nbsp;</th>'); }
         $r->print('<th>'.&mt('User Role').'</th><th>'.&mt('Extent')          $r->print('<th>'.&mt('User Role').'</th>'
                   .'</th><th>'.&mt('Start').'</th><th>'.&mt('End')                   .'<th>'.&mt('Extent').'</th>'
                   .'</th></tr>'."\n");                   .'<th>'.&mt('Start').'</th>'
                    .'<th>'.&mt('End').'</th>'
                    .&Apache::loncommon::end_data_table_header_row()
           );
         $doheaders=-1;          $doheaders=-1;
         my @roletypes = &roletypes();          my @roletypes = &roletypes();
         foreach my $type (@roletypes) {          foreach my $type (@roletypes) {
Line 981  sub print_rolerows { Line 994  sub print_rolerows {
             }              }
             if ($output) {              if ($output) {
                 if ($doheaders > 0) {                  if ($doheaders > 0) {
                     $r->print("<tr>".                      $r->print(&Apache::loncommon::start_data_table_empty_row()
                               "<td align='center' colspan='5'>".                               .'<td align="center" colspan="5">'
                               &mt($type)."</td></tr>");                               .&mt($type)
                                .'</td>'
                                .&Apache::loncommon::end_data_table_empty_row()
                       );
                 }                  }
                 $r->print($output);                  $r->print($output);
             }              }
Line 1093  sub role_status { Line 1109  sub role_status {
 }  }
   
 sub build_roletext {  sub build_roletext {
     my ($trolecode,$tdom,$trest,$tstatus,$tryagain,$advanced,$tremark,$tbg,$tfont,$trole,$twhere,$tpstart,$tpend,$nochoose,$button,$switchserver,$reinit) = @_;      my ($trolecode,$tdom,$trest,$tstatus,$tryagain,$advanced,$tremark,$tbg,$trole,$twhere,$tpstart,$tpend,$nochoose,$button,$switchserver,$reinit) = @_;
     my $roletext='<tr bgcolor="'.$tbg.'" class="LC_rolesmenu_'.$tstatus.'">';      my $roletext=&Apache::loncommon::start_data_table_row();
     my $is_dc=($trolecode =~ m/^dc\./);      my $is_dc=($trolecode =~ m/^dc\./);
     my $rowspan=($is_dc) ? ''      my $rowspan=($is_dc) ? ''
                          : ' rowspan="2" ';                           : ' rowspan="2" ';
Line 1104  sub build_roletext { Line 1120  sub build_roletext {
         $buttonname=~s/\W//g;          $buttonname=~s/\W//g;
         if (!$button) {          if (!$button) {
             if ($switchserver) {              if ($switchserver) {
                 $roletext.='<td'.$rowspan.'><span class="LC_rolesinfo"><a href="/adm/switchserver?'.                  $roletext.='<td'.$rowspan.' class="'.$tbg.'">'
                 $switchserver.'">'.&mt('Switch Server').'</a></span></td>';                            .'<a href="/adm/switchserver?'.$switchserver.'">'
                             .&mt('Switch Server')
                             .'</a></td>';
             } else {              } else {
                 $roletext.=('<td'.$rowspan.'>&nbsp;</td>');                  $roletext.=('<td'.$rowspan.' class="'.$tbg.'">&nbsp;</td>');
             }              }
         } elsif ($tstatus eq 'is') {          } elsif ($tstatus eq 'is') {
             $roletext.='<td'.$rowspan.'><input name="'.$buttonname.'" type="button" value="'.              $roletext.='<td'.$rowspan.' class="'.$tbg.'">'.
                           '<input name="'.$buttonname.'" type="button" value="'.
                         &mt('Select').'" onClick="javascript:enterrole(this.form,\''.                          &mt('Select').'" onClick="javascript:enterrole(this.form,\''.
                         $trolecode."','".$buttonname.'\');" /></td>';                          $trolecode."','".$buttonname.'\');" /></td>';
         } elsif ($tryagain) {          } elsif ($tryagain) {
             $roletext.=              $roletext.=
                 '<td'.$rowspan.'><input name="'.$buttonname.'" type="button" value="'.                  '<td'.$rowspan.' class="'.$tbg.'">'.
                   '<input name="'.$buttonname.'" type="button" value="'.
                 &mt('Try Selecting Again').'" onClick="javascript:enterrole(this.form,\''.                  &mt('Try Selecting Again').'" onClick="javascript:enterrole(this.form,\''.
                         $trolecode."','".$buttonname.'\');" /></td>';                          $trolecode."','".$buttonname.'\');" /></td>';
         } elsif ($advanced) {          } elsif ($advanced) {
             $roletext.=              $roletext.=
                 '<td'.$rowspan.'><input name="'.$buttonname.'" type="button" value="'.                  '<td'.$rowspan.' class="'.$tbg.'">'.
                   '<input name="'.$buttonname.'" type="button" value="'.
                 &mt('Re-Initialize').'" onClick="javascript:enterrole(this.form,\''.                  &mt('Re-Initialize').'" onClick="javascript:enterrole(this.form,\''.
                         $trolecode."','".$buttonname.'\');" /></td>';                          $trolecode."','".$buttonname.'\');" /></td>';
         } elsif ($reinit) {          } elsif ($reinit) {
             $roletext.=               $roletext.= 
                 '<td'.$rowspan.'><input name="'.$buttonname.'" type="button" value="'.                  '<td'.$rowspan.' class="'.$tbg.'">'.
                   '<input name="'.$buttonname.'" type="button" value="'.
                 &mt('Re-Select').'" onClick="javascript:enterrole(this.form,\''.                  &mt('Re-Select').'" onClick="javascript:enterrole(this.form,\''.
                         $trolecode."','".$buttonname.'\');" /></td>';                          $trolecode."','".$buttonname.'\');" /></td>';
         } else {          } else {
             $roletext.=              $roletext.=
                 '<td'.$rowspan.'><input name="'.$buttonname.'" type="button" value="'.                  '<td'.$rowspan.' class="'.$tbg.'">'.
                   '<input name="'.$buttonname.'" type="button" value="'.
                 &mt('Re-Initialize').'" onClick="javascript:enterrole(this.form,\''.                  &mt('Re-Initialize').'" onClick="javascript:enterrole(this.form,\''.
                         $trolecode."','".$buttonname.'\');" /></td>';                          $trolecode."','".$buttonname.'\');" /></td>';
         }          }
Line 1139  sub build_roletext { Line 1162  sub build_roletext {
  $tremark.=&Apache::lonannounce::showday(time,1,   $tremark.=&Apache::lonannounce::showday(time,1,
  &Apache::lonannounce::readcalendar($tdom.'_'.$trest));   &Apache::lonannounce::readcalendar($tdom.'_'.$trest));
     }      }
     $roletext.='<td><span style="color:'.$tfont.';">'.$trole.      $roletext.='<td>'.$trole.'</td>'
        '</span></td><td><span style="color:'.$tfont.';">'.$twhere.                .'<td>'.$twhere.'</td>'
                '</span></td><td><span style="color:'.$tfont.';">'.$tpstart.                .'<td>'.$tpstart.'</td>'
                '</span></td><td><span style="color:'.$tfont.';">'.$tpend.                .'<td>'.$tpend.'</td>'
                '</span></td></tr>';                .&Apache::loncommon::end_data_table_row();
     if (!$is_dc) {      if (!$is_dc) {
  $roletext.='<tr bgcolor="'.$tbg.'"><td colspan="4"><span style="color:'.$tfont.';"><span class="LC_rolesinfo">'.$tremark.          $roletext.=&Apache::loncommon::continue_data_table_row()
     '</span>&nbsp;</span></td></tr><tr><td colspan="5" height="3"></td></tr>'."\n";                    .'<td colspan="4">'
                     .$tremark.'&nbsp;'
                     .'</td>'
                     .&Apache::loncommon::end_data_table_row();
     }      }
     return $roletext;      return $roletext;
 }  }
Line 1190  sub check_privs { Line 1216  sub check_privs {
     my ($cdom,$cnum,$then,$now,$checkrole) = @_;      my ($cdom,$cnum,$then,$now,$checkrole) = @_;
     my $cckey = 'user.role.'.$checkrole.'./'.$cdom.'/'.$cnum;       my $cckey = 'user.role.'.$checkrole.'./'.$cdom.'/'.$cnum; 
     if ($env{$cckey}) {      if ($env{$cckey}) {
         my ($role,$where,$trolecode,$tstart,$tend,$tremark,$tstatus,$tpstart,$tpend,$tfont);          my ($role,$where,$trolecode,$tstart,$tend,$tremark,$tstatus,$tpstart,$tpend);
         &role_status($cckey,$then,$now,\$role,\$where,\$trolecode,\$tstatus,\$tstart,\$tend);          &role_status($cckey,$then,$now,\$role,\$where,\$trolecode,\$tstatus,\$tstart,\$tend);
         unless (($tstatus eq 'is') || ($tstatus eq 'will_not')) {          unless (($tstatus eq 'is') || ($tstatus eq 'will_not')) {
             &set_privileges($cdom,$cnum,$checkrole);              &set_privileges($cdom,$cnum,$checkrole);
Line 1363  sub display_cc_role { Line 1389  sub display_cc_role {
             my $trolecode = 'cc./'.$1.'/'.$2;              my $trolecode = 'cc./'.$1.'/'.$2;
             my $twhere;              my $twhere;
             my $ttype;              my $ttype;
             my $tbg='#77FF77';              my $tbg='LC_roles_is';
             my $tfont='#003300';  
             my %newhash=&Apache::lonnet::coursedescription($tcourseid);              my %newhash=&Apache::lonnet::coursedescription($tcourseid);
             if (%newhash) {              if (%newhash) {
                 $twhere=$newhash{'description'}.                  $twhere=$newhash{'description'}.
                         ' <span style="LC_fontsize_small">'.                          ' <span style="LC_fontsize_small">'.
                         &Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$2,$1,$tfont).                          &Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$2,$1).
                         '</span>';                          '</span>';
                 $ttype = $newhash{'type'};                  $ttype = $newhash{'type'};
             } else {              } else {
Line 1378  sub display_cc_role { Line 1403  sub display_cc_role {
             }              }
             my $trole = &Apache::lonnet::plaintext('cc',$ttype);              my $trole = &Apache::lonnet::plaintext('cc',$ttype);
             $twhere.="<br />".&mt('Domain').":".$1;              $twhere.="<br />".&mt('Domain').":".$1;
             $roletext = &build_roletext($trolecode,$1,$2,'is',$tryagain,$advanced,'',$tbg,$tfont,$trole,$twhere,'','','',1,'');              $roletext = &build_roletext($trolecode,$1,$2,'is',$tryagain,$advanced,'',$tbg,$trole,$twhere,'','','',1,'');
         }          }
     }      }
     return ($roletext);      return ($roletext);
Line 1386  sub display_cc_role { Line 1411  sub display_cc_role {
   
 sub adhoc_roles_row {  sub adhoc_roles_row {
     my ($dcdom,$rowtype) = @_;      my ($dcdom,$rowtype) = @_;
     my $output = '<tr bgcolor="#77FF77">'.      my $output = &Apache::loncommon::continue_data_table_row()
                  ' <td colspan="5"><table><tr><td><span class="LC_rolesinfo">'                   .' <td colspan="5">'
                  .&mt('[_1]Ad hoc[_2] roles in domain [_3] --',                   .'<table><tr><td>'
                  '<span class="LC_cusr_emph">','</span>',$dcdom).'</span></td><td>';                   .&mt('[_1]Ad hoc[_2] roles in domain [_3] --'
                        ,'<span class="LC_cusr_emph">','</span>',$dcdom)
                    .'</td>'
                    .'<td>';
     my $selectcclink = &courselink($dcdom,$rowtype);      my $selectcclink = &courselink($dcdom,$rowtype);
     my $ccrole = &Apache::lonnet::plaintext('cc');      my $ccrole = &Apache::lonnet::plaintext('cc');
     my $carole = &Apache::lonnet::plaintext('ca');      my $carole = &Apache::lonnet::plaintext('ca');
     my $selectcalink = &coauthorlink($dcdom,$rowtype);      my $selectcalink = &coauthorlink($dcdom,$rowtype);
     $output.= '<span class="LC_rolesinfo">'.      $output.=&mt('[_1]: [_2]',$ccrole,$selectcclink)
             &mt('[_1]: [_2]',$ccrole,$selectcclink).              .'<br /></td>'
             '</span><br /></td><td>&nbsp;&nbsp;</td><td><span class="LC_rolesinfo">'.              .'<td>&nbsp;&nbsp;</td>'
             &mt('[_1]: [_2]',$carole,$selectcalink).              .'<td>'.&mt('[_1]: [_2]',$carole,$selectcalink).'<br /></td>'
             '</span><br /></td></tr></table></td></tr>'.              .'</tr></table>'
             '<tr><td colspan="5" height="3"></td></tr>'."\n";              .'</td>'
               .&Apache::loncommon::end_data_table_row();
     return $output;      return $output;
 }  }
   

Removed from v.1.211  
changed lines
  Added in v.1.212


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