--- loncom/interface/lonnavmaps.pm 2002/11/16 22:45:22 1.112 +++ loncom/interface/lonnavmaps.pm 2002/11/18 20:59:21 1.113 @@ -2,7 +2,7 @@ # The LearningOnline Network with CAPA # Navigate Maps Handler # -# $Id: lonnavmaps.pm,v 1.112 2002/11/16 22:45:22 bowersj2 Exp $ +# $Id: lonnavmaps.pm,v 1.113 2002/11/18 20:59:21 bowersj2 Exp $ # # Copyright Michigan State University Board of Trustees # @@ -207,6 +207,7 @@ sub handler { # maps in their own folders, in favor of "inlining" them. my $topResource = $navmap->getById("0.0"); my $inlineTopLevelMaps = $topResource->src() =~ m|^/uploaded/.*default\.sequence$|; + my $inlinedelta = $inlineTopLevelMaps? -1 : 0; # Begin the HTML table # four cols: resource + indent, chat+feedback, icon, text string @@ -288,7 +289,6 @@ sub handler { $condition); $mapIterator->next(); $curRes = $mapIterator->next(); - my $deltadepth = 0; $depth = 1; my @backgroundColors = ("#FFFFFF", "#F6F6F6"); @@ -302,15 +302,6 @@ sub handler { } while ($depth > 0) { - # If this is an inlined map, cancel the shift to the right, - # which has the effect of making the map look inlined - if ($inlineTopLevelMaps && scalar(@{$mapIterator->getStack()}) == 1 && - ref($curRes) && $curRes->is_map()) { - $deltadepth = -1; - $curRes = $mapIterator->next(); - next; - } - if ($curRes == $mapIterator->BEGIN_MAP() || $curRes == $mapIterator->BEGIN_BRANCH()) { $indentLevel++; @@ -327,9 +318,6 @@ sub handler { if (ref($curRes)) { $counter++; } - if ($depth == 1) { $deltadepth = 0; } # we're done shifting, because we're - # out of the inlined map - # Is this resource being ignored because it is in a random-out # map and it was not selected? if (ref($curRes) && !advancedUser() && $curRes->randomout()) { @@ -339,6 +327,16 @@ sub handler { if (ref($curRes) && $curRes->src()) { + my $deltalevel = $isNewBranch? 1 : 0; # reserves space for branch icon + + if ($indentLevel - $deltalevel + $inlinedelta < 0) { + # If this would be at a negative depth (top-level maps in + # new-style courses, we want to suppress their title display) + # then ignore it. + $curRes = $mapIterator->next(); + next; + } + # Step one: Decide which parts to show my @parts = @{$curRes->parts()}; my $multipart = scalar(@parts) > 1; @@ -424,7 +422,6 @@ sub handler { # For each part we intend to display... foreach my $part (@parts) { - my $deltalevel = 0; # for inserting the branch icon my $nonLinkedText = ""; # unlinked stuff after title my $stack = $mapIterator->getStack(); @@ -446,7 +443,6 @@ sub handler { if ($isNewBranch) { $newBranchText = ""; $isNewBranch = 0; - $deltalevel = 1; # reserves space for the branch icon } # links to open and close the folders @@ -524,7 +520,7 @@ sub handler { } # print indentation - for (my $i = 0; $i < $indentLevel - $deltalevel + $deltadepth; $i++) { + for (my $i = 0; $i < $indentLevel - $deltalevel + $inlinedelta; $i++) { $r->print($indentString); } @@ -555,6 +551,8 @@ sub handler { 'Host down')); } + $r->print("\n"); + # SECOND COL: Is there text, feedback, errors?? my $discussionHTML = ""; my $feedbackHTML = ""; @@ -613,6 +611,9 @@ sub handler { } $r->print(" \n"); + + if (!($counter % 20)) { $r->rflush(); } + if ($counter == 2) { $r->rflush(); } } } $curRes = $mapIterator->next();