Diff for /loncom/interface/lonnavmaps.pm between versions 1.129.2.1 and 1.129.2.2

version 1.129.2.1, 2003/02/01 19:55:00 version 1.129.2.2, 2003/03/20 20:40:42
Line 403  sub real_handler { Line 403  sub real_handler {
                     # just display first                      # just display first
                     if (!$curRes->opendate("0")) {                      if (!$curRes->opendate("0")) {
                         # no parts are open, display as one part                          # no parts are open, display as one part
                         @parts = ("0");                          @parts = ();
                         $condensed = 1;                          $condensed = 1;
                     } else {                      } else {
                         # Otherwise, only display part 0 if we want to                           # Otherwise, only display part 0 if we want to 
Line 441  sub real_handler { Line 441  sub real_handler {
                             if (($statusAllSame && defined($condenseStatuses{$status})) ||                              if (($statusAllSame && defined($condenseStatuses{$status})) ||
                                 ($dueAllSame && $status == $curRes->OPEN && $statusAllSame)||                                  ($dueAllSame && $status == $curRes->OPEN && $statusAllSame)||
                                 ($openAllSame && $status == $curRes->OPEN_LATER && $statusAllSame) ){                                  ($openAllSame && $status == $curRes->OPEN_LATER && $statusAllSame) ){
                                 @parts = ($parts[1]);                                  @parts = ();
                                 $condensed = 1;                                  $condensed = 1;
                             }                              }
                         }                          }
                     }                      }
                 }                  }
   
             } else {  
                 $parts[0] = "0"; # this is to get past foreach loop below  
                  # you can consider a non-problem resource as a resource  
                   # with only one part without loss, and it simplifies the looping  
             }              }
   
             # Is it a multipart problem with a single part, now in               # Is it a multipart problem with a single part, now in 
             # @parts with "0" filtered out? If so, 'forget' it's a multi-part              # @parts with "0" filtered out? If so, 'forget' it's a multi-part
             # problem and treat it like a single-part problem.              # problem and treat it like a single-part problem.
             if ( scalar(@parts) == 1 ) {              if ( scalar(@parts) == 0 ) {
                 $multipart = 0;                  $multipart = 0;
             }              }
   
Line 466  sub real_handler { Line 462  sub real_handler {
             # status, but if it's multipart, we're lost, since we can't              # status, but if it's multipart, we're lost, since we can't
             # retreive the metadata to count the parts              # retreive the metadata to count the parts
             if ($curRes->{RESOURCE_ERROR}) {              if ($curRes->{RESOURCE_ERROR}) {
                 @parts = ("0");                  @parts = ();
             }              }
   
             # Step Two: Print the actual data.              # Step Two: Print the actual data.
   
             # For each part we intend to display...              # For each part we intend to display...
             foreach my $part (@parts) {              foreach my $part ('', @parts) {
                   if ($part eq '0') {
                       next;
                   }
   
                 my $nonLinkedText = ""; # unlinked stuff after title                  my $nonLinkedText = ""; # unlinked stuff after title
                                   
Line 507  sub real_handler { Line 506  sub real_handler {
   
                 my $icon = "<img src=\"/adm/lonIcons/html.gif\" alt=\"\" border=\"0\" />";                  my $icon = "<img src=\"/adm/lonIcons/html.gif\" alt=\"\" border=\"0\" />";
                 if ($curRes->is_problem()) {                   if ($curRes->is_problem()) { 
                     if ($part eq "0" || $condensed) {                      if ($part eq "" || $condensed) {
                         $icon = '<img src="/adm/lonIcons/problem.gif" alt="" border=\"0\" />';                           $icon = '<img src="/adm/lonIcons/problem.gif" alt="" border=\"0\" />'; 
                     } else {                      } else {
                         $icon = $indentString;                          $icon = $indentString;
Line 584  sub real_handler { Line 583  sub real_handler {
                     $displayedHereMarker = 1;                      $displayedHereMarker = 1;
                 }                  }
   
                 if ($curRes->is_problem() && $part ne "0" && !$condensed) {                   if ($curRes->is_problem() && $part ne "" && !$condensed) { 
                     $partLabel = " (Part $part)";                       $partLabel = " (Part $part)"; 
                     $title = "";                      $title = "";
                 }                  }
                 if ($multipart && $condensed) {                  if ($condensed && $curRes->countParts() > 1) {
                     $nonLinkedText .= ' (' . $curRes->countParts() . ' parts)';                      $nonLinkedText .= ' (' . $curRes->countParts() . ' parts)';
                 }                  }
   
Line 2288  sub countParts { Line 2287  sub countParts {
     my $self = shift;      my $self = shift;
           
     my $parts = $self->parts();      my $parts = $self->parts();
       my $delta = 0;
       for my $part (@$parts) {
           if ($part eq '0') { $delta--; }
       }
   
     if ($self->{RESOURCE_ERROR}) {      if ($self->{RESOURCE_ERROR}) {
         return 0;          return 0;
     }      }
   
     if (scalar(@{$parts}) < 2) { return 1;}      return scalar(@{$parts}) + $delta;
   
     return scalar(@{$parts}) - 1;  
 }  }
   
 # Private function: Extracts the parts information and saves it  # Private function: Extracts the parts information and saves it
Line 2309  sub extractParts { Line 2310  sub extractParts {
   
     # Retrieve part count, if this is a problem      # Retrieve part count, if this is a problem
     if ($self->is_problem()) {      if ($self->is_problem()) {
         my $metadata = &Apache::lonnet::metadata($self->src(), 'allpossiblekeys');          my $metadata = &Apache::lonnet::metadata($self->src(), 'packages');
         if (!$metadata) {          if (!$metadata) {
             $self->{RESOURCE_ERROR} = 1;              $self->{RESOURCE_ERROR} = 1;
             $self->{PARTS} = [];              $self->{PARTS} = [];
Line 2317  sub extractParts { Line 2318  sub extractParts {
         }          }
                   
         foreach (split(/\,/,$metadata)) {          foreach (split(/\,/,$metadata)) {
             if ($_ =~ /^parameter\_(.*)\_opendate$/) {              if ($_ =~ /^part_(.*)$/) {
                 push @{$self->{PARTS}}, $1;                  push @{$self->{PARTS}}, $1;
             }              }
         }          }

Removed from v.1.129.2.1  
changed lines
  Added in v.1.129.2.2


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