Diff for /loncom/interface/lonmenu.pm between versions 1.309.2.16 and 1.309.2.23

version 1.309.2.16, 2010/10/04 23:00:46 version 1.309.2.23, 2010/12/05 19:44:36
Line 151  sub prep_menuitem { Line 151  sub prep_menuitem {
     } else {             # textual Link      } else {             # textual Link
         $link = &mt($$menuitem[3]);          $link = &mt($$menuitem[3]);
     }      }
     if($$menuitem[4] eq 'newmsg'){   #special style for New Messages      return '<li><a' 
         return '<li><a href="'.$$menuitem[0].'"><span class="LC_new_message">'.$link.'</span></a></li>';             # highlighting for new messages
     }             . ( $$menuitem[4] eq 'newmsg' ? ' class="LC_new_message"' : '') 
     return '<li><a href="'.$$menuitem[0].'">'.$link.'</a></li>';             . qq| href="$$menuitem[0]" target="_top">$link</a></li>|;
 }  }
   
 # primary_menu() evaluates @primary_menu and returns XHTML for the menu  # primary_menu() evaluates @primary_menu and returns XHTML for the menu
Line 165  sub prep_menuitem { Line 165  sub prep_menuitem {
 sub primary_menu {  sub primary_menu {
     my $menu;      my $menu;
     my $custommenu = &Apache::loncommon::needs_gci_custom();      my $custommenu = &Apache::loncommon::needs_gci_custom();
       my $numdc = &Apache::loncommon::check_for_gci_dc();
       my %allnums = &Apache::loncommon::get_faculty_cnums();
     # 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)
       my ($public,$faculty);
       if ((($env{'user.name'} eq 'public') && ($env{'user.domain'} eq 'public'))
           || (($env{'user.name'} eq '') && ($env{'user.domain'} eq ''))) {
           $public = 1;
       } elsif (ref($allnums{$env{'user.domain'}}) eq 'HASH') {
           $faculty = 1;
       }
     foreach my $menuitem (@primary_menu) {      foreach my $menuitem (@primary_menu) {
         # evaluate conditions           # evaluate conditions 
         next if    ref($menuitem)       ne 'ARRAY';    #          next if    ref($menuitem)       ne 'ARRAY';    #
Line 175  sub primary_menu { Line 184  sub primary_menu {
         next if    $$menuitem[4]        eq 'newmsg'    # arrived or not          next if    $$menuitem[4]        eq 'newmsg'    # arrived or not
                 && !&Apache::lonmsg::mynewmail();      #                   && !&Apache::lonmsg::mynewmail();      # 
         next if    $$menuitem[4]        !~ /public/    ##we've a public user,           next if    $$menuitem[4]        !~ /public/    ##we've a public user, 
                 && $env{'user.name'}    eq 'public'    ##who should not see all                   && $public;                            ##who should not see all 
                 && $env{'user.domain'}  eq 'public';   ##links                                                         ##links
         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                  && !$public;                           # only visible to public
                 && $env{'user.domain'}  ne 'public';   # users                                                         # users
         next if    $$menuitem[4]        eq 'gci'          next if    $$menuitem[4]        eq 'ci'
                 && (!$custommenu || $env{'request.role'} =~ m{^st\./gcitest/});                  && (!$custommenu || $env{'request.role'} =~ m{^st\./\w+citest/});
         next if    $$menuitem[4]        eq 'home'          next if    $$menuitem[4]        eq 'home'
                 && $custommenu;                  && (($custommenu) || ($env{'user.domain'} =~ /^\w+citest$/) || 
         next if    $$menuitem[4]        eq 'gcitest'                      ($faculty && !$numdc));
                 && $env{'user.domain'}  eq 'gci';          next if    $$menuitem[4]        eq 'citest'
                   && ($faculty || ($env{'request.role'} eq 'cm'));
         next if    $$menuitem[4]        eq 'roles'     # hide links which are          next if    $$menuitem[4]        eq 'roles'     # hide links which are
                 && $custommenu;                        # not visible when GCI                  && $custommenu;                        # not visible when GCI
         next if    $$menuitem[4]        eq 'courses'   # tabbed interface in use          next if    $$menuitem[4]        eq 'courses'   # tabbed interface in use
Line 197  sub primary_menu { Line 207  sub primary_menu {
                   
                           
         if ($$menuitem[3] eq 'Help') { # special treatment for helplink          if ($$menuitem[3] eq 'Help') { # special treatment for helplink
             $menu .= '<li>'.&Apache::loncommon::top_nav_help('Help').'</li>';              if ($public) {
                   my $origmail = $Apache::lonnet::perlvar{'lonSupportEMail'};
                   my $defdom = &Apache::lonnet::default_login_domain();
                   my $to = &Apache::loncommon::build_recipient_list(undef,
                                                                     'helpdeskmail',
                                                                     $defdom,$origmail);
                   if ($to ne '') {
                       $menu .= &prep_menuitem($menuitem);
                   }
               } else {
                   $menu .= '<li>'.&Apache::loncommon::top_nav_help('Help').'</li>';
               }
         } else {          } else {
             my @items = @{$menuitem};              $menu .= &prep_menuitem($menuitem);
             $items[0] = 'javascript:'.$menuitem->[0].';';  
             $menu .= &prep_menuitem(\@items);  
         }          }
     }      }
   
Line 224  sub secondary_menu { Line 243  sub secondary_menu {
                      $env{'course.' . $env{'request.course.id'} . '.num'});                       $env{'course.' . $env{'request.course.id'} . '.num'});
     my $custommenu = &Apache::loncommon::needs_gci_custom();      my $custommenu = &Apache::loncommon::needs_gci_custom();
     my $numdc = &Apache::loncommon::check_for_gci_dc();      my $numdc = &Apache::loncommon::check_for_gci_dc();
       my $role = $env{'request.role'};
     foreach my $menuitem (@secondary_menu) {      foreach my $menuitem (@secondary_menu) {
         # evaluate conditions           # evaluate conditions 
         next if    ref($menuitem)  ne 'ARRAY';          next if    ref($menuitem)  ne 'ARRAY';
         next if    $$menuitem[4]   eq 'showmenu'          next if    $$menuitem[4]   eq 'showmenu'
                 && ($custommenu || !$numdc);                     && ($custommenu || (!$numdc && $role eq 'cm'));
           next if    $$menuitem[4]   ne 'showmenu'
                   && $$menuitem[4]   ne 'author'
                   && !$env{'request.course.id'};
         next if    $$menuitem[4]   eq 'showreturn'          next if    $$menuitem[4]   eq 'showreturn'
                 && !$showlink                  && !$showlink
                 && !($env{'request.state'} eq 'construct');                  && !($env{'request.state'} eq 'construct');
Line 250  sub secondary_menu { Line 273  sub secondary_menu {
                 && !$canviewgrps                  && !$canviewgrps
                 && !%groups;                  && !%groups;
         next if   $$menuitem[4]  eq 'showroles'          next if   $$menuitem[4]  eq 'showroles'
                 && ($custommenu || !$numdc);                  && ($custommenu || !$numdc || ($numdc && $env{'request.noversionuri'} eq '/adm/roles'));
         if ($$menuitem[3] eq 'Roles' && $env{'request.course.id'} && !$custommenu) {          if ($$menuitem[3] eq 'Roles' && $env{'request.course.id'} && !$custommenu) {
             # special treatment for role selector              # special treatment for role selector
             my $roles_selector = &roles_selector(              my $roles_selector = &roles_selector(
Line 296  sub secondary_menu { Line 319  sub secondary_menu {
 }  }
   
 sub gci_secondary_menu {  sub gci_secondary_menu {
     my %courses = (      my %courses;
         'review' => 'gci_9615072b469884921gcil1',      my $inventory;
         'submit' => 'gci_1H96711d710194bfegcil1',      if ($env{'user.domain'} =~ /^(\w+ci)test$/) {
         'tutorial' => 'gci_5422913620b814c90gcil1',          $inventory = $1;
     );      } else {
           $inventory = $env{'user.domain'};
       }
       my %allnums = &Apache::loncommon::get_faculty_cnums();
       if (($inventory ne '') && (ref($allnums{$inventory}) eq 'HASH')) {
           foreach my $key (%{$allnums{$inventory}}) {
               $courses{$inventory.'_'.$key} = $allnums{$inventory}->{$key};
           }
       }
   
     my %linktext = (      my %linktext = (
         'review'      => 'Review Questions',          'review'      => 'Review Questions',
         'submit'      => 'Submit Questions',          'submit'      => 'Submit Questions',
Line 311  sub gci_secondary_menu { Line 343  sub gci_secondary_menu {
                   'managetest' => '/adm/menu',                    'managetest' => '/adm/menu',
                 );                  );
     my $current = 'managetest';      my $current = 'managetest';
     if ($env{'form.destinationurl'} eq '/adm/gci_info') {      if ($env{'form.destinationurl'} eq '/adm/ci_info') {
         undef($current);          undef($current);
     }      }
     foreach my $key (keys(%courses)) {      foreach my $key (keys(%courses)) {
         $links{$key} = "javascript:switchpage('$key');";          $links{$key} = "javascript:switchpage('$key');";
         if ($env{'request.course.id'} eq $courses{$key}) {          if ($env{'request.course.id'} eq $courses{$key}) {
             $links{$key} = '/adm/navmaps';              if ($env{'environment.remotenavmap'} eq 'on') {
                   $links{$key} = "javascript:gonav('/adm/navmaps')";
               } else {
                   $links{$key} = '/adm/navmaps';
               }
             $current = $key;              $current = $key;
             $links{'managetest'} = '/adm/roles?selectrole=1&cm=1&orgurl=%2fadm%2fmenu';              $links{'managetest'} = '/adm/roles?selectrole=1&cm=1&orgurl=%2fadm%2fmenu';
         }          }
Line 326  sub gci_secondary_menu { Line 362  sub gci_secondary_menu {
     my $tabs;      my $tabs;
     foreach my $item (@menutabs) {      foreach my $item (@menutabs) {
         if ($item eq $current) {          if ($item eq $current) {
             $tabs .= ' <li id="current"><a href="'.$links{$item}.'">'.              $tabs .= '<li id="current"><a href="'.$links{$item}.'">'.
                      $linktext{$item}.'</a></li>';                       $linktext{$item}.'</a></li>';
         } else {          } else {
             $tabs .= ' <li><a href="'.$links{$item}.'">'.              $tabs .= '<li><a href="'.$links{$item}.'">'.
                      $linktext{$item}.'</a></li>';                       $linktext{$item}.'</a></li>';
         }          }
     }      }
Line 529  ENDINLINEMENU Line 565  ENDINLINEMENU
 }  }
   
 sub show_return_link {  sub show_return_link {
       return unless ($env{'request.course.id'});
     if (($env{'request.noversionuri'} =~ m{^/adm/(viewclasslist|navmaps)($|\?)})      if (($env{'request.noversionuri'} =~ m{^/adm/(viewclasslist|navmaps)($|\?)})
         || ($env{'request.noversionuri'} =~ m{^/adm/.*/aboutme($|\?)})) {          || ($env{'request.noversionuri'} =~ m{^/adm/.*/aboutme($|\?)})) {
         return if ($env{'form.register'});          return if ($env{'form.register'});
Line 617  sub innerregister { Line 654  sub innerregister {
         my @crumbs;          my @crumbs;
         unless (($forcereg) && ($env{'request.noversionuri'} eq '/adm/navmaps')          unless (($forcereg) && ($env{'request.noversionuri'} eq '/adm/navmaps')
                 && ($mapurl eq $env{'course.'.$env{'request.course.id'}.'.url'})) {                  && ($mapurl eq $env{'course.'.$env{'request.course.id'}.'.url'})) {
               my $link = "javascript:gopost('/adm/navmaps','')";
               if ($env{'environment.remotenavmap'} eq 'on') {
                   $link = "javascript:gonav('/adm/navmaps','')"
               }
             @crumbs = ({text  => Apache::loncommon::course_type()              @crumbs = ({text  => Apache::loncommon::course_type()
                                 . ' Contents',                                  . ' Contents',
                         href  => "Javascript:gopost('/adm/navmaps','')"});                          href  => $link});
         }          }
         if ($mapurl ne $env{'course.'.$env{'request.course.id'}.'.url'}) {           if ($mapurl ne $env{'course.'.$env{'request.course.id'}.'.url'}) { 
             push(@crumbs, {text  => '...',              push(@crumbs, {text  => '...',
Line 1428  ENDSCRIPT Line 1469  ENDSCRIPT
             }              }
             $switcher = $switcher_js.$switcher;              $switcher = $switcher_js.$switcher;
         }          }
         if ($env{'user.domain'} eq 'gci') {          if ($env{'user.domain'} !~ /^\w+citest$/) {
             $canreq =              $canreq =
                 &Apache::lonnet::check_can_request('gcitest',\%can_request,\%request_domains);                  &Apache::lonnet::check_can_request($env{'user.domain'}.'test',\%can_request,\%request_domains);
             $createtext = &mt('Create Concept Test');              $createtext = &mt('Create Concept Test');
             if ($numcourses) {              if ($numcourses) {
                 $createtext = &mt('Create New Test');                  $createtext = &mt('Create New Test');
Line 1438  ENDSCRIPT Line 1479  ENDSCRIPT
         }          }
         if ($env{'request.course.id'}) {          if ($env{'request.course.id'}) {
             if (&Apache::lonnet::allowed('mdc',$env{'request.course.id'})) {              if (&Apache::lonnet::allowed('mdc',$env{'request.course.id'})) {
                   my $navlink;
                   if ($env{'environment.remotenavmap'} eq 'on') {
                       $navlink = "javascript:gonav('/adm/navmaps')";
                   } else {
                       $navlink = '/adm/navmaps';
                   }
                 $output .=                   $output .= 
                   '<div class="LC_Box LC_800Box LC_GCI_Menu">'.                    '<br /><br clear="all" /><div class="LC_Box LC_GCI_Menu">'.
                   '<h3 class="LC_hcell">'.&mt('Test Management').'</h3>'.                    '<h3 class="LC_hcell">'.&mt('Management').'</h3>'.
                   '<div class="LC_GCI_Menu_left">'.                    '<div class="LC_GCI_Menu_left">'.
                   '<dl class="LC_GCI_Menu">'.                    '<dl class="LC_GCI_Menu">'.
                   '<dt><a href="/adm/navmaps">'.&mt('Concept Test Contents').'</a></dt>'.                    '<dt><a href="'.$navlink.'">'.&mt('Concept Test Contents').'</a></dt>'.
                   '<dd style="background-image:url(\'/res/adm/pages/nav.png\');"><a class="LC_menubuttons_link" href="/adm/navmaps">'.&mt('Display the table of contents for your Concept Test.').'</a></dd>'.                    '<dd style="background-image:url(\'/res/adm/pages/nav.png\');"><a class="LC_menubuttons_link" href="'.$navlink.'">'.&mt('Display the table of contents for your Concept Test.').'</a></dd>'.
                   '<dt><a href="/adm/coursedocs">'.&mt('Assemble Concept Test').'</a></dt>'.                    '<dt><a href="/adm/coursedocs">'.&mt('Assemble Concept Test').'</a></dt>'.
                   '<dd style="background-image:url(\'/res/adm/pages/docs.png\');"><a class="LC_menubuttons_link" href="/adm/coursedocs">'.&mt('If no students have attempted the Concept Test you will be able to modify it. You can also change the start and end date of the test itself.').'</a></dd>'.                    '<dd style="background-image:url(\'/res/adm/pages/docs.png\');"><a class="LC_menubuttons_link" href="/adm/coursedocs">'.&mt('If no students have attempted the Concept Test you will be able to modify it. You can also change the start and end date of the test itself.').'</a></dd>'.
                   '<dt><a href="/adm/createuser">'.&mt('Enrollment and Student Activity').'</a></dt>'.                    '<dt><a href="/adm/createuser">'.&mt('Enrollment and Student Activity').'</a></dt>'.
Line 1465  ENDSCRIPT Line 1512  ENDSCRIPT
             } else {              } else {
                 my $navtext = &mt('Table of Contents');                  my $navtext = &mt('Table of Contents');
                 my $navdesc = &mt('Display Table of Contents for Geoscience Concept Inventory');                  my $navdesc = &mt('Display Table of Contents for Geoscience Concept Inventory');
                 if ($env{'request.role.domain'} eq 'gcitest') {                  if ($env{'request.role.domain'} =~ /^\w+citest$/) {
                     $navtext = &mt('Display Test Contents');                      $navtext = &mt('Display Test Contents');
                     $navdesc = &mt('Display the table of contents for this Concept Test');                      $navdesc = &mt('Display the table of contents for this Concept Test');
                 }                  }
                   my $navlink;
                   if ($env{'environment.remotenavmap'} eq 'on') {
                       $navlink = "javascript:gonav('/adm/navmaps');"
                   } else {
                       $navlink = '/adm/navmaps';
                   }
                 $output .=                   $output .= 
                            '<div class="LC_Box LC_800Box LC_GCI_Menu">'.                             '<div class="LC_Box LC_GCI_Menu">'.
                            '<h3 class="LC_hcell">'.&mt('Utilities').'</h3>'.                             '<h3 class="LC_hcell">'.&mt('Utilities').'</h3>'.
                            '<div class="LC_GCI_Menu_left">'.                             '<div class="LC_GCI_Menu_left">'.
                            '<dl class="LC_GCI_Menu">'.                             '<dl class="LC_GCI_Menu">'.
                            '<dt><a href="/adm/navmaps">'.$navtext.'</dt>'.                             '<dt><a href="'.$navlink.'">'.$navtext.'</dt>'.
                            '<dd style="background-image:url(\'/res/adm/pages/nav.png\');">'.                             '<dd style="background-image:url(\'/res/adm/pages/nav.png\');">'.
                            '<a class="LC_menubuttons_link" href="/adm/navmaps">'.$navdesc.'</a></dd></dl></div>';                             '<a class="LC_menubuttons_link" href="'.$navlink.'">'.$navdesc.'</a></dd></dl></div>';
                 if ($canreq) {                  if ($canreq) {
                     $output .= '<div class="LC_GCI_Menu_right">'.                      $output .= '<div class="LC_GCI_Menu_right">'.
                                '<dl class="LC_GCI_Menu">'.                                 '<dl class="LC_GCI_Menu">'.
Line 1487  ENDSCRIPT Line 1540  ENDSCRIPT
             }              }
         } elsif ($switcher || $canreq) {          } elsif ($switcher || $canreq) {
             $output .= '<br /><br />'.              $output .= '<br /><br />'.
                        '<div class="LC_Box LC_800Box LC_GCI_Menu">'.                         '<div class="LC_Box LC_GCI_Menu">'.
                        '<h3 class="LC_hcell">'.&mt('Utilities').'</h3>'.                         '<h3 class="LC_hcell">'.&mt('Utilities').'</h3>'.
                        '<div class="LC_GCI_Menu_left">'.                         '<div class="LC_GCI_Menu_left">'.
                        '<dl class="LC_GCI_Menu">';                         '<dl class="LC_GCI_Menu">';
Line 1509  ENDSCRIPT Line 1562  ENDSCRIPT
         my $queued =  &Apache::loncoursequeueadmin::queued_selfenrollment('notitle');          my $queued =  &Apache::loncoursequeueadmin::queued_selfenrollment('notitle');
         if ($queued) {          if ($queued) {
             $output .=               $output .= 
                        '<div class="LC_Box LC_800Box">'.                         '<div class="LC_Box">'.
                        '<h3 class="LC_hcell">'.&mt('Pending Enrollment Requests').'</h3>'.                         '<h3 class="LC_hcell">'.&mt('Pending Enrollment Requests').'</h3>'.
                        $queued.                         $queued.
                        '</div>';                         '</div>';
Line 1849  sub utilityfunctions { Line 1902  sub utilityfunctions {
         my $managetesturl = '/adm/menu';          my $managetesturl = '/adm/menu';
         my $createtesturl = '/adm/requestcourse';          my $createtesturl = '/adm/requestcourse';
         if (($env{'request.course.id'}) &&          if (($env{'request.course.id'}) &&
             ($env{'course.'.$env{'request.course.id'}.'.domain'} eq 'gci')) {              ($env{'course.'.$env{'request.course.id'}.'.domain'} !~ /^\w+citest$/)) {
             my @items = keys(%concepttests);              my @items = keys(%concepttests);
             if (@items== 1) {              if (@items== 1) {
                 my $newrole = $items[0];                  my $newrole = $items[0];
Line 1862  sub utilityfunctions { Line 1915  sub utilityfunctions {
         if ($env{'request.course.id'}) {          if ($env{'request.course.id'}) {
             $createtesturl = '/adm/roles?selectrole=1&cm=1&orgurl=%2fadm%2frequestcourse';              $createtesturl = '/adm/roles?selectrole=1&cm=1&orgurl=%2fadm%2frequestcourse';
         }          }
           my %allnums = &Apache::loncommon::get_faculty_cnums();
           my $udom = $env{'user.domain'};
           my %crs_by_caller;
           if (ref($allnums{$udom}) eq 'HASH') {
               foreach my $key (keys(%{$allnums{$udom}})) {
                   $crs_by_caller{$allnums{$udom}->{$key}} = 'st./'.$udom.'/'.$key.'=1';
               }
           }
         $gcimenujs = <<"ENDCUSTOM";          $gcimenujs = <<"ENDCUSTOM";
   
 function switchpage(caller) {  function switchpage(caller) {
     if (caller == 'review') {      if (caller == 'review') {
         document.location.href = '/adm/roles?selectrole=1&st./gci/9615072b469884921gcil1=1';          document.location.href = '/adm/roles?selectrole=1&'.$crs_by_caller{'review'};
     }      }
     if (caller == 'submit') {      if (caller == 'submit') {
         document.location.href = '/adm/roles?selectrole=1&st./gci/1H96711d710194bfegcil1=1';          document.location.href = '/adm/roles?selectrole=1&'.$crs_by_caller{'submit'};
     }      }
     if (caller == 'createtest') {      if (caller == 'createtest') {
         document.location.href = '$createtesturl';          document.location.href = '$createtesturl';
Line 1878  function switchpage(caller) { Line 1939  function switchpage(caller) {
         document.location.href = '$managetesturl';          document.location.href = '$managetesturl';
     }      }
     if (caller == 'tutorial') {      if (caller == 'tutorial') {
         document.location.href = '/adm/roles?selectrole=1&st./gci/5422913620b814c90gcil1=1';          document.location.href = '/adm/roles?selectrole=1&'.$crs_by_caller{'tutorial'};
     }      }
     return;      return;
 }  }
Line 1943  function go(url) { Line 2004  function go(url) {
    }     }
 }  }
   
 function gotop(url) {  
     if (url!='' && url!= null) {  
         top.location.href = url;  
     }  
 }  
   
 function gopost(url,postdata) {  function gopost(url,postdata) {
    if (url!='') {     if (url!='') {
       this.document.server.action=url;        this.document.server.action=url;
Line 2333  function adhocRole(roleitem) { Line 2388  function adhocRole(roleitem) {
             secok = 0;              secok = 0;
             var numrolesec = rolesections[selidx].length;              var numrolesec = rolesections[selidx].length;
             var msgidx = numsec[selidx] - numrolesec;              var msgidx = numsec[selidx] - numrolesec;
             secchoice = prompt("$lt{'this'} "+secpick[msgidx]+"\\n$lt{'avai'} "+roleseclist[selidx],"");              secchoice = prompt("$lt{'this'}\\n"+secpick[msgidx]+"\\n$lt{'avai'} "+roleseclist[selidx],"");
             if (secchoice == '') {              if (secchoice == '') {
                 if (msgidx > 0) {                  if (msgidx > 0) {
                     secok = 1;                      secok = 1;

Removed from v.1.309.2.16  
changed lines
  Added in v.1.309.2.23


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