--- loncom/interface/lonnavmaps.pm 2004/12/12 21:06:36 1.308 +++ loncom/interface/lonnavmaps.pm 2004/12/23 17:47:33 1.312 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Navigate Maps Handler # -# $Id: lonnavmaps.pm,v 1.308 2004/12/12 21:06:36 albertel Exp $ +# $Id: lonnavmaps.pm,v 1.312 2004/12/23 17:47:33 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -164,7 +164,7 @@ sub real_handler { $r->send_http_header; my %toplinkitems=(); - + &add_linkitem(\%toplinkitems,'blank','',"Select Action"); if ($ENV{QUERY_STRING} eq 'collapseExternal') { &Apache::lonnet::put('environment',{'remotenavmap' => 'off'}); &Apache::lonnet::appenv('environment.remotenavmap' => 'off'); @@ -1129,7 +1129,7 @@ sub render_resource { !$params->{'condensed'}) { my $displaypart=$resource->part_display($part); $partLabel = " (Part: $displaypart)"; - $link.='#'.&Apache::lonnet::escape($part); + if ($link!~/\#/) { $link.='#'.&Apache::lonnet::escape($part); } $title = ""; } @@ -1849,7 +1849,26 @@ END # Add part 0 so we display it correctly. unshift @parts, '0'; } - + + { + my ($src,$symb,$anchor,$stack); + if ($args->{'sort'}) { + my $it = $navmap->getIterator(undef, undef, undef, 1); + while ( my $res=$it->next()) { + if (ref($res) && + $res->symb() eq $curRes->symb()) { last; } + } + $stack=$it->getStack(); + } else { + $stack=$it->getStack(); + } + ($src,$symb,$anchor)=getLinkForResource($stack); + if (defined($anchor)) { $anchor='#'.$anchor; } + my $srcHasQuestion = $src =~ /\?/; + $args->{"resourceLink"} = $src. + ($srcHasQuestion?'&':'?') . + 'symb=' . &Apache::lonnet::escape($symb).$anchor; + } # Now, we've decided what parts to show. Loop through them and # show them. foreach my $part (@parts) { @@ -1860,19 +1879,6 @@ END # Set up some data about the parts that the cols might want my $filter = $it->{FILTER}; - my ($src,$symb,$anchor); - if ($args->{'sort'}) { - $src = $curRes->src(); # FIXME this is wrong for .pages - $symb = $curRes->symb(); # FIXME this is wrong for .pages - } else { - my $stack = $it->getStack(); - ($src,$symb,$anchor)=getLinkForResource($stack); - } - if (defined($anchor)) { $anchor='#'.$anchor; } - my $srcHasQuestion = $src =~ /\?/; - $args->{"resourceLink"} = $src. - ($srcHasQuestion?'&':'?') . - 'symb=' . &Apache::lonnet::escape($symb).$anchor; # Now, display each column. foreach my $col (@$cols) { @@ -1950,8 +1956,8 @@ sub add_linkitem { sub show_linkitems { my ($linkitems)=@_; - my @linkorder = ("launchnav","closenav","firsthomework","everything", - "uncompleted","changefolder","clearbubbles"); + my @linkorder = ("blank","launchnav","closenav","firsthomework", + "everything","uncompleted","changefolder","clearbubbles"); my $result .= (< @@ -4719,7 +4725,8 @@ sub browsePriv { return $self->{BROWSE_PRIV}; } - $self->{BROWSE_PRIV} = &Apache::lonnet::allowed('bre', $self->src()); + $self->{BROWSE_PRIV} = &Apache::lonnet::allowed('bre',$self->src(), + $self->symb()); } =pod