Diff for /loncom/interface/lonmenu.pm between versions 1.309 and 1.309.2.1

version 1.309, 2009/12/03 14:27:16 version 1.309.2.1, 2009/12/07 20:04:18
Line 160  sub prep_menuitem { Line 160  sub prep_menuitem {
 # entries from mydesk.tab  # entries from mydesk.tab
 sub primary_menu {  sub primary_menu {
     my $menu;      my $menu;
       my $custommenu = &Apache::loncommon::needs_gci_custom();
     # each element of @primary contains following array:      # each element of @primary contains following array:
     # (link url, icon path, alt text, link text, condition)      # (link url, icon path, alt text, link text, condition)
     foreach my $menuitem (@primary_menu) {      foreach my $menuitem (@primary_menu) {
Line 175  sub primary_menu { Line 176  sub primary_menu {
         next if    $$menuitem[4]        eq 'onlypublic'# hide links which are           next if    $$menuitem[4]        eq 'onlypublic'# hide links which are 
                 && $env{'user.name'}    ne 'public'    # only visible to public                  && $env{'user.name'}    ne 'public'    # only visible to public
                 && $env{'user.domain'}  ne 'public';   # users                  && $env{'user.domain'}  ne 'public';   # users
           next if    $$menuitem[4]        eq 'roles'     # hide links which are
                   && $custommenu;                        # not visible when GCI
           next if    $$menuitem[4]        eq 'courses'   # tabbed interface in use
                   && $custommenu;                        # 
         next if    $$menuitem[4]        eq 'roles'     ##show links depending on          next if    $$menuitem[4]        eq 'roles'     ##show links depending on
                 && &Apache::loncommon::show_course();  ##term 'Courses' or                   && &Apache::loncommon::show_course();  ##term 'Courses' or 
         next if    $$menuitem[4]        eq 'courses'   ##'Roles' wanted          next if    $$menuitem[4]        eq 'courses'   ##'Roles' wanted
Line 277  sub secondary_menu { Line 282  sub secondary_menu {
     return "<ul id=\"LC_secondary_menu\">$menu</ul>";      return "<ul id=\"LC_secondary_menu\">$menu</ul>";
 }  }
   
   sub gci_secondary_menu {
       my %courses = (
           'review' => 'gci_9615072b469884921gcil1',
           'submit' => 'gci_1H96711d710194bfegcil1',
       );
       my %linktext = (
           'review'      => 'Review Questions',
           'submit'      => 'Submit Questions',
           'createtest'  => 'Create a Test',
       );
       my (%links,$current);
       foreach my $key (keys(%courses)) {
           $links{$key} = "javascript:switchpage('$key');";
           if ($env{'request.course.id'} eq $courses{$key}) {
               $links{$key} = '/adm/navmaps';
               $current = $key;
           }
       }
       $links{'createtest'} = "javascript:switchpage('createtest');";
       if (($ENV{'REQUEST_URI'} eq '/adm/requestcourse') ||
           ($env{'form.orgurl'} eq '/adm/requestcourse')) {
           $current = 'createtest';
       }
       my @menutabs = ('review','submit','createtest');
       if ($env{'user.adv'}) {
           my $key = 'managetest';
           push(@menutabs,$key);
           $linktext{$key} = 'Manage Tests';
           $links{$key} = "javascript:switchpage('$key');";
           if (($current eq '') && (($ENV{'REQUEST_URI'} eq '/adm/menu') ||
               ($env{'form.orgurl'} eq '/adm/menu'))) {
               $current = $key;
           }
       }
       my $tabs;
       foreach my $item (@menutabs) {
           if ($item eq $current) {
               $tabs .= ' <li id="current"><a href="'.$links{$item}.'">'.
                        $linktext{$item}.'</a></li>';
           } else {
               $tabs .= ' <li><a href="'.$links{$item}.'">'.
                        $linktext{$item}.'</a></li>';
           }
       }
       return '<div id="gciheader">'.
              '<ul>'.$tabs.'</ul></div><br />';
   }
   
 #  #
 # This routine returns a translated hash for the menu items in the top inline menu row  # This routine returns a translated hash for the menu items in the top inline menu row
Line 1332  sub openmenu { Line 1384  sub openmenu {
 }  }
   
 sub inlinemenu {  sub inlinemenu {
       my ($context,$switcher) = @_;
     undef(@inlineremote);      undef(@inlineremote);
     undef(%category_members);      undef(%category_members);
 # calling rawconfig with "1" will evaluate mydesk.tab, even if there is no active remote control      my $output;
     &rawconfig(1);      if ($context eq 'gcicustom') {
     my $output='<table><tr>';          $output.='<div class="LC_left_float">'.
     for (my $col=1; $col<=2; $col++) {                   '<fieldset id="LC_mainmenu_fieldset">'.
         $output.='<td class="LC_mainmenu_col_fieldset">';                   '<legend class="LC_mainmenu_fieldset_category">'.&mt('Utilities').'</legend>'.
         for (my $row=1; $row<=8; $row++) {                  '<table id="LC_menubuttons_mainmenu">';
             foreach my $cat (keys(%category_members)) {          if ($switcher) {
                if ($category_positions{$cat} ne "$col,$row") { next; }              $output .= '<tr><td class="LC_menubuttons_img" align="left"><a href="javascript:courseswitcher('."'icon'".');"><img alt="choose role" src="/res/adm/pages/roles.png" align="left" /></a></td><td class="LC_menubuttons_text" colspan="3"><span class="LC_menubuttons_inline_text">'.$switcher.'</span></td></tr>';
                #$output.='<table><tr><td colspan="4" class="LC_menubuttons_category">'.&mt($category_names{$cat}).'</td></tr>';          }
                $output.='<div class="LC_Box LC_400Box">';          $output .= '<tr><td class="LC_menubuttons_img" align="left"><a href="javascript:go('."'/adm/communicate'".');"><img alt="communication" src="/res/adm/pages/com.png" align="left" /></a></td><td class="LC_menubuttons_text" colspan="3"><a class="LC_menubuttons_link" href="javascript:go('."'/adm/communicate'".');"><span class="LC_menubuttons_inline_text">'.&mt('Send and display messages').'</span></a></td></tr></table></fieldset></div>';
        $output.='<h3 class="LC_hcell">'.&mt($category_names{$cat}).'</h3>';          if (($env{'request.course.id'}) &&
                $output.='<table>';              (&Apache::lonnet::allowed('mdc',$env{'request.course.id'}))) {
                my %active=();              $output.= '<div class="LC_left_float">'.
                foreach my $menu_item (split(/\:/,$category_members{$cat})) {                  '<fieldset id="LC_mainmenu_fieldset">'.
                   if ($inlineremote[$menu_item]) {                  '<legend class="LC_mainmenu_fieldset_category">'.&mt('Test Management').'</legend>'.
                      $active{$menu_item}=1;                  '<table id="LC_menubuttons_mainmenu">'.
                   }                  '<tr><td class="LC_menubuttons_img" align="left"><a href="javascript:go('."'/adm/createuser'".');"><img alt="user privs" src="/res/adm/pages/cprv.png" align="left" /></a></td><td class="LC_menubuttons_text" colspan="3"><a class="LC_menubuttons_link" href="javascript:go('."'/adm/createuser'".');"><span class="LC_menubuttons_inline_text">'.&mt('Manage Enrollment').'</span></a></td></tr>'."\n".
                }                    '<tr><td class="LC_menubuttons_img" align="left"><a href="javascript:go('."'/adm/whatsnew'".');"><img alt="what is new" src="/res/adm/pages/new.png" align="left" /></a></td><td class="LC_menubuttons_text" colspan="3"><a class="LC_menubuttons_link" href="javascript:go('."'/adm/whatsnew'".');"><span class="LC_menubuttons_inline_text">'.&mt("What's New?").'</span></a></td></tr></table></fieldset></div>';
                foreach my $item (sort(keys(%active))) {          }
                   $output.=$inlineremote[$item];          $output.='<br clear="all />';
                }      } else 
                $output.='</table>';          # calling rawconfig with "1" will evaluate mydesk.tab, 
                $output.='</div>';          # even if there is no active remote control
           &rawconfig(1);
           my $output='<table><tr>';
           for (my $col=1; $col<=2; $col++) {
               $output.='<td class="LC_mainmenu_col_fieldset">';
               for (my $row=1; $row<=8; $row++) {
                   foreach my $cat (keys(%category_members)) {
                       if ($category_positions{$cat} ne "$col,$row") { next; }
                       $output.='<div class="LC_Box LC_400Box">';
               $output.='<h3 class="LC_hcell">'.&mt($category_names{$cat}).'</h3>';
                       $output.='<table>';
                       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.='</div>';
             }              }
          }              $output.="</td>";
          $output.="</td>";          }
           $output.="</tr></table>";
     }      }
     $output.="</tr></table>";  
     return $output;      return $output;
 }  }
   
Line 1656  END Line 1730  END
 }  }
   
 sub utilityfunctions {  sub utilityfunctions {
     my $caller = shift;      my ($caller,$custommenu) = @_;
     unless ($env{'environment.remote'} eq 'off' ||       unless ($env{'environment.remote'} eq 'off' || 
             $caller eq '/adm/menu') {               $caller eq '/adm/menu') { 
             return ''; }              return ''; }
                    
       my $gcimenujs;
       if ($custommenu) {
           my %concepttests = &Apache::loncommon::existing_gcitest_courses();
           my $managetesturl = '/adm/menu';
           my $createtesturl = '/adm/requestcourse';
           if (($env{'request.course.id'}) &&
               ($env{'course.'.$env{'request.course.id'}.'.domain'} eq 'gci')) {
               my @items = keys(%concepttests);
               if (@items== 1) {
                   my $newrole = $items[0];
                   $newrole =~ s{_}{/};
                   $managetesturl = '/adm/roles?selectrole=1&cc./'.$newrole.'=1';
               } else {
                   $managetesturl = '/adm/roles?selectrole=1&cm=1&orgurl=%2fadm%2fmenu';
               }
           }
           if ($env{'request.course.id'}) {
               $createtesturl = '/adm/roles?selectrole=1&cm=1&orgurl=%2fadm%2frequestcourse';
           }
           $gcimenujs = <<"ENDCUSTOM";
   
   function switchpage(caller) {
       if (caller == 'review') {
           document.location.href = '/adm/roles?selectrole=1&st./gci/9615072b469884921gcil1=1';
       }
       if (caller == 'submit') {
           document.location.href = '/adm/roles?selectrole=1&st./gci/1H96711d710194bfegcil1=1';
       }
       if (caller == 'createtest') {
           document.location.href = '$createtesturl';
       }
       if (caller == 'managetest') {
           document.location.href = '$managetesturl';
       }
       return;
   }
   
   ENDCUSTOM
       }
          
     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]));
     if ($currenturl =~ m{^/adm/wrapper/ext/}) {      if ($currenturl =~ m{^/adm/wrapper/ext/}) {
         if ($env{'request.external.querystring'}) {          if ($env{'request.external.querystring'}) {
Line 1708  return (<<ENDUTILITY) Line 1822  return (<<ENDUTILITY)
 $nav_control  $nav_control
 $dc_popup_cid  $dc_popup_cid
   
   $gcimenujs
   
 function go(url) {  function go(url) {
    if (url!='' && url!= null) {     if (url!='' && url!= null) {
        currentURL = null;         currentURL = null;

Removed from v.1.309  
changed lines
  Added in v.1.309.2.1


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