[LON-CAPA-cvs] cvs: loncom /interface lonnavmaps.pm
bowersj2
lon-capa-cvs@mail.lon-capa.org
Mon, 18 Nov 2002 20:59:21 -0000
bowersj2 Mon Nov 18 15:59:21 2002 EDT
Modified files:
/loncom/interface lonnavmaps.pm
Log:
Fixes some obscure map indentation bugs.
Currently, some wierd *** is happening when sequences are included multiple
times, and I'm not certain it's even possible to fix them theoretically,
as long as sequences aren't discrete entities, even when they come
from the same source (i.e., different in the bighash).
Index: loncom/interface/lonnavmaps.pm
diff -u loncom/interface/lonnavmaps.pm:1.112 loncom/interface/lonnavmaps.pm:1.113
--- loncom/interface/lonnavmaps.pm:1.112 Sat Nov 16 17:45:22 2002
+++ loncom/interface/lonnavmaps.pm Mon Nov 18 15:59:21 2002
@@ -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 @@
# 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 @@
$condition);
$mapIterator->next();
$curRes = $mapIterator->next();
- my $deltadepth = 0;
$depth = 1;
my @backgroundColors = ("#FFFFFF", "#F6F6F6");
@@ -302,15 +302,6 @@
}
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 @@
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 @@
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 @@
# 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 @@
if ($isNewBranch) {
$newBranchText = "<img src=\"/adm/lonIcons/branch.gif\" border=\"0\">";
$isNewBranch = 0;
- $deltalevel = 1; # reserves space for the branch icon
}
# links to open and close the folders
@@ -524,7 +520,7 @@
}
# 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 @@
'<font size="-1">Host down</font>'));
}
+ $r->print("</td>\n");
+
# SECOND COL: Is there text, feedback, errors??
my $discussionHTML = ""; my $feedbackHTML = "";
@@ -613,6 +611,9 @@
}
$r->print(" </td></tr>\n");
+
+ if (!($counter % 20)) { $r->rflush(); }
+ if ($counter == 2) { $r->rflush(); }
}
}
$curRes = $mapIterator->next();