Diff for /loncom/interface/lonmenu.pm between versions 1.183 and 1.205

version 1.183, 2006/05/30 12:46:09 version 1.205, 2006/09/05 17:35:10
Line 52  use vars qw(@desklines $readdesk); Line 52  use vars qw(@desklines $readdesk);
   
 my @inlineremote;  my @inlineremote;
   
   
   
 # ================================================================ Little texts  # ================================================================ Little texts
   
 sub initlittle {  sub initlittle {
Line 62  sub initlittle { Line 64  sub initlittle {
                                                     'Roles':'Courses'),                                                      'Roles':'Courses'),
                                        'docs' => 'Course Documents',                                         'docs' => 'Course Documents',
                                        'exit' => 'Exit',                                         'exit' => 'Exit',
                                          'login' => 'Log In',
        'launch' => 'Launch Remote Control',         'launch' => 'Launch Remote Control',
                                        'groups' => 'Groups');                                         'groups' => 'Groups',
                                          'gdoc' => 'Group Documents',
                                          );
 }  }
   
 # ============================= This gets called at the top of the body section  # ============================= This gets called at the top of the body section
Line 88  sub menubuttons { Line 93  sub menubuttons {
     my $escurl=&escape(&Apache::lonenc::check_encrypt($env{'request.noversionuri'}));      my $escurl=&escape(&Apache::lonenc::check_encrypt($env{'request.noversionuri'}));
     my $escsymb=&escape(&Apache::lonenc::check_encrypt($env{'request.symb'}));      my $escsymb=&escape(&Apache::lonenc::check_encrypt($env{'request.symb'}));
   
       my $logo=&Apache::loncommon::lonhttpdurl("/adm/lonIcons/minilogo.gif");
       $logo = '<td class="LC_top_nav_logo"><a href="/adm/about.html"><img src="'.
    $logo.'" alt="LON-CAPA Logo" /></a></td>';
   
     if ($env{'request.state'} eq 'construct') {      if ($env{'request.state'} eq 'construct') {
         if (($env{'request.noversionuri'} eq '') || (!defined($env{'request.noversionuri'}))) {          if (($env{'request.noversionuri'} eq '') || (!defined($env{'request.noversionuri'}))) {
             my $returnurl = $env{'request.filename'};              my $returnurl = $env{'request.filename'};
Line 97  sub menubuttons { Line 106  sub menubuttons {
     }      }
     if ($env{'request.course.id'}) {      if ($env{'request.course.id'}) {
         my %coursegroups;          my %coursegroups;
         my $viewgrps_permission =                                                          my $viewgrps_permission =
                      &Apache::lonnet::allowed('vcg',$env{'request.course.id'});      &Apache::lonnet::allowed('vcg',$env{'request.course.id'}.($env{'request.course.sec'}?'/'.$env{'request.course.sec'}:''));
         if (!$viewgrps_permission) {          if (!$viewgrps_permission) {
             %coursegroups = &Apache::lonnet::get_active_groups($env{'user.domain'},$env{'user.name'},$env{'course.'.$env{'request.course.id'}.'.domain'}, $env{'course.'.$env{'request.course.id'}.'.num'});              %coursegroups = &Apache::lonnet::get_active_groups($env{'user.domain'},$env{'user.name'},$env{'course.'.$env{'request.course.id'}.'.domain'}, $env{'course.'.$env{'request.course.id'}.'.num'});
         }   }
         if ((keys(%coursegroups) > 0) || ($viewgrps_permission)) {          if ((keys(%coursegroups) > 0) || ($viewgrps_permission)) {
             $showgroups = 1;              $showgroups = 1;
         }          }
Line 128  ENDDOCS Line 137  ENDDOCS
             }              }
             if ($showgroups) {              if ($showgroups) {
                 $groups =(<<ENDGROUPS);                  $groups =(<<ENDGROUPS);
 <a href="/adm/coursegroups" target="_top">$lt{'groups'}</a></td>  <a href="/adm/coursegroups" target="_top">$lt{'groups'}</a>
 ENDGROUPS  ENDGROUPS
             }              }
  }   }
Line 165  ENDMAINMENU Line 174  ENDMAINMENU
         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') {   if ($env{'user.name'} eq 'public' && $env{'user.domain'} eq 'public') {
     my $logo=&Apache::loncommon::lonhttpdurl("/adm/lonIcons/minilogo.gif");  
     return (<<ENDINLINEMENU);      return (<<ENDINLINEMENU);
    <table id="LC_top_nav">     <table id="LC_top_nav">
     <tr>      <tr>
       <td>        $logo
         <a href="/adm/logout" target="_top">$lt{'exit'}</a>        <td></td>
         <td class="LC_top_nav_login">
           <a href="/adm/roles" target="_top">$lt{'login'}</a>
      </td>       </td>
      <td align="right">      </tr>
        <img align="right" src="$logo" alt="Logo" />  
        <b>LON-CAPA</b>&nbsp;  
      </td>  
    </tr>  
   </table>    </table>
 </font>  </font>
 ENDINLINEMENU  ENDINLINEMENU
Line 191  ENDINLINEMENU Line 197  ENDINLINEMENU
     $navmaps=(<<ENDNAV);      $navmaps=(<<ENDNAV);
 <td><a href="$link" target="_top">$lt{'nav'}</a></td>  <td><a href="$link" target="_top">$lt{'nav'}</a></td>
 ENDNAV  ENDNAV
   my $is_group = (&Apache::loncommon::course_type() eq 'Group');
     if (&Apache::lonnet::allowed('mdc',$env{'request.course.id'})) {      if (&Apache::lonnet::allowed('mdc',$env{'request.course.id'})) {
                   my $text = ($is_group) ? $lt{'gdoc'} : $lt{'docs'};
  $docs=(<<ENDDOCS);   $docs=(<<ENDDOCS);
 <td><a href="/adm/coursedocs" target="_top">$lt{'docs'}</a></td>  <td><a href="/adm/coursedocs" target="_top">$text</a></td>
 ENDDOCS  ENDDOCS
             }              }
             if ($showgroups) {              if ($showgroups) {
Line 229  ENDCRELOAD Line 237  ENDCRELOAD
         }          }
         my $form=&serverform();          my $form=&serverform();
  my $utility=&utilityfunctions();   my $utility=&utilityfunctions();
  my $logo=&Apache::loncommon::lonhttpdurl("/adm/lonIcons/minilogo.gif");  
  my $remote;   my $remote;
  if ($env{'user.adv'}) {   if ($env{'user.adv'}) {
     $remote = '<td><a href="/adm/remote?action=launch&amp;url='.$escurl.'" target="_top">'.$lt{'launch'}.'</a></td>'      $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');
  return (<<ENDINLINEMENU);   return (<<ENDINLINEMENU);
 <script type="text/javascript">  <script type="text/javascript">
 // BEGIN LON-CAPA Internal  // BEGIN LON-CAPA Internal
Line 243  $utility Line 252  $utility
 </script>  </script>
 <table id="LC_top_nav">  <table id="LC_top_nav">
 <tr>  <tr>
   $logo
 <td><a href="/adm/menu" target="_top">$lt{'main'}</a></td>  <td><a href="/adm/menu" target="_top">$lt{'main'}</a></td>
 $reloadlink  $reloadlink
 $navmaps  $navmaps
Line 250  $docs Line 260  $docs
 $groups  $groups
 $remote  $remote
 <td><a href="/adm/roles" target="_top">$lt{'roles'}</a></td>  <td><a href="/adm/roles" target="_top">$lt{'roles'}</a></td>
 <td><a href="/adm/logout" target="_top">$lt{'exit'}</a></td>  <td class="LC_top_nav_help">$helplink</td>
 <td class="LC_top_nav_logo"><img align="right" src="$logo" alt="Logo" /><b>LON-CAPA</b></td>  <td class="LC_top_nav_exit"><a href="/adm/logout" target="_top">$lt{'exit'}</a></td>
 </tr>  </tr>
 </table>  </table>
 $form  $form
Line 380  sub innerregister { Line 390  sub innerregister {
     &Apache::lonnet::allowed('opa',$crs)) {      &Apache::lonnet::allowed('opa',$crs)) {
     $hwkadd.=&switch('','',7,3,'pparm.gif','problem[_2]','parms[_2]',      $hwkadd.=&switch('','',7,3,'pparm.gif','problem[_2]','parms[_2]',
      "gocmd('/adm/parmset','set')",       "gocmd('/adm/parmset','set')",
      'Modify deadlines, etc, for this resource');       'Modify parameter settings for this resource');
  }   }
 # -- End Homework  # -- End Homework
         ###          ###
Line 439  sub innerregister { Line 449  sub innerregister {
                     ('','',6,1,'cstr.gif','edit[_1]','resource[_2]',                      ('','',6,1,'cstr.gif','edit[_1]','resource[_2]',
                      "go('".$cfile."');","Edit this resource");                       "go('".$cfile."');","Edit this resource");
             } elsif ($editbutton eq '') {              } elsif ($editbutton eq '') {
                 $editbutton=&switch('','',6,1,'port.gif',                  $editbutton=&clear(6,1);
     'port-[_1]','folio[_1]',  
     "go('/adm/portfolio');",  
     "Enter my portfolio space");  
             }              }
         }          }
         ###          ###
Line 457  sub innerregister { Line 464  sub innerregister {
                 $is_const_dir = 1;                  $is_const_dir = 1;
             } else {              } else {
                 $currdir =~ s#[^/]+$##;                  $currdir =~ s#[^/]+$##;
    my $cleandisfn = &Apache::loncommon::escape_single($thisdisfn);
                 $menuitems=(<<ENDMENUITEMS);                  $menuitems=(<<ENDMENUITEMS);
 s&6&1&list.gif&list[_1]&dir[_1]&golist('$currdir')&List current directory  s&6&1&list.gif&list[_1]&dir[_1]&golist('$currdir')&List current directory
 s&6&2&rtrv.gif&retrieve[_1]&version[_1]&gocstr('/adm/retrieve','/~$uname/$thisdisfn')&Retrieve old version  s&6&2&rtrv.gif&retrieve[_1]&version[_1]&gocstr('/adm/retrieve','/~$uname/$cleandisfn')&Retrieve old version
 s&6&3&pub.gif&publish[_1]&resource[_1]&gocstr('/adm/publish','/~$uname/$thisdisfn')&Publish this resource  s&6&3&pub.gif&publish[_1]&resource[_1]&gocstr('/adm/publish','/~$uname/$cleandisfn')&Publish this resource
 s&7&1&del.gif&delete[_1]&resource[_2]&gocstr('/adm/cfile?action=delete','/~$uname/$thisdisfn')&Delete this resource  s&7&1&del.gif&delete[_1]&resource[_2]&gocstr('/adm/cfile?action=delete','/~$uname/$cleandisfn')&Delete this resource
 s&7&2&prt.gif&prepare[_1]&printout[_1]&gocstr('/adm/printout','/~$uname/$thisdisfn')&Prepare a printable document  s&7&2&prt.gif&prepare[_1]&printout[_1]&gocstr('/adm/printout','/~$uname/$cleandisfn')&Prepare a printable document
 ENDMENUITEMS  ENDMENUITEMS
             }              }
         } elsif (defined($env{'request.course.id'}) &&           } elsif ( defined($env{'request.course.id'}) && 
  $env{'request.symb'} ne '') {   $env{'request.symb'} ne '' ) {
     $menuitems=(<<ENDMENUITEMS);      $menuitems=(<<ENDMENUITEMS);
 c&3&1  c&3&1
 s&2&1&back.gif&backward[_1]&&gopost('/adm/flip','back:'+currentURL)&Go to the previous resource in the course sequence&1  s&2&1&back.gif&backward[_1]&&gopost('/adm/flip','back:'+currentURL)&Go to the previous resource in the course sequence&1
Line 486  s&8&2&fdbk.gif&feedback[_1]&discuss[_1]& Line 494  s&8&2&fdbk.gif&feedback[_1]&discuss[_1]&
 ENDREALRES  ENDREALRES
     }      }
         }          }
    if ($env{'request.uri'} =~ /^\/res/) {
       $menuitems .= (<<ENDMENUITEMS);
   s&8&3&prt.gif&prepare[_1]&printout[_1]&gopost('/adm/printout',currentURL)&Prepare a printable document
   ENDMENUITEMS
    }
         my $buttons='';          my $buttons='';
         foreach (split(/\n/,$menuitems)) {          foreach (split(/\n/,$menuitems)) {
     my ($command,@rest)=split(/\&/,$_);      my ($command,@rest)=split(/\&/,$_);
Line 774  ENDRESIZE Line 787  ENDRESIZE
     $returnval.=(<<ENDOPEN);      $returnval.=(<<ENDOPEN);
 window.status='Opening LON-CAPA Remote Control';  window.status='Opening LON-CAPA Remote Control';
 var menu=window.open("/res/adm/pages/menu.html","$menuname",  var menu=window.open("/res/adm/pages/menu.html","$menuname",
 "height=350,width=150,scrollbars=no,menubar=no,top=5,left=5,screenX=5,screenY=5");  "height=375,width=150,scrollbars=no,menubar=no,top=5,left=5,screenX=5,screenY=5");
 self.name='loncapaclient';  self.name='loncapaclient';
 ENDOPEN  ENDOPEN
     return '<script type="text/javascript">'.$returnval.'</script>';      return '<script type="text/javascript">'.$returnval.'</script>';
Line 921  sub rawconfig { Line 934  sub rawconfig {
     my $con=($env{'request.state'} eq 'construct');      my $con=($env{'request.state'} eq 'construct');
     my $rol=$env{'request.role'};      my $rol=$env{'request.role'};
     my $requested_domain = $env{'request.role.domain'};      my $requested_domain = $env{'request.role.domain'};
     foreach (@desklines) {      foreach my $line (@desklines) {
         my ($row,$col,$pro,$prt,$img,$top,$bot,$act,$desc)=split(/\:/,$_);          my ($row,$col,$pro,$prt,$img,$top,$bot,$act,$desc)=split(/\:/,$line);
         $prt=~s/\$uname/$uname/g;          $prt=~s/\$uname/$uname/g;
         $prt=~s/\$udom/$udom/g;          $prt=~s/\$udom/$udom/g;
         $prt=~s/\$crs/$crs/g;           $prt=~s/\$crs/$crs/g; 
         $prt=~s/\$requested_domain/$requested_domain/g;          $prt=~s/\$requested_domain/$requested_domain/g;
           my $type = &Apache::loncommon::course_type();
           if ($type eq 'Group') {
               $desc = &convert_menu_function($desc,$type);
           }
         if ($pro eq 'clear') {          if ($pro eq 'clear') {
     $output.=&clear($row,$col);      $output.=&clear($row,$col);
         } elsif ($pro eq 'any') {          } elsif ($pro eq 'any') {
Line 1060  sub utilityfunctions { Line 1077  sub utilityfunctions {
  'add_entries' => {   'add_entries' => {
     'onload' => 'javascript:document.goannotate.submit();'}});      'onload' => 'javascript:document.goannotate.submit();'}});
   
       my $end_page_annotate = 
           &Apache::loncommon::end_page({'js_ready' => 1});
   
     my $start_page_bookmark =       my $start_page_bookmark = 
         &Apache::loncommon::start_page('Bookmarks',undef,          &Apache::loncommon::start_page('Bookmarks',undef,
        {'only_body' => 1,         {'only_body' => 1,
  'js_ready'  => 1,   'js_ready'  => 1,
  'bgcolor'   => '#BBBBBB',});   'bgcolor'   => '#BBBBBB',});
   
     my $end_page =       my $end_page_bookmark = 
         &Apache::loncommon::end_page({'js_ready' => 1});          &Apache::loncommon::end_page({'js_ready' => 1});
   
 return (<<ENDUTILITY)  return (<<ENDUTILITY)
Line 1186  function annotate() { Line 1206  function annotate() {
   +"action='/adm/annotations'>"    +"action='/adm/annotations'>"
   +"<input type='hidden' name='urlnew' value='"+currentURL+"' />"    +"<input type='hidden' name='urlnew' value='"+currentURL+"' />"
   +"<\\/form>"    +"<\\/form>"
   +'$end_page');    +'$end_page_annotate');
    annotator.document.close();     annotator.document.close();
 }  }
   
Line 1208  function set_bookmark() { Line 1228  function set_bookmark() {
    +"value='Save' /> <input type='button' value='Close (no save)' "     +"value='Save' /> <input type='button' value='Close (no save)' "
    +"onclick='javascript:window.close();' /><\\/center><\\/td>"     +"onclick='javascript:window.close();' /><\\/center><\\/td>"
    +"<\\/tr><\\/table><\\/form><\\/center>"     +"<\\/tr><\\/table><\\/form><\\/center>"
    +'$end_page' );     +'$end_page_bookmark' );
    bmquery.document.close();     bmquery.document.close();
 }  }
   
Line 1255  sub get_nav_status { Line 1275  sub get_nav_status {
     return $navstatus;      return $navstatus;
 }  }
   
   #FIXME this needs to move into mydesktab and the other locations 
   # the text is generated
   sub convert_menu_function {
       my ($rolename,$type) = @_;
       if ($type eq 'Group') {
           $rolename =~ s/student/member/g;
           $rolename =~ s/group/team/g;
           $rolename =~ s/course/group/g;
           $rolename =~ s/Course/Group/g;
       }
       return $rolename;
   }
   
   
 # ================================================================ Main Program  # ================================================================ Main Program
   
 BEGIN {  BEGIN {

Removed from v.1.183  
changed lines
  Added in v.1.205


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