Diff for /loncom/auth/lonroles.pm between versions 1.209.4.1 and 1.209.4.2

version 1.209.4.1, 2009/09/23 16:55:53 version 1.209.4.2, 2009/09/23 19:42:20
Line 549  ENDHEADER Line 549  ENDHEADER
     my %futureroles;      my %futureroles;
     my %roles_nextlogin;      my %roles_nextlogin;
     my %timezones;      my %timezones;
       my $numcourses;
       if ($env{'user.adv'}) {
          my %courses = &Apache::lonnet::courseiddump($env{'user.domain'},'.','.','.','.','.',undef,undef,'Course');
          $numcourses = keys(%courses);
       }
     foreach $envkey (sort keys %env) {      foreach $envkey (sort keys %env) {
         my $button = 1;          my $button = 1;
         my $switchserver='';          my $switchserver='';
Line 714  ENDHEADER Line 719  ENDHEADER
         $r->print(' /></label><input type="submit" value="'.&mt('Display').'" /></span>');          $r->print(' /></label><input type="submit" value="'.&mt('Display').'" /></span>');
     } else {      } else {
         if ($countactive > 0) {          if ($countactive > 0) {
             my $domdesc = &Apache::lonnet::domain($env{'user.domain'},'description');              my $queuetotal = &queued_selfenrollment($r);
             my $esc_dom = &HTML::Entities::encode($env{'user.domain'},'"<>&');               if (($numcourses-$queuetotal) > 1) {
             $r->print('<p>'.&mt('[_1]Visit the [_2]Course Catalog[_3] to view all [_4] LON-CAPA courses.','<b>','<a href="/adm/coursecatalog?showdom='.$esc_dom.'">','</a></b>',$domdesc).'<br />'.&mt('If a course is [_1]not[_2] in your list of current courses below, you may be able to enroll if self-enrollment is permitted.','<b>','</b>').'</p>');                  my $domdesc = &Apache::lonnet::domain($env{'user.domain'},'description');
                   my $esc_dom = &HTML::Entities::encode($env{'user.domain'},'"<>&'); 
                   $r->print('<p>'.&mt('[_1]Visit the [_2]Course Catalog[_3] to view all [_4] GCI WebCenter courses.','<b>','<a href="/adm/coursecatalog?showdom='.$esc_dom.'">','</a></b>',$domdesc).'<br />'.&mt('If a course is [_1]not[_2] in your list of current courses below, you may be able to enroll if self-enrollment is permitted.','<b>','</b>').'</p>');
               }
         }          }
     }      }
   
Line 727  ENDHEADER Line 735  ENDHEADER
  } else {   } else {
     $r->print('<h2>'.&mt('Currently no active roles or courses').'</h2>');      $r->print('<h2>'.&mt('Currently no active roles or courses').'</h2>');
  }   }
         &findcourse_advice($r);          &findcourse_advice($r,$numcourses);
  $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 752  ENDHEADER Line 760  ENDHEADER
         }          }
         $r->print(&Apache::loncommon::end_page());          $r->print(&Apache::loncommon::end_page());
  return OK;   return OK;
       } elsif ($countactive==1) { # Is there only one choice?
           my $needs_switchserver;
           if ($env{'user.author'}) {
               $needs_switchserver = &check_needs_switchserver($possiblerole);
           }
           if ((!$needs_switchserver) && ($env{'request.role'} eq 'cm')) {
       $r->print('<h3>'.&mt('Please stand by.').'</h3>'.
           '<input type="hidden" name="'.$possiblerole.'" value="1" />'.
               '<noscript><br /><input type="submit" name="submit" value="'.&mt('Continue').'" /></noscript>');
       $r->print("</form>\n");
       $r->rflush();
       $r->print('<script type="text/javascript">document.forms.rolechoice.submit();</script>');
       $r->print(&Apache::loncommon::end_page());
       return OK;
           }
           if ($needs_switchserver) {
               $r->print("<h2>".&mt('Server Switch Required')."</h2>\n".
                         &mt('Construction Space access is only available from '.
                             'the home server of the corresponding Author.').'<br />'.
                         &mt("Click the 'Switch Server' link to go there.").'<br />');   
           }
     }      }
 # ----------------------------------------------------------------------- Table  # ----------------------------------------------------------------------- Table
     unless ((!&Apache::lonmenu::show_course()) || ($nochoose) || ($countactive==1)) {      unless ((!&Apache::lonmenu::show_course()) || ($nochoose) || ($countactive==1)) {
Line 826  ENDHEADER Line 855  ENDHEADER
  $r->print('<p><small><i>'   $r->print('<p><small><i>'
                  .&mt('This is LON-CAPA [_1]',$r->dir_config('lonVersion'))                   .&mt('This is LON-CAPA [_1]',$r->dir_config('lonVersion'))
  .'</i><br />'   .'</i><br />'
  .'<a href="/adm/logout">'.&mt('Logout').'</a>&nbsp;&nbsp;'   .'<a href="/adm/logout">'.&mt('Logout').'</a>');
                  .'<a href="/adm/coursecatalog?showdom='.$esc_dom.'">'          if ($numcourses>1) {
                  .&mt('Course Catalog')              $r->print('&nbsp;&nbsp;'.
                  .'</small></p>');                        '<a href="/adm/coursecatalog?showdom='.$esc_dom.'">'.
                         &mt('Course Catalog').
                         '</small>');
           }
           $r->print('</p>');
     }      }
     $r->print(&Apache::loncommon::end_page());      $r->print(&Apache::loncommon::end_page());
     return OK;      return OK;
