Diff for /loncom/interface/lonmenu.pm between versions 1.181 and 1.195

version 1.181, 2006/05/15 16:23:58 version 1.195, 2006/07/14 16:46:36
Line 44  use Apache::lonhtmlcommon(); Line 44  use Apache::lonhtmlcommon();
 use Apache::loncommon();  use Apache::loncommon();
 use Apache::lonenc();  use Apache::lonenc();
 use Apache::lonlocal;  use Apache::lonlocal;
   use lib '/home/httpd/lib/perl/';
   use LONCAPA;
   
 use vars qw(@desklines $readdesk);  use vars qw(@desklines $readdesk);
   
Line 61  sub initlittle { Line 63  sub initlittle {
                                        'docs' => 'Course Documents',                                         'docs' => 'Course Documents',
                                        'exit' => 'Exit',                                         'exit' => 'Exit',
        'launch' => 'Launch Remote Control',         'launch' => 'Launch Remote Control',
                                        'groups' => 'Groups');                                         'groups' => 'Groups',
                                          'gdoc' => 'Group Documents',
                                          'teams' => 'Teams',
                                          );
 }  }
   
 # ============================= This gets called at the top of the body section  # ============================= This gets called at the top of the body section
Line 83  sub menubuttons { Line 88  sub menubuttons {
     my $docs='';      my $docs='';
     my $groups='';      my $groups='';
     my $showgroups=0;      my $showgroups=0;
     my $escurl=&Apache::lonnet::escape(&Apache::lonenc::check_encrypt($env{'request.noversionuri'}));      my $escurl=&escape(&Apache::lonenc::check_encrypt($env{'request.noversionuri'}));
     my $escsymb=&Apache::lonnet::escape(&Apache::lonenc::check_encrypt($env{'request.symb'}));      my $escsymb=&escape(&Apache::lonenc::check_encrypt($env{'request.symb'}));
   
     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'};
             $returnurl =~ s:^/home/([^/]+)/public_html/(.*)$:/priv/$1/$2:;              $returnurl =~ s:^/home/([^/]+)/public_html/(.*)$:/priv/$1/$2:;
             $escurl = &Apache::lonnet::escape($returnurl);              $escurl = &escape($returnurl);
         }          }
     }      }
     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'});
         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 114  ENDNAV Line 119  ENDNAV
             if (($env{'request.noversionuri'}=~/^\/adm\//) &&              if (($env{'request.noversionuri'}=~/^\/adm\//) &&
          ($env{'request.noversionuri'}!~/^\/adm\/wrapper\//) &&           ($env{'request.noversionuri'}!~/^\/adm\/wrapper\//) &&
          ($env{'request.noversionuri'}!~/^\/adm\/.*\/(smppg|bulletinboard|aboutme)(\?|$)/)) {           ($env{'request.noversionuri'}!~/^\/adm\/.*\/(smppg|bulletinboard|aboutme)(\?|$)/)) {
                 my $escreload=&Apache::lonnet::escape('return:');                  my $escreload=&escape('return:');
                 $reloadlink=(<<ENDRELOAD);                  $reloadlink=(<<ENDRELOAD);
 <a href="/adm/flip?postdata=$escreload" target="_top">$lt{'ret'}</a>  <a href="/adm/flip?postdata=$escreload" target="_top">$lt{'ret'}</a>
 ENDRELOAD  ENDRELOAD
Line 124  ENDRELOAD Line 129  ENDRELOAD
 <a href="/adm/coursedocs" target="_top">$lt{'docs'}</a>  <a href="/adm/coursedocs" target="_top">$lt{'docs'}</a>
 ENDDOCS  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
             }  #            }
  }   }
         my $form=&serverform();          my $form=&serverform();
         my $utility=&utilityfunctions();          my $utility=&utilityfunctions();
Line 170  ENDMAINMENU Line 175  ENDMAINMENU
       <td>        <td>
         <a href="/adm/logout" target="_top">$lt{'exit'}</a>          <a href="/adm/logout" target="_top">$lt{'exit'}</a>
      </td>       </td>
      <td align="right">       <td class="LC_top_nav_logo">LON-CAPA<img src="$logo" alt="Logo" /></td>
        <img align="right" src="$logo" alt="Logo" />      </tr>
        <b>LON-CAPA</b>&nbsp;  
      </td>  
    </tr>  
   </table>    </table>
 </font>  </font>
 ENDINLINEMENU  ENDINLINEMENU
