--- loncom/interface/lonnavmaps.pm 2003/04/22 18:38:47 1.179 +++ loncom/interface/lonnavmaps.pm 2003/04/25 18:54:36 1.183 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Navigate Maps Handler # -# $Id: lonnavmaps.pm,v 1.179 2003/04/22 18:38:47 bowersj2 Exp $ +# $Id: lonnavmaps.pm,v 1.183 2003/04/25 18:54:36 bowersj2 Exp $ # # Copyright Michigan State University Board of Trustees # @@ -271,7 +271,9 @@ sub getDescription { my $part = shift; my $status = $res->status($part); - if ($status == $res->NETWORK_FAILURE) { return ""; } + if ($status == $res->NETWORK_FAILURE) { + return "Having technical difficulties; please check status later"; + } if ($status == $res->NOTHING_SET) { return "Not currently assigned."; } @@ -1226,8 +1228,6 @@ sub render { # Decide what parts to show. if ($curRes->is_problem() && $showParts) { - $curRes->parts(); - $curRes->parts(); @parts = @{$curRes->parts()}; $args->{'multipart'} = scalar(@parts) > 1; @@ -1474,15 +1474,13 @@ sub init { unless ((time-$courserdatas{$cid.'.last_cache'})<240) { my $reply=&Apache::lonnet::reply('dump:'.$cdom.':'.$cnum. ':resourcedata',$chome); - if ($reply!~/^error\:/) { + # Check for network failure + if ( $reply =~ /no.such.host/i || $reply =~ /con_lost/i) { + $self->{NETWORK_FAILURE} = 1; + } elsif ($reply!~/^error\:/) { $courserdatas{$cid}=$reply; $courserdatas{$cid.'.last_cache'}=time; } - # check to see if network failed - elsif ( $reply=~/no.such.host/i || $reply=~/con.*lost/i ) - { - $self->{NETWORK_FAILURE} = 1; - } } foreach (split(/\&/,$courserdatas{$cid})) { my ($name,$value)=split(/\=/,$_); @@ -3080,6 +3078,8 @@ sub extractParts { $self->{PARTS} = []; + my %parts; + # Retrieve part count, if this is a problem if ($self->is_problem()) { my $metadata = &Apache::lonnet::metadata($self->src(), 'packages'); @@ -3091,15 +3091,21 @@ sub extractParts { foreach (split(/\,/,$metadata)) { if ($_ =~ /^part_(.*)$/) { my $part = $1; + # This floods the logs if it blows up + if (defined($parts{$part})) { + Apache::lonnet::logthis("$part multiply defined in metadata for " . $self->symb()); + } + # check to see if part is turned off. - if (! Apache::loncommon::check_if_partid_hidden($part, $self->symb())) { - push @{$self->{PARTS}}, $1; + + if (!Apache::loncommon::check_if_partid_hidden($part, $self->symb())) { + $parts{$part} = 1; } } } - my @sortedParts = sort @{$self->{PARTS}}; + my @sortedParts = sort keys %parts; $self->{PARTS} = \@sortedParts; }