Diff for /loncom/interface/lonmenu.pm between versions 1.239.4.5 and 1.240

version 1.239.4.5, 2009/05/15 20:36:17 version 1.240, 2008/09/04 22:47:20
Line 251  ENDCRELOAD Line 251  ENDCRELOAD
         }          }
         my $form=&serverform();          my $form=&serverform();
  my $utility=&utilityfunctions();   my $utility=&utilityfunctions();
    my $remote;
    if ($env{'user.adv'}) {
       $remote = '<td><a href="/adm/remote?action=launch&amp;url='.$escurl.'" target="_top">'.$lt{'launch'}.'</a></td>'
    }
   
         my $helplink=&Apache::loncommon::top_nav_help('Help');          my $helplink=&Apache::loncommon::top_nav_help('Help');
  return (<<ENDINLINEMENU);   return (<<ENDINLINEMENU);
Line 268  $reloadlink Line 272  $reloadlink
 $navmaps  $navmaps
 $docs  $docs
 $groups  $groups
   $remote
 $roles  $roles
 <td class="LC_top_nav_help">$helplink</td>  <td class="LC_top_nav_help">$helplink</td>
 <td class="LC_top_nav_exit"><a href="/adm/logout" target="_top">$lt{'exit'}</a></td>  <td class="LC_top_nav_exit"><a href="/adm/logout" target="_top">$lt{'exit'}</a></td>