Line 189  ENDINLINEMENU Line 191  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) {
                 $groups =(<<ENDGROUPS);  #                my $text = ($is_group) ? $lt{'teams'} : $lt{'groups'};
 <td><a href="/adm/coursegroups" target="_top">$lt{'groups'}</a></td>  #                $groups =(<<ENDGROUPS);
 ENDGROUPS  #<td><a href="/adm/coursegroups" target="_top">$text</a></td>
             }  #ENDGROUPS
   #            }
     if (      if (
  ($env{'request.noversionuri'}=~m[^/(res|public)/] &&   ($env{'request.noversionuri'}=~m[^/(res|public)/] &&
  $env{'request.symb'} eq '')   $env{'request.symb'} eq '')
Line 209  ENDGROUPS Line 214  ENDGROUPS
         m[^/adm/.*/(smppg|bulletinboard|aboutme)($|\?)])          m[^/adm/.*/(smppg|bulletinboard|aboutme)($|\?)])
   )    )
  ) {   ) {
                 my $escreload=&Apache::lonnet::escape('return:');                  my $escreload=&escape('return:');
                 $reloadlink=(<<ENDRELOAD);                  $reloadlink=(<<ENDRELOAD);
 <td><a href="/adm/flip?postdata=$escreload" target="_top">$lt{'ret'}</a></td>  <td><a href="/adm/flip?postdata=$escreload" target="_top">$lt{'ret'}</a></td>
 ENDRELOAD  ENDRELOAD
             }              }
         }          }
  if (($env{'request.state'} eq 'construct') && ($env{'request.course.id'})) {   if (($env{'request.state'} eq 'construct') && ($env{'request.course.id'})) {
     my $escreload=&Apache::lonnet::escape('return:');      my $escreload=&escape('return:');
     $reloadlink=(<<ENDCRELOAD);      $reloadlink=(<<ENDCRELOAD);
 <td><a href="/adm/flip?postdata=$escreload" target="_top">$lt{'ret'}</a></td>  <td><a href="/adm/flip?postdata=$escreload" target="_top">$lt{'ret'}</a></td>
 ENDCRELOAD  ENDCRELOAD
Line 232  ENDCRELOAD Line 237  ENDCRELOAD
  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 $helptopic='Student_Intro';
           if ($env{'request.role'}=~/^(ca|au)/) {
       $helptopic='Authoring_Intro';
    } elsif ($env{'request.role'}=~/^cc/) {
       $helptopic='Course_Coordination_Intro';
    }
           my $helplink=&Apache::loncommon::help_open_topic($helptopic,'Help');
  return (<<ENDINLINEMENU);   return (<<ENDINLINEMENU);
 <script type="text/javascript">  <script type="text/javascript">
 // BEGIN LON-CAPA Internal  // BEGIN LON-CAPA Internal
Line 241  $utility Line 253  $utility
 </script>  </script>
 <table id="LC_top_nav">  <table id="LC_top_nav">
 <tr>  <tr>
   <td class="LC_top_nav_logo">
   <a href="/adm/about.html"><img src="$logo" alt="LON-CAPA Logo" align="left" border="0" /></a></td>
 <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 248  $docs Line 262  $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>$helplink</td>
 <td class="LC_top_nav_logo"><img align="right" src="$logo" alt="Logo" /><b>LON-CAPA</b></td>  <td class="LC_top_logout"><a href="/adm/logout" target="_top">$lt{'exit'}</a></td>
 </tr>  </tr>
 </table>  </table>
 $form  $form
Line 277  sub registerurl { Line 291  sub registerurl {
         ($env{'environment.remote'} eq 'off') ||          ($env{'environment.remote'} eq 'off') ||
         ((($env{'request.publicaccess'}) ||           ((($env{'request.publicaccess'}) || 
          (!&Apache::lonnet::is_on_map(           (!&Apache::lonnet::is_on_map(
    &Apache::lonnet::unescape($env{'request.noversionuri'})))) &&     &unescape($env{'request.noversionuri'})))) &&
         (!$forcereg))) {          (!$forcereg))) {
   return $result.    return $result.
           '<script type="text/javascript">function LONCAPAreg(){;} function LONCAPAstale(){}</script>'.$force_title;            '<script type="text/javascript">function LONCAPAreg(){;} function LONCAPAstale(){}</script>'.$force_title;
Line 437  sub innerregister { Line 451  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 531  ENDREGTEXT Line 542  ENDREGTEXT
 # Registered, graphical output  # Registered, graphical output
         } else {          } else {
     my $requri=&Apache::lonnet::clutter(&Apache::lonnet::fixversion((split(/\?/,$env{'request.noversionuri'}))[0]));      my $requri=&Apache::lonnet::clutter(&Apache::lonnet::fixversion((split(/\?/,$env{'request.noversionuri'}))[0]));
     $requri=&Apache::lonenc::check_encrypt(&Apache::lonnet::unescape($requri));      $requri=&Apache::lonenc::check_encrypt(&unescape($requri));
     my $cursymb=&Apache::lonenc::check_encrypt($env{'request.symb'});      my $cursymb=&Apache::lonenc::check_encrypt($env{'request.symb'});
     my $navstatus=&get_nav_status();      my $navstatus=&get_nav_status();
     my $clearcstr;      my $clearcstr;
Line 646  sub startupremote { Line 657  sub startupremote {
 # The Remote actually gets launched!  # The Remote actually gets launched!
 #  #
     my $configmenu=&rawconfig();      my $configmenu=&rawconfig();
     my $esclowerurl=&Apache::lonnet::escape($lowerurl);      my $esclowerurl=&escape($lowerurl);
     my $message=&mt('"Waiting for Remote Control window to load: "+[_1]','waited');      my $message=&mt('"Waiting for Remote Control window to load: "+[_1]','waited');
     return(<<ENDREMOTESTARTUP);      return(<<ENDREMOTESTARTUP);
 <script type="text/javascript">  <script type="text/javascript">
Line 729  sub load_remote_msg { Line 740  sub load_remote_msg {
     if (($env{'browser.interface'} eq 'textual') ||      if (($env{'browser.interface'} eq 'textual') ||
         ($env{'environment.remote'} eq 'off')) { return ''; }          ($env{'environment.remote'} eq 'off')) { return ''; }
   
     my $esclowerurl=&Apache::lonnet::escape($lowerurl);      my $esclowerurl=&escape($lowerurl);
     my $link=&mt('<a href="[_1]">Continue</a> on in Inline Menu mode',      my $link=&mt('<a href="[_1]">Continue</a> on in Inline Menu mode',
     "/adm/remote?action=collapse?url=$esclowerurl");   "/adm/remote?action=collapse&amp;url=$esclowerurl");
     return(<<ENDREMOTEFORM);      return(<<ENDREMOTEFORM);
 <p>  <p>
 <form name="wheel">  <form name="wheel">
Line 772  ENDRESIZE Line 783  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 919  sub rawconfig { Line 930  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 1045  sub utilityfunctions { Line 1060  sub utilityfunctions {
     unless (($env{'browser.interface'} eq 'textual')  ||      unless (($env{'browser.interface'} eq 'textual')  ||
         ($env{'environment.remote'} eq 'off') || ($caller eq '/adm/menu')) { return ''; }          ($env{'environment.remote'} eq 'off') || ($caller eq '/adm/menu')) { return ''; }
     my $currenturl=&Apache::lonnet::clutter(&Apache::lonnet::fixversion((split(/\?/,$env{'request.noversionuri'}))[0]));      my $currenturl=&Apache::lonnet::clutter(&Apache::lonnet::fixversion((split(/\?/,$env{'request.noversionuri'}))[0]));
     $currenturl=&Apache::lonenc::check_encrypt(&Apache::lonnet::unescape($currenturl));      $currenturl=&Apache::lonenc::check_encrypt(&unescape($currenturl));
           
     my $currentsymb=&Apache::lonenc::check_encrypt($env{'request.symb'});      my $currentsymb=&Apache::lonenc::check_encrypt($env{'request.symb'});
     my $nav_control=&nav_control_js();      my $nav_control=&nav_control_js();
Line 1253  sub get_nav_status { Line 1268  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.181  
changed lines
  Added in v.1.195


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