Diff for /loncom/interface/lonnavdisplay.pm between versions 1.44 and 1.48

version 1.44, 2024/10/14 01:34:57 version 1.48, 2025/05/27 23:35:38
Line 40  use Apache::lonlocal; Line 40  use Apache::lonlocal;
 use Apache::londocs();  use Apache::londocs();
 use Apache::lonuserstate;  use Apache::lonuserstate;
 use LONCAPA::ltiutils;  use LONCAPA::ltiutils;
   use LONCAPA;
   
 sub handler {  sub handler {
     my $r = shift;      my $r = shift;
Line 129  ENDCLOSE Line 130  ENDCLOSE
     my $course_type = &Apache::loncommon::course_type();      my $course_type = &Apache::loncommon::course_type();
     if (($course_type eq 'Placement') && (!$env{'request.role.adv'})) {       if (($course_type eq 'Placement') && (!$env{'request.role.adv'})) { 
         my $furl = &Apache::lonpageflip::first_accessible_resource();          my $furl = &Apache::lonpageflip::first_accessible_resource();
         if ($result eq 'update') {          if (($result eq 'main') || ($result eq 'both')) {
             &Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state);              &Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state);
             $r->print($closure.&Apache::loncommon::end_page());              $r->print($closure.&Apache::loncommon::end_page());
             return OK;              return OK;
Line 160  ENDCLOSE Line 161  ENDCLOSE
     my $navmap = Apache::lonnavmaps::navmap->new();      my $navmap = Apache::lonnavmaps::navmap->new();
   
     if (!defined($navmap)) {      if (!defined($navmap)) {
         if ($result eq 'update') {          if (($result eq 'main') || ($result eq 'both')) {
             &Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state);              &Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state);
             $r->print($closure.&Apache::loncommon::end_page());              $r->print($closure.&Apache::loncommon::end_page());
         }          }
Line 170  ENDCLOSE Line 171  ENDCLOSE
         return HTTP_NOT_ACCEPTABLE;          return HTTP_NOT_ACCEPTABLE;
     }      }
   
     if ($result eq 'update') {      if (($result eq 'main') || ($result eq 'both')) {
         $r->rflush();          $r->rflush();
         &Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state);          &Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state);
         $r->print($closure);          $r->print($closure);
Line 183  ENDCLOSE Line 184  ENDCLOSE
     }      }
   
     &startContentScreen($r,'navmaps',$course_type);      &startContentScreen($r,'navmaps',$course_type);
     unless ($result eq 'update') {      unless (($result eq 'main') || ($result eq 'both')) {
         $r->rflush();          $r->rflush();
     }      }
   