Line 514  c&8&1 Line 519  c&8&1
 c&8&2  c&8&2
 s&8&3&prt.gif&prepare[_1]&printout[_1]&gopost('/adm/printout',currentURL)&Prepare a printable document  s&8&3&prt.gif&prepare[_1]&printout[_1]&gopost('/adm/printout',currentURL)&Prepare a printable document
 s&9&1&sbkm.gif&set[_1]&bookmark[_2]&set_bookmark()&Set a bookmark for this resource&&1  s&9&1&sbkm.gif&set[_1]&bookmark[_2]&set_bookmark()&Set a bookmark for this resource&&1
   s&9&3&anot.gif&anno-[_1]&tations[_1]&annotate()&Make notes and annotations about this resource&&1
 ENDMENUITEMS  ENDMENUITEMS
             my $currentURL = &Apache::loncommon::get_symb();  
             my ($symb_old,$symb_old_enc) = &Apache::loncommon::clean_symb($currentURL);  
             my $annotation = &Apache::loncommon::get_annotation($symb_old,$symb_old_enc);  
             $menuitems.="s&9&3&";  
             if (length($annotation) > 0){  
                 $menuitems.="anot2.gif";  
             } else {  
                 $menuitems.="anot.gif";  
             }  
             $menuitems.="&anno-[_1]&tations[_1]&annotate()&";  
             $menuitems.="Make notes and annotations about this resource&&1\n";  
   
             unless ($env{'request.noversionuri'}=~/\/(bulletinboard|smppg|navmaps|syllabus|aboutme)(\?|$)/) {              unless ($env{'request.noversionuri'}=~/\/(bulletinboard|smppg|navmaps|syllabus|aboutme)(\?|$)/) {
  if (!$env{'request.enc'}) {   if (!$env{'request.enc'}) {
Line 1023  sub inlinemenu { Line 1018  sub inlinemenu {
     return $output;      return $output;
 }  }
   
   sub inlinemenu_new {
       undef(@inlineremote);
       undef(%category_members);
       &rawconfig(1);
       my $output='<table id="LC_mainmenu"><tr>';
       for (my $col=1; $col<=2; $col++) {
           $output.='<td class="LC_mainmenu_column">';
           for (my $row=1; $row<=8; $row++) {
               foreach my $cat (keys(%category_members)) {
                  if ($category_positions{$cat} ne "$col,$row") { next; }
                  $output.='<table id="LC_menubuttons_mainmenu"><tr><td colspan="4" class="LC_menubuttons_category">'.&mt($category_names{$cat}).'</td></tr>';
                  my %active=();
                  foreach my $menu_item (split(/\:/,$category_members{$cat})) {
                     if ($inlineremote[$menu_item]) {
                        $active{$menu_item}=1;
                     }
                  }  
                  foreach my $item (sort(keys(%active))) {
                     $output.=$inlineremote[$item];
                  }
                  $output.='</table>';
               }
            }
            $output.="</td>";
       }
       $output.="</tr></table>";
       return $output;
   }
   
 sub rawconfig {  sub rawconfig {
     my $textualoverride=shift;      my $textualoverride=shift;
     my $output='';      my $output='';
Line 1131  sub rawconfig { Line 1155  sub rawconfig {
                     }                      }
                 }                  }
             }              }
         } elsif ($pro eq 'tools') {  
             my @tools = ('aboutme','blog','portfolio');  
             if (grep(/^\Q$prt\E$/,@tools)) {  
                 if (!&Apache::lonnet::usertools_access($env{'user.name'},  
                                                        $env{'user.domain'},$prt)) {  
                     $output.=&clear($row,$col);  
                     next;  
                 }  
             }  
             $prt='any';  
             $output.=&secondlevel(  
           $uname,$udom,$rol,$crs,$pub,$con,$row,$col,$prt,$img,$top,$bot,$act,$desc,$cat);  
         }          }
     }      }
     unless (($env{'browser.interface'} eq 'textual') ||      unless (($env{'browser.interface'} eq 'textual') ||
Line 1444  sub hidden_button_check { Line 1456  sub hidden_button_check {
 sub roles_selector {  sub roles_selector {
     my ($cdom,$cnum) = @_;      my ($cdom,$cnum) = @_;
     my $now = time;      my $now = time;
     my (%courseroles,%seccount);      my (%courseroles,%seccount,%gotnosection);
     my $is_cc;      my $is_cc;
     my $role_selector;      my $role_selector;
     if ($env{'user.role.cc./'.$cdom.'/'.$cnum}) {      if ($env{'user.role.cc./'.$cdom.'/'.$cnum}) {
Line 1459  sub roles_selector { Line 1471  sub roles_selector {
         }          }
     }      }
     if ($is_cc) {      if ($is_cc) {
         &get_all_courseroles($cdom,$cnum,\%courseroles,\%seccount);          my %adv_roles =
                &Apache::lonnet::get_course_adv_roles($env{'request.course.id'},1);
           foreach my $role (keys(%adv_roles)) {
               my ($urole,$usec) = split(/:/,$role);
               if (!$gotnosection{$urole}) {
                   $seccount{$urole} ++;
                   $gotnosection{$urole} = 1;
               }
               if (ref($courseroles{$urole}) eq 'ARRAY') {
                   if ($usec ne '') {
                       if (!grep(/^Q$usec\E$/,@{$courseroles{$urole}})) {
                           push(@{$courseroles{$urole}},$usec);
                           $seccount{$urole} ++;
                       }
                   }
               } else {
                   @{$courseroles{$urole}} = ();
                   if ($usec ne '') {
                       $seccount{$urole} ++;
                       push(@{$courseroles{$urole}},$usec);
                   }
               }
           }
           my %sections_count = &Apache::loncommon::get_sections($cdom,$cnum);
           @{$courseroles{'st'}} = ();
           if (keys(%sections_count) > 0) {
               push(@{$courseroles{'st'}},keys(%sections_count));
           }
     } else {      } else {
         my %gotnosection;  
         foreach my $item (keys(%env)) {          foreach my $item (keys(%env)) {
             if ($item =~ m-^user\.role\.([^.]+)\./\Q$cdom\E/\Q$cnum\E/?(\w*)$-) {              if ($item =~ m-^user\.role\.([^.]+)\./\Q$cdom\E/\Q$cnum\E/?(\w*)$-) {
                 my $role = $1;                  my $role = $1;
Line 1519  sub roles_selector { Line 1557  sub roles_selector {
     return $role_selector;      return $role_selector;
 }  }
   
 sub get_all_courseroles {  
     my ($cdom,$cnum,$courseroles,$seccount) = @_;  
     unless ((ref($courseroles) eq 'HASH') && (ref($seccount) eq 'HASH')) {  
         return;  
     }  
     my ($result,$cached) =  
         &Apache::lonnet::is_cached_new('getcourseroles',$cdom.'_'.$cnum);  
     if (defined($cached)) {  
         if (ref($result) eq 'HASH') {  
             if ((ref($result->{'roles'}) eq 'HASH') &&  
                 (ref($result->{'seccount'}) eq 'HASH')) {  
                 %{$courseroles} = %{$result->{'roles'}};  
                 %{$seccount} = %{$result->{'seccount'}};  
                 return;  
             }  
         }  
     }  
     my %gotnosection;  
     my %adv_roles =  
          &Apache::lonnet::get_course_adv_roles($env{'request.course.id'},1);  
     foreach my $role (keys(%adv_roles)) {  
         my ($urole,$usec) = split(/:/,$role);  
         if (!$gotnosection{$urole}) {  
             $seccount->{$urole} ++;  
             $gotnosection{$urole} = 1;  
         }  
         if (ref($courseroles->{$urole}) eq 'ARRAY') {  
             if ($usec ne '') {  
                 if (!grep(/^\Q$usec\E$/,@{$courseroles->{$urole}})) {  
                     push(@{$courseroles->{$urole}},$usec);  
                     $seccount->{$urole} ++;  
                 }  
             }  
         } else {  
             @{$courseroles->{$urole}} = ();  
             if ($usec ne '') {  
                 $seccount->{$urole} ++;  
                 push(@{$courseroles->{$urole}},$usec);  
             }  
         }  
     }  
     my %sections_count = &Apache::loncommon::get_sections($cdom,$cnum,['st']);  
     @{$courseroles->{'st'}} = ();  
     if (keys(%sections_count) > 0) {  
         push(@{$courseroles->{'st'}},keys(%sections_count));  
         $seccount->{'st'} = scalar(keys(%sections_count));  
     }  
     my $rolehash = {  
                      'roles'    => $courseroles,  
                      'seccount' => $seccount,  
                    };  
     &Apache::lonnet::do_cache_new('getcourseroles',$cdom.'_'.$cnum,$rolehash);  
     return;  
 }  
   
 sub jump_to_role {  sub jump_to_role {
     my ($cdom,$cnum,$seccount,$courseroles) = @_;      my ($cdom,$cnum,$seccount,$courseroles) = @_;
     my %lt = &Apache::lonlocal::texthash(      my %lt = &Apache::lonlocal::texthash(

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


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