Diff for /loncom/interface/lonmenu.pm between versions 1.263 and 1.267

version 1.263, 2009/05/08 16:08:56 version 1.267, 2009/05/19 14:05:19
Line 51  described at http://www.lon-capa.org. Line 51  described at http://www.lon-capa.org.
   
 =over  =over
   
 =item show_course()  
   
 Little texts  Little texts
   
 =item initlittle()  =item initlittle()
Line 150  use vars qw(@desklines %category_names % Line 148  use vars qw(@desklines %category_names %
   
 my @inlineremote;  my @inlineremote;
   
   
   
 sub show_course {  
     my $course = !$env{'user.adv'};  
     if (!$env{'user.adv'}) {  
  foreach my $env (keys(%env)) {  
     next if ($env !~ m/^user\.priv\./);  
     if ($env !~ m/^user\.priv\.(?:st|cm)/) {  
  $course = 0;  
  last;  
     }  
  }  
     }  
     return $course;  
 }  
   
 sub initlittle {  sub initlittle {
     return &Apache::lonlocal::texthash('ret' => 'Return to Last Location',      return &Apache::lonlocal::texthash('ret' => 'Return to Last Location',
        'nav' => 'Navigate Contents',         'nav' => 'Navigate Contents',
        'main' => 'Main Menu',         'main' => 'Main Menu',
                                        'roles' => (&show_course()?                                         'roles' => (&Apache::loncommon::show_course()?
                                                     'Courses':'Roles'),                                                      'Courses':'Roles'),
                                        'other' => 'Other Roles',                                         'other' => 'Other Roles',
                                        'docs' => 'Edit Course',                                         'docs' => 'Edit Course',
Line 234  sub menubuttons { Line 216  sub menubuttons {
         }          }
     }      }
   
     if ($env{'browser.interface'} eq 'textual') {      if ($env{'environment.remote'} eq 'off') {
 # Textual display only  
         if ($env{'request.course.id'}) {  
     $navmaps=(<<ENDNAV);  
 <a href="/adm/navmaps?postdata=$escurl&amp;postsymb=$escsymb" target="_top">$lt{'nav'}</a>  
 ENDNAV  
             if (&show_return_link()) {  
                 my $escreload=&escape('return:');  
                 $reloadlink=(<<ENDRELOAD);  
 <a href="/adm/flip?postdata=$escreload" target="_top">$lt{'ret'}</a>  
 ENDRELOAD  
             }  
     if (&Apache::lonnet::allowed('mdc',$env{'request.course.id'})) {  
                $docs=(<<ENDDOCS);  
 <a href="/adm/coursedocs" target="_top">$lt{'docs'}</a>  
 ENDDOCS  
             }  
             if ($showgroups) {  
                 $groups =(<<ENDGROUPS);  
 <a href="/adm/coursegroups" target="_top">$lt{'groups'}</a>  
 ENDGROUPS  
             }  
  }  
         my $form=&serverform();  
         my $utility=&utilityfunctions();  
  my $output=(<<ENDMAINMENU);  
 <script type="text/javascript">  
 // BEGIN LON-CAPA Internal  
 $utility  
 </script>  
 <div id="LC_top_nav">  
 <a href="/adm/menu" target="_top">$lt{'main'}</a>  
 $reloadlink $navmaps $docs $groups $roles  
 <a href="/adm/logout" target="_top">$lt{'exit'}</a>  
 </div>  
 <br />  
 <script type="text/javascript">  
 // END LON-CAPA Internal  
 </script>  
 $form  
 ENDMAINMENU  
         if ($registration) { $output.=&innerregister($forcereg); }  
  return $output."<hr />";  
     } elsif ($env{'environment.remote'} eq 'off') {  
 # Remote Control is switched off  # Remote Control is switched off
 # figure out colors  # figure out colors
  my %lt=&initlittle();          my %lt=&initlittle();
   
         my $domain=&Apache::loncommon::determinedomain();          my $domain=&Apache::loncommon::determinedomain();
  my $function =&Apache::loncommon::get_users_function();          my $function =&Apache::loncommon::get_users_function();
         my $link=&Apache::loncommon::designparm($function.'.link',$domain);          my $link=&Apache::loncommon::designparm($function.'.link',$domain);
         my $alink=&Apache::loncommon::designparm($function.'.alink',$domain);          my $alink=&Apache::loncommon::designparm($function.'.alink',$domain);
         my $vlink=&Apache::loncommon::designparm($function.'.vlink',$domain);          my $vlink=&Apache::loncommon::designparm($function.'.vlink',$domain);
         my $sidebg=&Apache::loncommon::designparm($function.'.sidebg',$domain);          my $sidebg=&Apache::loncommon::designparm($function.'.sidebg',$domain);
  if ($env{'user.name'} eq 'public' && $env{'user.domain'} eq 'public') {  
     return (<<ENDINLINEMENU);          if ($env{'user.name'} eq 'public' && $env{'user.domain'} eq 'public') {
               return (<<ENDINLINEMENU);
    <table id="LC_top_nav">     <table id="LC_top_nav">
     <tr>      <tr>
       <td>$logo</td>        <td>$logo</td>
Line 381  $form Line 321  $form
 <script type="text/javascript">  <script type="text/javascript">
 // END LON-CAPA Internal  // END LON-CAPA Internal
 </script>  </script>
 <br clear="all" />  
 $reg  $reg
 ENDINLINEMENU  ENDINLINEMENU
     } else {      } else {
Line 437  sub innerregister { Line 376  sub innerregister {
   
     $env{'request.registered'} = 1;      $env{'request.registered'} = 1;
   
     my $textinter=($env{'browser.interface'} eq 'textual');      my $noremote = ($env{'environment.remote'} eq 'off');
     my $noremote=($env{'environment.remote'} eq 'off');  
           
     my $textual=($textinter || $noremote);  
   
     undef(@inlineremote);      undef(@inlineremote);
   
     my $reopen=&Apache::lonmenu::reopenmenu();      my $reopen=&Apache::lonmenu::reopenmenu();
   
     my $newmail='';      my $newmail='';
     if ($noremote) {      my $breadcrumb;
  $newmail='<table id="LC_nav_location"><tr>';  
     }      if (&Apache::lonmsg::newmail() && !$noremote) { 
     if (&Apache::lonmsg::newmail()) {           # We have new mail and remote is up
  if ($textual) {          $newmail= 'swmenu.setstatus("you have","messages");';
     $newmail.= '<td class="LC_new_mail">  
                    <a href="/adm/communicate" target="_top">'.  
    &mt('You have new messages').'</a></td>';  
  } else {  
     $newmail= 'swmenu.setstatus("you have","messages");';  
  }  
     }       } 
     if (($textual)       if ($noremote
      && ($env{'request.symb'})        && ($env{'request.symb'}) 
      && ($env{'request.course.id'})) {       && ($env{'request.course.id'})) {
  $newmail.= '<td class="LC_current_location">';  
  my ($mapurl,$rid,$resurl)=          my ($mapurl,$rid,$resurl) = &Apache::lonnet::decode_symb(&Apache::lonnet::symbread());
     &Apache::lonnet::decode_symb(&Apache::lonnet::symbread());          my $coursetitle = $env{'course.'.$env{'request.course.id'}.'.description'};
         my $coursetitle=$env{'course.'.$env{'request.course.id'}.'.description'};  
         $newmail.=$coursetitle;          my $maptitle = &Apache::lonnet::gettitle($mapurl);
         my $maptitle=&Apache::lonnet::gettitle($mapurl);          my $restitle = &Apache::lonnet::gettitle(&Apache::lonnet::symbread());
  my $restitle=&Apache::lonnet::gettitle(&Apache::lonnet::symbread());          my @crumbs = ({text => mt("Course Content"), href => "Javascript:gonav('/adm/navmaps')"}, 
         if ($maptitle && ($maptitle ne 'default.sequence') && ($maptitle ne $coursetitle)) {                        {text => '...'});
     $newmail.=', '.$maptitle;          push @crumbs, {text => $maptitle} if ($maptitle 
         }                                                && $maptitle ne 'default.sequence' 
         if ($restitle) {                                                && $maptitle ne $coursetitle);
     $newmail.=': '.$restitle;          push @crumbs, {text => $restitle} if $restitle; 
         }          Apache::lonhtmlcommon::clear_breadcrumbs();
         $newmail.='&nbsp;&nbsp;&nbsp;</td>';          Apache::lonhtmlcommon::add_breadcrumb(@crumbs);
           $breadcrumb .= Apache::lonhtmlcommon::breadcrumbs(undef,undef,0);
           #
     }      }
     if ($env{'request.state'} eq 'construct') {      if ($env{'request.state'} eq 'construct') {
         $newmail = $titletable;          $newmail = $titletable;
     } else {      } 
  if ($noremote) {      my $timesync   = ( $noremote ? '' : 'swmenu.syncclock(1000*'.time.');' );
     $newmail.='</tr></table>';      my $tablestart = ( $noremote ? '<table id="LC_menubuttons">' : '');
  }      my $tableend   = ( $noremote ? '</table>' : '');
     }  
     my $timesync=($textual?'':'swmenu.syncclock(1000*'.time.');');  
     my $tablestart=($noremote?'<table id="LC_menubuttons">':'').  
  ($textinter?'<br /><a href="#content">'.&mt('Skip to Content').'</a><br />':'');  
     my $tableend=($noremote?'</table>':'').($textinter?'<a name="content" />':'');  
 # =============================================================================  # =============================================================================
 # ============================ This is for URLs that actually can be registered  # ============================ This is for URLs that actually can be registered
     if (($env{'request.noversionuri'}!~m|^/(res/)*adm/|) || ($forcereg)) {      if (($env{'request.noversionuri'}!~m|^/(res/)*adm/|) || ($forcereg)) {
Line 623  sub innerregister { Line 550  sub innerregister {
             if ($currdir =~ m-/$-) {              if ($currdir =~ m-/$-) {
                 $is_const_dir = 1;                  $is_const_dir = 1;
             } else {              } else {
                 $currdir =~ s#[^/]+$##;                  $currdir =~ s|[^/]+$||;
  my $cleandisfn = &Apache::loncommon::escape_single($thisdisfn);   my $cleandisfn = &Apache::loncommon::escape_single($thisdisfn);
  my $esc_currdir = &Apache::loncommon::escape_single($currdir);   my $esc_currdir = &Apache::loncommon::escape_single($currdir);
                 $menuitems=(<<ENDMENUITEMS);                  $menuitems=(<<ENDMENUITEMS);
Line 695  ENDMENUITEMS Line 622  ENDMENUITEMS
             }              }
         }          }
   
         if ($textual) {          if ($noremote) {
     my $addremote=0;      my $addremote=0;
     foreach (@inlineremote) { if ($_ ne '') { $addremote=1; } }      foreach (@inlineremote) { if ($_ ne '') { $addremote=1; last;} }
     my $inlinebuttons='';      my $inlinebuttons='';
     if ($addremote) {      if ($addremote) {
 # Registered, textual output              # Registered, textual output
  if ($env{'browser.interface'} eq 'textual') {  
     $inlinebuttons=  
                         join('',map { (defined($_)?$_:'') } @inlineremote);  
  } else {  
                     if ($env{'environment.icons'} eq 'iconsonly') {                      if ($env{'environment.icons'} eq 'iconsonly') {
                         $inlinebuttons=(<<ENDARROWSINLINE);                          $inlinebuttons=(<<ENDARROWSINLINE);
 <tr><td>  <tr><td>
Line 736  ENDLINE Line 659  ENDLINE
     }      }
  }   }
     }      }
  }  
     }      }
     $result =(<<ENDREGTEXT);      $result =(<<ENDREGTEXT);
 <script type="text/javascript">  <script type="text/javascript">
 // BEGIN LON-CAPA Internal  // BEGIN LON-CAPA Internal
 </script>  </script>
 $timesync  $timesync
   $breadcrumb
 $tablestart  $tablestart
 $inlinebuttons  $inlinebuttons
 $tableend  $tableend
Line 805  ENDREGTHIS Line 728  ENDREGTHIS
 # =============================================================================  # =============================================================================
     } else {      } else {
 # ========================================== This can or will not be registered  # ========================================== This can or will not be registered
         if ($textual) {          if ($noremote) {
 # Not registered, textual  # Not registered, textual
     $result= (<<ENDDONOTREGTEXT);              $result= (<<ENDDONOTREGTEXT);
 ENDDONOTREGTEXT  ENDDONOTREGTEXT
         } else {          } else {
 # Not registered, graphical  # Not registered, graphical
Line 1207  sub rawconfig { Line 1130  sub rawconfig {
     my $uname=$env{'user.name'};      my $uname=$env{'user.name'};
     my $udom=$env{'user.domain'};      my $udom=$env{'user.domain'};
     my $adv=$env{'user.adv'};      my $adv=$env{'user.adv'};
     my $show_course=&show_course();      my $show_course=&Apache::loncommon::show_course();
     my $author=$env{'user.author'};      my $author=$env{'user.author'};
     my $crs='';      my $crs='';
     if ($env{'request.course.id'}) {      if ($env{'request.course.id'}) {
Line 1644  sub roles_selector { Line 1567  sub roles_selector {
         }          }
     }      }
     if ($is_cc) {      if ($is_cc) {
         &get_all_courseroles($cdom,$cnum,\%courseroles,\%seccount);           &get_all_courseroles($cdom,$cnum,\%courseroles,\%seccount);
     } else {      } else {
         my %gotnosection;          my %gotnosection;
         foreach my $item (keys(%env)) {          foreach my $item (keys(%env)) {
Line 1662  sub roles_selector { Line 1585  sub roles_selector {
                 }                  }
                 if (ref($courseroles{$role}) eq 'ARRAY') {                  if (ref($courseroles{$role}) eq 'ARRAY') {
                     if ($sec ne '') {                      if ($sec ne '') {
                         if (!grep(/^Q$sec\E$/,@{$courseroles{$role}})) {                          if (!grep(/^\Q$sec\E$/,@{$courseroles{$role}})) {
                             push(@{$courseroles{$role}},$sec);                              push(@{$courseroles{$role}},$sec);
                             $seccount{$role} ++;                              $seccount{$role} ++;
                         }                          }

Removed from v.1.263  
changed lines
  Added in v.1.267


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