Line 947  sub print_rolerows { Line 980  sub print_rolerows {
 }  }
   
 sub findcourse_advice {  sub findcourse_advice {
     my ($r) = @_;      my ($r,$numcourses) = @_;
     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'},'"<>&');
     if (&Apache::lonnet::auto_run(undef,$env{'user.domain'})) {      if (&Apache::lonnet::auto_run(undef,$env{'user.domain'})) {
Line 962  sub findcourse_advice { Line 995  sub findcourse_advice {
     } else {      } else {
         $r->print(&mt('If you were expecting to see an active role listed for a particular course, that course may not have been created yet.').'<br />');          $r->print(&mt('If you were expecting to see an active role listed for a particular course, that course may not have been created yet.').'<br />');
     }      }
     $r->print('<p>'.&mt('The [_1]Course Catalog[_2] provides information about all [_3] classes for which LON-CAPA courses have been created.','<a href="/adm/coursecatalog?showdom='.$esc_dom.'">','</a>',$domdesc).'<br />');      my $queuetotal = &queued_selfenrollment($r);
     $r->print(&mt('You can search the course catalog for courses which permit self-enrollment, if you would like to enroll in a course.').'</p>');      if (($numcourses - $queuetotal) > 0) {
           $r->print('<p>'.&mt('The [_1]Course Catalog[_2] provides information about all [_3] classes for which LON-CAPA courses have been created.','<a href="/adm/coursecatalog?showdom='.$esc_dom.'">','</a>',$domdesc).'<br />');
           $r->print(&mt('You can search the course catalog for courses which permit self-enrollment, if you would like to enroll in a course.').'</p>');
       }
     return;      return;
 }  }
   
   sub queued_selfenrollment {
       my ($r) = @_;
       my %selfenrollrequests = &Apache::lonnet::dump('selfenrollrequests');
       my %reqs_by_date;
       my $queuetotal = 0;
       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());
                       $queuetotal ++;
                   }
               }
           }
           $r->print(&Apache::loncommon::end_data_table());
       }
       return $queuetotal;
   }
   
 sub privileges_info {  sub privileges_info {
     my ($which) = @_;      my ($which) = @_;
     my $output;      my $output;
Line 1076  sub build_roletext { Line 1157  sub build_roletext {
         } elsif ($advanced) {          } elsif ($advanced) {
             $roletext.=              $roletext.=
                 '<td'.$rowspan.'><input name="'.$buttonname.'" type="button" value="'.                  '<td'.$rowspan.'><input name="'.$buttonname.'" type="button" value="'.
                 &mt('Re-Initialize').'" onClick="javascript:enterrole(this.form,\''.                  &mt('Re-Select').'" onClick="javascript:enterrole(this.form,\''.
                         $trolecode."','".$buttonname.'\');" /></td>';                          $trolecode."','".$buttonname.'\');" /></td>';
         } elsif ($reinit) {          } elsif ($reinit) {
             $roletext.=               $roletext.= 
Line 1086  sub build_roletext { Line 1167  sub build_roletext {
         } else {          } else {
             $roletext.=              $roletext.=
                 '<td'.$rowspan.'><input name="'.$buttonname.'" type="button" value="'.                  '<td'.$rowspan.'><input name="'.$buttonname.'" type="button" value="'.
                 &mt('Re-Initialize').'" onClick="javascript:enterrole(this.form,\''.                  &mt('Re-Select').'" onClick="javascript:enterrole(this.form,\''.
                         $trolecode."','".$buttonname.'\');" /></td>';                          $trolecode."','".$buttonname.'\');" /></td>';
         }          }
     }      }

Removed from v.1.209.4.1  
changed lines
  Added in v.1.209.4.2


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