--- loncom/interface/lonnavmaps.pm 2002/11/15 18:10:22 1.108 +++ loncom/interface/lonnavmaps.pm 2002/11/16 22:45:22 1.112 @@ -2,7 +2,7 @@ # The LearningOnline Network with CAPA # Navigate Maps Handler # -# $Id: lonnavmaps.pm,v 1.108 2002/11/15 18:10:22 bowersj2 Exp $ +# $Id: lonnavmaps.pm,v 1.112 2002/11/16 22:45:22 bowersj2 Exp $ # # Copyright Michigan State University Board of Trustees # @@ -83,8 +83,11 @@ sub handler { return HTTP_NOT_ACCEPTABLE; } + $r->print("\n"); + $r->print("Navigate Course Contents"); + # Header - $r->print(&Apache::loncommon::bodytag('Navigate Course Map','', + $r->print(&Apache::loncommon::bodytag('Navigate Course Contents','', '')); $r->print(''); @@ -113,10 +116,22 @@ sub handler { $condition = 1; } + my $currenturl = $ENV{'form.postdata'}; + $currenturl=~s/^http\:\/\///; + $currenturl=~s/^[^\/]+//; + + # alreadyHere allows us to only open the maps necessary to view + # the current location once, while at the same time remembering + # the current location. Without that check, the user would never + # be able to close those maps; the user would close it, and the + # currenturl scan would re-open it. + my $queryAdd = "postdata=" . &Apache::lonnet::escape($currenturl) . + "&alreadyHere=1"; + if ($condition) { - $r->print('Close All Folders'); + $r->print("Close All Folders"); } else { - $r->print('Open All Folders'); + $r->print("Open All Folders"); } $r->print('
 '); @@ -143,10 +158,10 @@ sub handler { my %colormap = ( $res->NETWORK_FAILURE => '', $res->CORRECT => '', - $res->EXCUSED => '#BBBBFF', + $res->EXCUSED => '#3333FF', $res->PAST_DUE_ANSWER_LATER => '', $res->PAST_DUE_NO_ANSWER => '', - $res->ANSWER_OPEN => '#CCFFCC', + $res->ANSWER_OPEN => '#006600', $res->OPEN_LATER => '', $res->TRIES_LEFT => '', $res->INCORRECT => '', @@ -193,18 +208,6 @@ sub handler { my $topResource = $navmap->getById("0.0"); my $inlineTopLevelMaps = $topResource->src() =~ m|^/uploaded/.*default\.sequence$|; - my $currenturl = $ENV{'form.postdata'}; - $currenturl=~s/^http\:\/\///; - $currenturl=~s/^[^\/]+//; - - # alreadyHere allows us to only open the maps necessary to view - # the current location once, while at the same time remembering - # the current location. Without that check, the user would never - # be able to close those maps; the user would close it, and the - # currenturl scan would re-open it. - my $queryAdd = "postdata=" . &Apache::lonnet::escape($currenturl) . - "&alreadyHere=1"; - # Begin the HTML table # four cols: resource + indent, chat+feedback, icon, text string $r->print('' ."\n"); @@ -526,7 +529,6 @@ sub handler { } $r->print(" ${newBranchText}${linkopen}$icon${linkclose}\n"); - #$r->print($curRes->awarded($part)); my $curMarkerBegin = ""; my $curMarkerEnd = ""; @@ -1510,8 +1512,11 @@ sub next { # BC branch and gets to C, it will see F as the only next resource, but it's # one level lower. Thus, this is the end of the branch, since there are no # more resources added to this level or above. + # We don't do this if the examined resource is the finish resource, + # because the condition given above is true, but the "END_MAP" will + # take care of things and we should already be at depth 0. my $isEndOfBranch = $maxDepthAdded < $self->{CURRENT_DEPTH}; - if ($isEndOfBranch) { # **9** + if ($isEndOfBranch && $here != $self->{FINISH_RESOURCE}) { # **9** push @{$self->{STACK}->[$self->{CURRENT_DEPTH}]}, END_BRANCH(); } @@ -2040,8 +2045,8 @@ sub type { (my $self, my $part) = @_; return $self->parmval("type", $part); } -sub weight { - (my $self, my $part) = @_; +sub weight { + my $self = shift; my $part = shift; return $self->parmval("weight", $part); }