Diff for /loncom/interface/lonnavmaps.pm between versions 1.563 and 1.569

version 1.563, 2023/04/04 23:15:48 version 1.569, 2025/02/03 00:08:31
Line 1120  sub render_resource { Line 1120  sub render_resource {
     }      }
   
     # Decide what to display      # Decide what to display
     $result .= "$newBranchText$linkopen$icon$linkclose";      $result .= "$newBranchText$linkopen$icon";
           
     my $curMarkerBegin = '';      my $curMarkerBegin = '';
     my $curMarkerEnd = '';      my $curMarkerEnd = '';
Line 1160  sub render_resource { Line 1160  sub render_resource {
             $linkopen = "<a href=\"$link\">";              $linkopen = "<a href=\"$link\">";
         }          }
     }      }
     $result .= "$curMarkerBegin$linkopen$title$partLabel$linkclose$curMarkerEnd$editmapLink$nonLinkedText</td>";      $result .= "$curMarkerBegin$title$partLabel$curMarkerEnd$linkclose$editmapLink$nonLinkedText</td>";
   
     return $result;      return $result;
 }  }
Line 1594  sub render { Line 1594  sub render {
     my $printKey = $args->{'printKey'};      my $printKey = $args->{'printKey'};
     my $printCloseAll = $args->{'printCloseAll'};      my $printCloseAll = $args->{'printCloseAll'};
     if (!defined($printCloseAll)) { $printCloseAll = 1; }      if (!defined($printCloseAll)) { $printCloseAll = 1; }
      
     # Print key?      # Print key?
     if ($printKey) {      if ($printKey) {
         $result .= '<table border="0" cellpadding="2" cellspacing="0">';          my $location = &Apache::loncommon::lonhttpdurl("/adm/lonMisc");
         $result.='<tr><td align="right" valign="bottom">Key:&nbsp;&nbsp;</td>';          $result .= '<table border="0" cellpadding="2" cellspacing="0">'.
  my $location=&Apache::loncommon::lonhttpdurl("/adm/lonMisc");                     '<tr><td align="right" valign="bottom">Key:&nbsp;&nbsp;</td>'.
         if ($navmap->{LAST_CHECK}) {                     '<td align="center" valign="bottom">&nbsp;&nbsp;'.
             $result .=                      '<img src="'.$location.'/chat.gif" alt="" /> '.&mt('Unread Discussion').
                 '<img src="'.$location.'/chat.gif" alt="" /> '.&mt('New discussion since').' '.                     '</td><td align="center" valign="bottom">'.
                 strftime("%A, %b %e at %I:%M %P", localtime($navmap->{LAST_CHECK})).                     '&nbsp;&nbsp;<img src="'.$location.'/feedback.gif" alt="" /> '.
                 '</td><td align="center" valign="bottom">&nbsp;&nbsp;'.                     &mt('New message (click to open)').
                 '<img src="'.$location.'/feedback.gif" alt="" /> '.&mt('New message (click to open)').'<p>'.                     '</td></tr></table>'."\n";
                 '</td>';   
         } else {  
             $result .= '<td align="center" valign="bottom">&nbsp;&nbsp;'.  
                 '<img src="'.$location.'/chat.gif" alt="" /> '.&mt('Discussions').'</td><td align="center" valign="bottom">'.  
                 '&nbsp;&nbsp;<img src="'.$location.'/feedback.gif" alt="" /> '.&mt('New message (click to open)').  
                 '</td>';   
         }  
   
         $result .= '</tr></table>';  
     }      }
   
     if ($printCloseAll && !$args->{'resource_no_folder_link'}) {      if ($printCloseAll && !$args->{'resource_no_folder_link'}) {
Line 1641  sub render { Line 1632  sub render {
   
     # Check for any unread discussions in all resources.      # Check for any unread discussions in all resources.
     if (($args->{'caller'} eq 'navmapsdisplay') && (!$args->{'notools'})) {      if (($args->{'caller'} eq 'navmapsdisplay') && (!$args->{'notools'})) {
           my $markread = 'Mark all posts read';
  &add_linkitem($args->{'linkitems'},'clearbubbles',   &add_linkitem($args->{'linkitems'},'clearbubbles',
       'document.clearbubbles.submit()',        'document.clearbubbles.submit()',
       'Mark all posts read');        $markread);
  my $time=time;   my $time=time;
           my $submit = &mt($markread);
         my $querystr = &HTML::Entities::encode($ENV{'QUERY_STRING'},'<>&"');          my $querystr = &HTML::Entities::encode($ENV{'QUERY_STRING'},'<>&"');
  $result .= (<<END);   $result .= (<<END);
     <form name="clearbubbles" method="post" action="/adm/feedback">      <form name="clearbubbles" method="post" action="/adm/feedback" aria-hidden="true">
  <input type="hidden" name="navurl" value="$querystr" />   <input type="hidden" name="navurl" value="$querystr" />
  <input type="hidden" name="navtime" value="$time" />   <input type="hidden" name="navtime" value="$time" />
 END  END
         if ($args->{'sort'} eq 'discussion') {           if ($args->{'sort'} eq 'discussion') {
     my $totdisc = 0;      my $totdisc = 0;
     my $haveDisc = '';      my $haveDisc = '';
     my @allres=$navmap->retrieveResources();      my @allres=$navmap->retrieveResources();
Line 1665  END Line 1658  END
  $haveDisc =~ s/:$//;   $haveDisc =~ s/:$//;
  $result .= (<<END);   $result .= (<<END);
  <input type="hidden" name="navmaps" value="$haveDisc" />   <input type="hidden" name="navmaps" value="$haveDisc" />
     </form>  
 END  END
             }              }
  }   }
  $result.='</form>';   $result .= <<END;
           <input type="submit" value="$submit" class="LC_visually_hidden" tabindex="-1" disabled="disabled" />
       </form>
   END
     }      }
     if (($args->{'caller'} eq 'navmapsdisplay') && ($env{'request.course.id'})) {      if (($args->{'caller'} eq 'navmapsdisplay') && ($env{'request.course.id'})) {
         my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};          my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
Line 2286  sub new { Line 2281  sub new {
   
     $self->{USERNAME} = shift || $env{'user.name'};      $self->{USERNAME} = shift || $env{'user.name'};
     $self->{DOMAIN}   = shift || $env{'user.domain'};      $self->{DOMAIN}   = shift || $env{'user.domain'};
       $self->{SECTION}  = shift;
     $self->{CODE}     = shift;      $self->{CODE}     = shift;
     $self->{NOHIDE} = shift;      $self->{NOHIDE}   = shift;
   
   
       if (($self->{SECTION} eq '') && ($env{'request.course.sec'} ne '')) {
           if (($self->{USERNAME} eq $env{'user.name'}) &&
               ($self->{USERNAME} eq $env{'user.domain'})) {
               $self->{SECTION} = $env{'request.course.sec'};
           }
       }
   
     # Resource cache stores navmap resources as we reference them. We generate      # Resource cache stores navmap resources as we reference them. We generate
     # them on-demand so we don't pay for creating resources unless we use them.      # them on-demand so we don't pay for creating resources unless we use them.
Line 2331  sub new { Line 2333  sub new {
  $self->{PARM_HASH} = \%parmhash;   $self->{PARM_HASH} = \%parmhash;
  $self->{PARM_CACHE} = {};   $self->{PARM_CACHE} = {};
     } else {      } else {
  $self->change_user($self->{USERNAME}, $self->{DOMAIN},  $self->{CODE}, $self->{NOHIDE});   $self->change_user($self->{USERNAME}, $self->{DOMAIN}, $self->{SECTION}, $self->{CODE}, $self->{NOHIDE});
     }      }
   
     return $self;      return $self;
Line 2342  sub new { Line 2344  sub new {
 # username/domain associated with a navmap (e.g. to navigate for someone  # username/domain associated with a navmap (e.g. to navigate for someone
 # else besides the current user...if sufficiently privileged.  # else besides the current user...if sufficiently privileged.
 # Parameters:  # Parameters:
 #    user  - New user.  #    user    - New user.
 #    domain- Domain the user belongs to.  #    domain  - Domain to which the user belongs.
 #    code  - Anonymous CODE in use.  #    section - Section to which the user belongs.
   #    code    - Anonymous CODE in use.
 # Implicit inputs:  # Implicit inputs:
 #     #   
 sub change_user {  sub change_user {
     my $self = shift;      my $self = shift;
     $self->{USERNAME} = shift;      $self->{USERNAME} = shift;
     $self->{DOMAIN}   = shift;      $self->{DOMAIN}   = shift;
       $self->{SECTION}  = shift;
     $self->{CODE}     = shift;      $self->{CODE}     = shift;
     $self->{NOHIDE}   = shift;      $self->{NOHIDE}   = shift;
   
Line 2857  sub parmval_real { Line 2861  sub parmval_real {
     $self->generate_course_user_opt();      $self->generate_course_user_opt();
   
     my $cid=$env{'request.course.id'};      my $cid=$env{'request.course.id'};
     my $csec=$env{'request.course.sec'};      my $csec=$self->{SECTION};
     my $cgroup='';      my $cgroup='';
     my @cgrps=split(/:/,$env{'request.course.groups'});      my @cgrps=split(/:/,$env{'request.course.groups'});
     if (@cgrps > 0) {      if (@cgrps > 0) {
Line 3046  sub parmval_real { Line 3050  sub parmval_real {
 }  }
   
 sub recurseup_maps {  sub recurseup_maps {
     my ($self,$mapname) = @_;      my ($self,$mapname,$getsymb) = @_;
     my @recurseup;      my @recurseup;
     if ($mapname) {      if ($mapname) {
         my $res = $self->getResourceByUrl($mapname);          my $res = $self->getResourceByUrl($mapname);
Line 3054  sub recurseup_maps { Line 3058  sub recurseup_maps {
             my @pcs = split(/,/,$res->map_hierarchy());              my @pcs = split(/,/,$res->map_hierarchy());
             shift(@pcs);              shift(@pcs);
             if (@pcs) {              if (@pcs) {
                 @recurseup = map { &Apache::lonnet::declutter($self->getByMapPc($_)->src()); } reverse(@pcs);                  if ($getsymb) {
                       @recurseup = map { &Apache::lonnet::declutter($self->getByMapPc($_)->symb()); } reverse(@pcs);
                   } else {
                       @recurseup = map { &Apache::lonnet::declutter($self->getByMapPc($_)->src()); } reverse(@pcs);
                   }
             }              }
         }          }
     }      }
Line 3182  sub get_mapparam { Line 3190  sub get_mapparam {
     # Get the course id and section if there is one.      # Get the course id and section if there is one.
   
     my $cid=$env{'request.course.id'};      my $cid=$env{'request.course.id'};
     my $csec=$env{'request.course.sec'};      my $csec=$self->{SECTION};
     my $cgroup='';      my $cgroup='';
     my @cgrps=split(/:/,$env{'request.course.groups'});      my @cgrps=split(/:/,$env{'request.course.groups'});
     if (@cgrps > 0) {      if (@cgrps > 0) {
Line 3383  sub getcourseparam { Line 3391  sub getcourseparam {
   
     my $uname = $self->{USERNAME};      my $uname = $self->{USERNAME};
     my $udom  = $self->{DOMAIN};      my $udom  = $self->{DOMAIN};
       my $csec  = $self->{SECTION};
           
     # Course, section, group ids come from the env:      # Course and group ids come from the env:
   
     my $cid   = $env{'request.course.id'};      my $cid   = $env{'request.course.id'};
     my $csec  = $env{'request.course.sec'};  
     my $cgroup = ''; # Assume no group      my $cgroup = ''; # Assume no group
   
     my @cgroups = split(/:/, $env{'request.course.groups'});      my @cgroups = split(/:/, $env{'request.course.groups'});
Line 5245  sub weight { Line 5253  sub weight {
     my $weight = &Apache::lonnet::EXT('resource.'.$part.'.weight',      my $weight = &Apache::lonnet::EXT('resource.'.$part.'.weight',
                                 $self->{SYMB}, $self->{DOMAIN},                                  $self->{SYMB}, $self->{DOMAIN},
                                 $self->{USERNAME},                                  $self->{USERNAME},
                                 $env{'request.course.sec'});                                  $self->{SECTION});  
     return $weight;      return $weight;
 }  }
 sub part_display {  sub part_display {

Removed from v.1.563  
changed lines
  Added in v.1.569


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