Diff for /loncom/auth/lonroles.pm between versions 1.231.4.15 and 1.240

version 1.231.4.15, 2010/08/20 03:40:01 version 1.240, 2009/11/03 03:01:47
Line 158  sub redirect_user { Line 158  sub redirect_user {
  $navwindow.=&Apache::lonnavmaps::close();   $navwindow.=&Apache::lonnavmaps::close();
     }      }
   
       # Breadcrumbs
       my $brcrum = [{'href' => $url,
                      'text' => 'Switching Role'},];
     my $start_page = &Apache::loncommon::start_page('Switching Role',undef,      my $start_page = &Apache::loncommon::start_page('Switching Role',undef,
                                                     {'redirect' => [1,$url]});                                                      {'redirect' => [1,$url],
                                                        'bread_crumbs' => $brcrum,});
     my $end_page   = &Apache::loncommon::end_page();      my $end_page   = &Apache::loncommon::end_page();
   
 # Note to style police:   # Note to style police: 
Line 185  sub error_page { Line 189  sub error_page {
     &Apache::loncommon::no_cache($r);      &Apache::loncommon::no_cache($r);
     $r->send_http_header;      $r->send_http_header;
     return OK if $r->header_only;      return OK if $r->header_only;
     $r->print(&Apache::loncommon::start_page('Problems during Course Initialization').      # Breadcrumbs
       my $brcrum = [{'href' => $dest,
                      'text' => 'Problems during Course Initialization'},];
       $r->print(&Apache::loncommon::start_page('Problems during Course Initialization',
                                                undef,
                                                {'bread_crumbs' => $brcrum,})
       );
       $r->print(
         '<script type="text/javascript">'.          '<script type="text/javascript">'.
         '// <![CDATA['.          '// <![CDATA['.
         &Apache::lonmenu::rawconfig().          &Apache::lonmenu::rawconfig().
         '// ]]>'.          '// ]]>'.
         '</script>'.          '</script>'.
       '<p class="LC_error">'.&mt('The following problems occurred:').        '<p class="LC_error">'.&mt('The following problems occurred:').
               '<br />'.            '<br />'.
       $error.        $error.
       '</p><br /><a href="'.$dest.'">'.&mt('Continue').'</a>'.        '</p><br /><a href="'.$dest.'">'.&mt('Continue').'</a>'
               &Apache::loncommon::end_page());      );
       $r->print(&Apache::loncommon::end_page());
 }  }
   
 sub handler {  sub handler {
Line 225  sub handler { Line 237  sub handler {
  if ($env{'request.course.id'}) {   if ($env{'request.course.id'}) {
             # Check if user is CC trying to select a course role              # Check if user is CC trying to select a course role
             if ($env{'form.switchrole'}) {              if ($env{'form.switchrole'}) {
                 my $switch_is_active;                  if (!defined($env{'user.role.'.$env{'form.switchrole'}})) {
                 if (defined($env{'user.role.'.$env{'form.switchrole'}})) {  
                     my ($start,$end) = split(/\./,$env{'user.role.'.$env{'form.switchrole'}});  
                     if (!$end || $end > $now) {  
                         if (!$start || $start < $refresh) {  
                             $switch_is_active = 1;  
                         }  
                     }  
                 }  
                 unless ($switch_is_active) {  
                     &adhoc_course_role($refresh,$then);                      &adhoc_course_role($refresh,$then);
                 }                  }
             }              }
Line 270  sub handler { Line 273  sub handler {
                         my ($server_status,$home) = &check_author_homeserver($user,$domain);                          my ($server_status,$home) = &check_author_homeserver($user,$domain);
                         if ($server_status eq 'switchserver') {                          if ($server_status eq 'switchserver') {
                             my $trolecode = 'au./'.$domain.'/';                              my $trolecode = 'au./'.$domain.'/';
                             my $switchserver = '/adm/switchserver?otherserver='.$home.'&amp;role='.$trolecode;                              my $switchserver = '/adm/switchserver?otherserver='.$home.'&role='.$trolecode;
                             $r->internal_redirect($switchserver);                              $r->internal_redirect($switchserver);
                         }                          }
                         last;                          last;
Line 281  sub handler { Line 284  sub handler {
                             my ($server_status,$home) = &check_author_homeserver($user,$domain);                              my ($server_status,$home) = &check_author_homeserver($user,$domain);
                             if ($server_status eq 'switchserver') {                              if ($server_status eq 'switchserver') {
                                 my $trolecode = 'ca./'.$domain.'/'.$user;                                  my $trolecode = 'ca./'.$domain.'/'.$user;
                                 my $switchserver = '/adm/switchserver?otherserver='.$home.'&amp;role='.$trolecode;                                  my $switchserver = '/adm/switchserver?otherserver='.$home.'&role='.$trolecode;
                                 $r->internal_redirect($switchserver);                                  $r->internal_redirect($switchserver);
                             }                              }
                             last;                              last;
Line 302  sub handler { Line 305  sub handler {
                             if ($server_status eq 'switchserver') {                              if ($server_status eq 'switchserver') {
                                 my $trolecode = 'ca./'.$domain.'/'.$user;                                   my $trolecode = 'ca./'.$domain.'/'.$user; 
                                 my $switchserver = '/adm/switchserver?'                                  my $switchserver = '/adm/switchserver?'
                                                   .'otherserver='.$home.'&amp;role='.$trolecode;                                                    .'otherserver='.$home.'&role='.$trolecode;
                                 $r->internal_redirect($switchserver);                                  $r->internal_redirect($switchserver);
                             }                              }
                         } else {                          } else {
Line 489  ENDENTERKEY Line 492  ENDENTERKEY
  }   }
  $courseid =~ s/\//_/;   $courseid =~ s/\//_/;
  if ((($role eq 'cc') || ($role eq 'co'))    if ((($role eq 'cc') || ($role eq 'co')) 
                                       && ($env{'course.' . $courseid .'.course.helper.not.run'})) {                                       && ($env{'course.' . $courseid .'.course.helper.not.run'})) { 
     $furl = "/adm/helper/course.initialization.helper";      $furl = "/adm/helper/course.initialization.helper";
     # Send the user to the course they selected      # Send the user to the course they selected
  } elsif ($env{'request.course.id'}) {   } elsif ($env{'request.course.id'}) {
Line 708  ENDHEADER Line 711  ENDHEADER
                  .'</p>');                   .'</p>');
     } else {      } else {
         if ($countactive > 0) {          if ($countactive > 0) {
             $r->print(&Apache::loncoursequeueadmin::queued_selfenrollment());              &queued_selfenrollment($r);
             my $domdesc = &Apache::lonnet::domain($env{'user.domain'},'description');              my $domdesc = &Apache::lonnet::domain($env{'user.domain'},'description');
             my $esc_dom = &HTML::Entities::encode($env{'user.domain'},'"<>&');               my $esc_dom = &HTML::Entities::encode($env{'user.domain'},'"<>&'); 
   
             $r->print(              $r->print(
                 '<p>'                  '<p>'
                .&mt('[_1]Visit the [_2]Course/Community Catalog[_3]'                 .&mt('[_1]Visit the [_2]Course/Community Catalog[_3]'
Line 736  ENDHEADER Line 738  ENDHEADER
     $r->print('<h2>'.&mt('Currently no active roles, courses or communities').'</h2>');      $r->print('<h2>'.&mt('Currently no active roles, courses or communities').'</h2>');
  }   }
         &findcourse_advice($r);          &findcourse_advice($r);
         &requestcourse_advice($r);          &requestcourse_advice($r); 
  $r->print('</form>');   $r->print('</form>');
         if ($countfuture) {          if ($countfuture) {
             $r->print(&mt('The following [quant,_1,role,roles] will become active in the future:',$countfuture));              $r->print(&mt('The following [quant,_1,role,roles] will become active in the future:',$countfuture));
Line 767  ENDHEADER Line 769  ENDHEADER
  return OK;   return OK;
     }      }
 # ----------------------------------------------------------------------- Table  # ----------------------------------------------------------------------- Table
     if ($numdc > 0) {  
         $r->print(&coursepick_jscript());  
         $r->print(&Apache::loncommon::coursebrowser_javascript().  
                   &Apache::loncommon::authorbrowser_javascript());  
     }  
   
     unless ((!&Apache::loncommon::show_course()) || ($nochoose) || ($countactive==1)) {      unless ((!&Apache::loncommon::show_course()) || ($nochoose) || ($countactive==1)) {
  $r->print("<h2>".&mt('Select a Course to Enter')."</h2>\n");   $r->print("<h2>".&mt('Select a Course to Enter')."</h2>\n");
     }      }
Line 789  ENDHEADER Line 785  ENDHEADER
         my %recent_roles =          my %recent_roles =
                &Apache::lonhtmlcommon::get_recent('roles',$env{'environment.recentrolesn'});                 &Apache::lonhtmlcommon::get_recent('roles',$env{'environment.recentrolesn'});
  my $output='';   my $output='';
  foreach my $role (sort(keys(%recent_roles))) {   foreach (sort(keys(%recent_roles))) {
     if (ref($roletext{'user.role.'.$role}) eq 'ARRAY') {      if (ref($roletext{'user.role.'.$_}) eq 'ARRAY') {
  $output.= &Apache::loncommon::start_data_table_row().   $output.= &Apache::loncommon::start_data_table_row().
                           $roletext{'user.role.'.$role}->[0].                            $roletext{'user.role.'.$_}->[0].
                             &Apache::loncommon::end_data_table_row().
                             &Apache::loncommon::continue_data_table_row().
                             $roletext{'user.role.'.$_}->[1].
                           &Apache::loncommon::end_data_table_row();                            &Apache::loncommon::end_data_table_row();
                 if ($roletext{'user.role.'.$role}->[1] ne '') {                  if ($_ =~ m-dc\./($match_domain)/- 
                     $output .= &Apache::loncommon::continue_data_table_row().  
                                $roletext{'user.role.'.$role}->[1].  
                                &Apache::loncommon::end_data_table_row();  
                 }  
                 if ($role =~ m{dc\./($match_domain)/}   
     && $dcroles{$1}) {      && $dcroles{$1}) {
     $output .= &adhoc_roles_row($1,'recent');      $output .= &adhoc_roles_row($1,'recent');
                 }                  }
     } elsif ($numdc > 0) {      } elsif ($numdc > 0) {
                 unless ($role =~/^error\:/) {                  unless ($_ =~/^error\:/) {
                     my ($roletext,$role_text_end) = &display_cc_role('user.role.'.$role);                      $output.=&display_cc_role('user.role.'.$_);
                     $output.= &Apache::loncommon::start_data_table_row().  
                               $roletext.  
                               &Apache::loncommon::end_data_table_row().  
                               &Apache::loncommon::continue_data_table_row().  
                               $role_text_end.  
                               &Apache::loncommon::end_data_table_row();  
                 }                  }
             }              } 
  }   }
  if ($output) {   if ($output) {
     $r->print(&Apache::loncommon::start_data_table_empty_row()      $r->print(&Apache::loncommon::start_data_table_empty_row()
Line 826  ENDHEADER Line 814  ENDHEADER
             $doheaders ++;              $doheaders ++;
  }   }
     }      }
   
       if ($numdc > 0) {
           $r->print(&coursepick_jscript());
           $r->print(&Apache::loncommon::coursebrowser_javascript().
                     &Apache::loncommon::authorbrowser_javascript());
       }
     &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='';
Line 933  sub gather_roles { Line 927  sub gather_roles {
                 if ($role =~ /^cr\//) {                  if ($role =~ /^cr\//) {
                     my ($rdummy,$rdomain,$rauthor,$rrole)=split(/\//,$role);                      my ($rdummy,$rdomain,$rauthor,$rrole)=split(/\//,$role);
                     if ($tremark) { $tremark.='<br />'; }                      if ($tremark) { $tremark.='<br />'; }
                     $tremark.=&mt('Customrole defined by [_1].',$rauthor.':'.$rdomain);                      $tremark.=&mt('Defined by [_1] at [_2].',$rauthor,$rdomain);
                 }                  }
                 $trole=Apache::lonnet::plaintext($role);                  $trole=Apache::lonnet::plaintext($role);
                 my $ttype;                  my $ttype;
Line 948  sub gather_roles { Line 942  sub gather_roles {
                     foreach my $id (@ids) { if ($id eq $home) { $allowed=1; } }                      foreach my $id (@ids) { if ($id eq $home) { $allowed=1; } }
                     if (!$allowed) {                      if (!$allowed) {
                         $button=0;                          $button=0;
                         $switchserver='otherserver='.$home.'&amp;role='.$trolecode;                          $switchserver='otherserver='.$home.'&role='.$trolecode;
                     }                      }
                     #next if ($home eq 'no_host');                      #next if ($home eq 'no_host');
                     $home = &Apache::lonnet::hostname($home);                      $home = &Apache::lonnet::hostname($home);
Line 968  sub gather_roles { Line 962  sub gather_roles {
                     foreach my $id (@ids) { if ($id eq $home) { $allowed=1; } }                      foreach my $id (@ids) { if ($id eq $home) { $allowed=1; } }
                     if (!$allowed) {                      if (!$allowed) {
                         $button=0;                          $button=0;
                         $switchserver='otherserver='.$home.'&amp;role='.$trolecode;                          $switchserver='otherserver='.$home.'&role='.$trolecode;
                     }                      }
                     #next if ($home eq 'no_host');                      #next if ($home eq 'no_host');
                     $home = &Apache::lonnet::hostname($home);                      $home = &Apache::lonnet::hostname($home);
Line 981  sub gather_roles { Line 975  sub gather_roles {
                 } elsif ($trest) {                  } elsif ($trest) {
                     my $tcourseid=$tdom.'_'.$trest;                      my $tcourseid=$tdom.'_'.$trest;
                     $ttype = &Apache::loncommon::course_type($tcourseid);                      $ttype = &Apache::loncommon::course_type($tcourseid);
                     $trole = &Apache::lonnet::plaintext($role,$ttype,$tcourseid);                      $trole = &Apache::lonnet::plaintext($role,$ttype);
                     if ($env{'course.'.$tcourseid.'.description'}) {                      if ($env{'course.'.$tcourseid.'.description'}) {
                         $twhere=$env{'course.'.$tcourseid.'.description'};                          $twhere=$env{'course.'.$tcourseid.'.description'};
                         $sortkey=$role."\0".$tdom."\0".$twhere."\0".$envkey;                          $sortkey=$role."\0".$tdom."\0".$twhere."\0".$envkey;
                         $twhere = &HTML::Entities::encode($twhere,'"<>&');  
                         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).          &Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$trest,$tdom).
Line 996  sub gather_roles { Line 989  sub gather_roles {
                         if (%newhash) {                          if (%newhash) {
                             $sortkey=$role."\0".$tdom."\0".$newhash{'description'}.                              $sortkey=$role."\0".$tdom."\0".$newhash{'description'}.
                                 "\0".$envkey;                                  "\0".$envkey;
                             $twhere=&HTML::Entities::encode($newhash{'description'},'"<>&').                              $twhere=$newhash{'description'}.
                               ' <span class="LC_fontsize_small">'.                                ' <span class="LC_fontsize_small">'.
         &Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$trest,$tdom).          &Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$trest,$tdom).
                               '</span>';                                '</span>';
                             $ttype = $newhash{'type'};                              $ttype = $newhash{'type'};
                             $trole = &Apache::lonnet::plaintext($role,$ttype,$tcourseid);                              $trole = &Apache::lonnet::plaintext($role,$ttype);
                         } else {                          } else {
                             $twhere=&mt('Currently not available');                              $twhere=&mt('Currently not available');
                             $env{'course.'.$tcourseid.'.description'}=$twhere;                              $env{'course.'.$tcourseid.'.description'}=$twhere;
Line 1133  sub print_rolerows { Line 1126  sub print_rolerows {
                         if (ref($roletext->{$sortrole->{$which}}) eq 'ARRAY') {                          if (ref($roletext->{$sortrole->{$which}}) eq 'ARRAY') {
                             $output.= &Apache::loncommon::start_data_table_row().                              $output.= &Apache::loncommon::start_data_table_row().
                                       $roletext->{$sortrole->{$which}}->[0].                                        $roletext->{$sortrole->{$which}}->[0].
                                         &Apache::loncommon::end_data_table_row().
                                         &Apache::loncommon::continue_data_table_row().
                                         $roletext->{$sortrole->{$which}}->[1].
                                       &Apache::loncommon::end_data_table_row();                                        &Apache::loncommon::end_data_table_row();
                             if ($roletext->{$sortrole->{$which}}->[1] ne '') {  
                                 $output .= &Apache::loncommon::continue_data_table_row().  
                                            $roletext->{$sortrole->{$which}}->[1].  
                                            &Apache::loncommon::end_data_table_row();  
                             }  
                         }                          }
                         if ($sortrole->{$which} =~ m-dc\./($match_domain)/-) {                          if ($sortrole->{$which} =~ m-dc\./($match_domain)/-) {
                             if (ref($dcroles) eq 'HASH') {                              if (ref($dcroles) eq 'HASH') {
Line 1183  sub findcourse_advice { Line 1174  sub findcourse_advice {
     }      }
     $r->print('<h3>'.&mt('Self-Enrollment').'</h3>'.      $r->print('<h3>'.&mt('Self-Enrollment').'</h3>'.
               '<p>'.&mt('The [_1]Course/Community Catalog[_2] provides information about all [_3] classes for which LON-CAPA courses have been created, as well as any communities in the domain.','<a href="/adm/coursecatalog?showdom='.$esc_dom.'">','</a>',$domdesc).'<br />');                '<p>'.&mt('The [_1]Course/Community Catalog[_2] provides information about all [_3] classes for which LON-CAPA courses have been created, as well as any communities in the domain.','<a href="/adm/coursecatalog?showdom='.$esc_dom.'">','</a>',$domdesc).'<br />');
     $r->print(&mt('You can search for courses and communities which permit self-enrollment, if you would like to enroll in one.').'</p>'.      $r->print(&mt('You can search for courses and communities which permit self-enrollment, if you would like to enroll in one.').'</p>');
               &Apache::loncoursequeueadmin::queued_selfenrollment());      &queued_selfenrollment($r);
     return;      return;
 }  }
   
Line 1196  sub requestcourse_advice { Line 1187  sub requestcourse_advice {
     &Apache::lonnet::check_can_request($env{'user.domain'},\%can_request,\%request_doms);      &Apache::lonnet::check_can_request($env{'user.domain'},\%can_request,\%request_doms);
     if (keys(%request_doms) > 0) {      if (keys(%request_doms) > 0) {
         my ($types,$typename) = &Apache::loncommon::course_types();          my ($types,$typename) = &Apache::loncommon::course_types();
         if ((ref($types) eq 'ARRAY') && (ref($typename) eq 'HASH')) {          if ((ref($types) eq 'ARRAY') && (ref($typename) eq 'HASH')) { 
             $r->print('<h3>'.&mt('Request creation of a course or community').'</h3>'.              $r->print('<h3>'.&mt('Request creation of a course or community').'</h3>'.
                       '<p>'.&mt('You have rights to request the creation of courses and/or communities in the following domain(s):').'<ul>');                        '<p>'.&mt('You have rights to request the creation of courses and/or communities in the following domain(s):').'<ul>');
             my (@reqdoms,@reqtypes);              my (@reqdoms,@reqtypes);
             foreach my $type (sort(keys(%request_doms))) {              foreach my $type (sort(keys(%request_doms))) {
                 push(@reqtypes,$type);                  push(@reqtypes,$type); 
                 if (ref($request_doms{$type}) eq 'ARRAY') {                  if (ref($request_doms{$type}) eq 'ARRAY') {
                     my $domstr = join(', ',map { &Apache::lonnet::domain($_) } sort(@{$request_doms{$type}}));                      my $domstr = join(', ',map { &Apache::lonnet::domain($_) } sort(@{$request_doms{$type}}));
                     $r->print(                      $r->print(
Line 1234  sub requestcourse_advice { Line 1225  sub requestcourse_advice {
             }              }
             if (@reqdoms == 1 || @showtypes > 0) {              if (@reqdoms == 1 || @showtypes > 0) {
                 $requrl .= '&state=crstype&action=new';                  $requrl .= '&state=crstype&action=new';
             }              } 
             $r->print('</ul>'.&mt('Use the [_1]request form[_2] to submit a request for creation of a new course or community.','<a href="'.$requrl.'">','</a>').'</p>');              $r->print('</ul>'.&mt('Use the [_1]request form[_2] to submit a request for creation of a new course or community.','<a href="'.$requrl.'">','</a>').'</p>');
         }          }
     }      }
     return;      return;
 }  }
   
   sub queued_selfenrollment {
       my ($r) = @_;
       my %selfenrollrequests = &Apache::lonnet::dump('selfenrollrequests');
       my %reqs_by_date;
       foreach my $item (keys(%selfenrollrequests)) {
           if (ref($selfenrollrequests{$item}) eq 'HASH') {
               if ($selfenrollrequests{$item}{'status'} eq 'request') {
                   if ($selfenrollrequests{$item}{'timestamp'}) {
                       push(@{$reqs_by_date{$selfenrollrequests{$item}{'timestamp'}}},$item);
                   }
               } 
           }
       }
       if (keys(%reqs_by_date)) {
           my $rolename = &Apache::lonnet::plaintext('st');
           $r->print('<b>'.&mt('Enrollment requests pending Course Coordinator approval').'</b><br />'.
                     &Apache::loncommon::start_data_table().
                     &Apache::loncommon::start_data_table_header_row().
                     '<th>'.&mt('Date requested').'</th><th>'.&mt('Course title').'</th>'.
                     '<th>'.&mt('User role').'</th><th>'.&mt('Section').'</th>'.
                    &Apache::loncommon::end_data_table_header_row());
           my @sorted = sort { $a <=> $b } (keys(%reqs_by_date));
           foreach my $item (@sorted) {
               if (ref($reqs_by_date{$item}) eq 'ARRAY') {
                   foreach my $crs (@{$reqs_by_date{$item}}) {
                       my %courseinfo = &Apache::lonnet::coursedescription($crs);
                       my $usec = $selfenrollrequests{$crs}{'section'};
                       if ($usec eq '') {
                           $usec = &mt('No section'); 
                       }
                       $r->print(&Apache::loncommon::start_data_table_row().
                                '<td>'.&Apache::lonlocal::locallocaltime($item).'</td>'.
                                '<td>'.$courseinfo{'description'}.'</td>'.
                                '<td>'.$rolename.'</td><td>'.$usec.'</td>'.
                                &Apache::loncommon::end_data_table_row());
                   }
               }
           }
           $r->print(&Apache::loncommon::end_data_table());
       }
       return;
   }
   
 sub privileges_info {  sub privileges_info {
     my ($which) = @_;      my ($which) = @_;
     my $output;      my $output;
Line 1565  sub display_cc_role { Line 1599  sub display_cc_role {
     unless ($rolekey =~/^error\:/) {      unless ($rolekey =~/^error\:/) {
         if ($rolekey =~ m{^user\.role\.(cc|co)\./($match_domain)/($match_courseid)$}) {          if ($rolekey =~ m{^user\.role\.(cc|co)\./($match_domain)/($match_courseid)$}) {
             my $ccrole = $1;              my $ccrole = $1;
             my $tdom = $2;              my $tcourseid = $2.'_'.$3;
             my $trest = $3;              my $trolecode = $1.'./'.$2.'/'.$3;
             my $tcourseid = $tdom.'_'.$trest;  
             my $trolecode = $ccrole.'./'.$tdom.'/'.$trest;  
             my $twhere;              my $twhere;
             my $ttype;              my $ttype;
             my $tbg='LC_roles_is';              my $tbg='LC_roles_is';
Line 1576  sub display_cc_role { Line 1608  sub display_cc_role {
             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'),$trest,$tdom).                          &Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$2,$1).
                         '</span>';                          '</span>';
                 $ttype = $newhash{'type'};                  $ttype = $newhash{'type'};
             } else {              } else {
                 $twhere=&mt('Currently not available');                  $twhere=&mt('Currently not available');
                 $env{'course.'.$tcourseid.'.description'}=$twhere;                  $env{'course.'.$tcourseid.'.description'}=$twhere;
             }              }
             my $trole = &Apache::lonnet::plaintext($ccrole,$ttype,$tcourseid);              my $trole = &Apache::lonnet::plaintext($ccrole,$ttype);
             $twhere.="<br />".&mt('Domain').":".$tdom;              $twhere.="<br />".&mt('Domain').":".$1;
             ($roletext,$roletext_end) = &build_roletext($trolecode,$tdom,$trest,'is',$tryagain,$advanced,'',$tbg,$trole,$twhere,'','','',1,'');              ($roletext,$roletext_end) = &build_roletext($trolecode,$1,$2,'is',$tryagain,$advanced,'',$tbg,$trole,$twhere,'','','',1,'');
         }          }
     }      }
     return ($roletext,$roletext_end);      return ($roletext,$roletext_end);
Line 1603  sub adhoc_roles_row { Line 1635  sub adhoc_roles_row {
     my $carole = &Apache::lonnet::plaintext('ca');      my $carole = &Apache::lonnet::plaintext('ca');
     my $selectcalink = &coauthorlink($dcdom,$rowtype);      my $selectcalink = &coauthorlink($dcdom,$rowtype);
     $output.=$ccrole.': '.$selectcclink      $output.=$ccrole.': '.$selectcclink
             .' | '.$carole.': '.$selectcalink.'</td>'              .' | '.$carole.': '.$selectcalink
             .&Apache::loncommon::end_data_table_row();              .&Apache::loncommon::end_data_table_row();
     return $output;      return $output;
 }  }

Removed from v.1.231.4.15  
changed lines
  Added in v.1.240


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