Diff for /loncom/interface/lonmenu.pm between versions 1.1 and 1.2

version 1.1, 2000/10/05 15:31:42 version 1.2, 2001/05/30 20:08:11
Line 5 Line 5
 #  #
 # 05/29/00,05/30 Gerd Kortemeyer)  # 05/29/00,05/30 Gerd Kortemeyer)
 #  #
 # 10/05 Gerd Kortemeyer  # 10/05,05/28,05/30 Gerd Kortemeyer
   
 package Apache::lonmenu;  package Apache::lonmenu;
   
 use strict;  use strict;
   use Apache::lonnet;
   use Apache::File;
   use vars qw(@desklines $readdesk);
    
 # =============================================================== Open the menu  # =============================================================== Open the menu
   
 sub open {  sub open {
Line 23  menu=window.open("/res/adm/pages/menu.ht Line 26  menu=window.open("/res/adm/pages/menu.ht
 ENDOPEN  ENDOPEN
 }  }
   
 # ================================================================== Conversion  # ============================================================ Switch Menu Item
   
   sub switchmenu {
       my ($row,$col,$imgsrc,$texttop,$textbot,$action)=@_;
       return(<<ENDSMENU);
   <script>
      swmenu=window.open('','LONCAPAmenu');
      swmenu.switchbutton($row,$col,"$imgsrc","$texttop","$textbot","$action");
   </script>
   ENDSMENU
   }
   
   # ================================================================== Raw Config
   
   sub switch {
       my ($uname,$udom,$row,$col,$img,$top,$bot,$act)=@_;
       $act=~s/\$uname/$uname/g;
       $act=~s/\$udom/$udom/g;
       return "\n".
    qq(swmenu.switchbutton($row,$col,"$img","$top","$bot","$act"));
   }
   
   sub secondlevel {
       my $output='';
       my 
       ($uname,$udom,$rol,$crs,$pub,$con,$row,$col,$prt,$img,$top,$bot,$act)=@_;
       if ($prt eq 'any') {
      $output.=switch($uname,$udom,$row,$col,$img,$top,$bot,$act);
       } elsif ($prt=~/^r(\w+)/) {
           if ($rol eq $1) {
              $output.=switch($uname,$udom,$row,$col,$img,$top,$bot,$act);
           }
       }
       return $output;
   }
   
   sub rawconfig {
       my $output="swmenu=window.open('','LONCAPAmenu');";
       my $uname=$ENV{'user.name'};
       my $udom=$ENV{'user.domain'};
       my $adv=$ENV{'user.adv'};
       my $crs=$ENV{'request.course.id'};
       my $pub=($ENV{'request.state'} eq 'published');
       my $con=($ENV{'request.state'} eq 'construct');
       my $rol=$ENV{'request.role'};
       map {
           my ($row,$col,$pro,$prt,$img,$top,$bot,$act)=split(/\:/,$_);
           if ($pro eq 'any') {
              $prt=~s/\$uname/$uname/g;
              $prt=~s/\$udom/$udom/g;
              $prt=~s/\$crs/$crs/g;
                  $output.=&secondlevel(
     $uname,$udom,$rol,$crs,$pub,$con,$row,$col,$prt,$img,$top,$bot,$act);
    } elsif ($pro eq 'smp') {
               unless ($adv) {
                  $output.=&secondlevel(
             $uname,$udom,$rol,$crs,$pub,$con,$row,$col,$prt,$img,$top,$bot,$act);
               }
           } elsif ($pro eq 'adv') {
               if ($adv) {
                  $output.=&secondlevel(
     $uname,$udom,$rol,$crs,$pub,$con,$row,$col,$prt,$img,$top,$bot,$act);
               }
           } elsif (($pro=~/p(\w+)/) && ($prt)) {
       if (&Apache::lonnet::allowed($1,$prt)) {
                  $output.=switch($uname,$udom,$row,$col,$img,$top,$bot,$act);
               }
           }
       } @desklines;
       return $output;
   }
   
   # ======================================================================= Close
   
 sub close {  sub close {
     return(<<ENDCLOSE);      return(<<ENDCLOSE);
Line 42  sub footer { Line 117  sub footer {
   
 }  }
   
   # ================================================================ Main Program
   
   sub BEGIN {
   if ($readdesk ne 'done') {
     {
       my $config=Apache::File->new($Apache::lonnet::perlvar{'lonTabDir'}.
                                    '/mydesk.tab');
       while (my $configline=<$config>) {
          chomp($configline);
          $desklines[$#desklines+1]=$configline;
       }
     }
   }
   }
 1;  1;
 __END__  __END__
   

Removed from v.1.1  
changed lines
  Added in v.1.2


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