Line 348  ENDCLOSE Line 349  ENDCLOSE
     # If no resources were printed, print a reassuring message so the      # If no resources were printed, print a reassuring message so the
     # user knows there was no error.      # user knows there was no error.
     if ($renderArgs->{'counter'} == 0) {      if ($renderArgs->{'counter'} == 0) {
           my $noresmsg;
         if ($showOnlyHomework) {          if ($showOnlyHomework) {
             $r->print("<p><span class=\"LC_info\">".&mt("All homework is currently completed.")."</span></p>");              $noresmsg = &mt('All homework is currently completed.');
         } else { # both jumpToFirstHomework and normal use the same: course must be empty          } else { # both jumpToFirstHomework and normal use the same: course must be empty
             $r->print("<p><span class=\"LC_info\">".&mt("This course is empty.")."</span></p>");              $noresmsg = &mt('This course is empty.');
               if (($renderArgs->{'deeplinknolist'}) &&
                   ($env{'request.course.deeponlyprot'})) {
                   my ($linkprot,$currmatch,$othermatches,@names);
                   if ($env{'request.linkprot'}) {
                       ($linkprot) = split(/:/,$env{'request.linkprot'});
                   }
                   foreach my $launcher (split(/&/,$env{'request.course.deeponlyprot'})) {
                       my ($name,$itemnums) = split(/:/,$launcher);
                       my @nums = split(/,/,$itemnums);
                       if (($linkprot) &&
                           (grep(/^\Q$linkprot\E$/,@nums))) {
                           $currmatch = &LONCAPA::unescape($name);
                           if (@nums > 1) {
                               $othermatches = 1;
                           }
                       } else {
                           push(@names,&LONCAPA::unescape($name));
                       }
                   }
                   my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
                   my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
                   my $has_supp = &Apache::lonnet::has_unhidden_suppfiles($cnum,$cdom);
                   if ($linkprot) {
                       if ($currmatch) {
                           if ($has_supp) {
                               $noresmsg = &mt('No main content available when accessed using the link you followed from [_1].',
                                               $currmatch);
                           } else {
                               $noresmsg = &mt('No content available when accessed using the link you followed from [_1].',
                                               $currmatch);
                           }
                           if ($othermatches) {
                               $noresmsg = '<br />';
                               if ($has_supp) {
                                   $noresmsg .= &mt('Main content may be available by following a different link from [_1].',
                                                    $currmatch);
                               } else {
                                   $noresmsg .= &mt('Content may be available by following a different link from [_1].',
                                                    $currmatch); 
                               }
                           }
                       } else {
                           if ($has_supp) {
                               $noresmsg = &mt('No main content available using the link you followed.');
                           } else {
                               $noresmsg = &mt('No content available using the link you followed.');
                           }
                       }
                   } elsif (@names > 0) {
                       if ($has_supp) {
                           $noresmsg = &mt('No main content available from direct login to this course.');
                       } else {
                           $noresmsg = &mt('No content available from direct login to this course.');
                       }
                   }
                   if (@names == 1) {
                       $noresmsg .= '<br />';
                       if ($has_supp) {
                           $noresmsg .= &mt('Main content is likely available by following links from [_1]',
                                            $names[0]);
                       } else {
                           $noresmsg .= &mt('Content is likely available by following links from [_1]',
                                            $names[0]);
                       }
                   } elsif (@names > 1) {
                       $noresmsg .= '<br />';
                       if ($has_supp) {
                           $noresmsg .= &mt('Main content is likely available by following links from the following: [_1]',
                                            join(', ',@names));
                       } else {
                           $noresmsg .= &mt('Content is likely available by following links from the following: [_1]',
                                            join(', ',@names));
                       }
                   }
               }
         }          }
           $r->print('<p><span class="LC_info">'.$noresmsg.'</span></p>');
     }      }
     &endContentScreen($r);      &endContentScreen($r);
     $r->print(&Apache::loncommon::end_page());      $r->print(&Apache::loncommon::end_page());
Line 384  sub startpage { Line 462  sub startpage {
 sub startContentScreen {  sub startContentScreen {
     my ($r,$mode,$course_type)=@_;      my ($r,$mode,$course_type)=@_;
   
     $r->print("\n".'<ul class="LC_TabContentBigger" id="mainnav">'."\n");      $r->print("\n".'<div class="LC_landmark" role="main">'.
                 '<ul class="LC_TabContentBigger" id="mainnav">'."\n");
     $r->print('<li'.(($mode eq 'navmaps')?' class="active"':'').'><a href="/adm/navmaps"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'.&mt('Main Content').'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b></a></li>'."\n");      $r->print('<li'.(($mode eq 'navmaps')?' class="active"':'').'><a href="/adm/navmaps"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'.&mt('Main Content').'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b></a></li>'."\n");
     my $supptab;      my $supptab;
     if ($env{'request.role.adv'}) {      if ($env{'request.role.adv'}) {
Line 407  sub startContentScreen { Line 486  sub startContentScreen {
   
 sub endContentScreen {  sub endContentScreen {
    my ($r)=@_;     my ($r)=@_;
    $r->print('</div></div></div>');     $r->print('</div></div></div></div>');
 }  }
   
 1;  1;

Removed from v.1.44  
changed lines
  Added in v.1.48


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