--- loncom/interface/lonnavmaps.pm 2002/12/02 14:20:24 1.120
+++ loncom/interface/lonnavmaps.pm 2003/03/20 20:40:42 1.129.2.2
@@ -2,7 +2,7 @@
# The LearningOnline Network with CAPA
# Navigate Maps Handler
#
-# $Id: lonnavmaps.pm,v 1.120 2002/12/02 14:20:24 bowersj2 Exp $
+# $Id: lonnavmaps.pm,v 1.129.2.2 2003/03/20 20:40:42 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -96,6 +96,11 @@ sub real_handler {
''));
$r->print('');
+ $r->rflush();
+
+ # Now that we've displayed some stuff to the user, init the navmap
+ $navmap->init();
+
$r->print('
');
my $date=localtime;
$r->print('Key: | ');
@@ -178,9 +183,6 @@ sub real_handler {
$r->print('
');
$r->rflush();
- # Now that we've displayed some stuff to the user, init the navmap
- $navmap->init();
-
# Check that it's defined
if (!($navmap->courseMapDefined())) {
$r->print('Coursemap undefined.' .
@@ -274,8 +276,6 @@ sub real_handler {
my $foundJump = ($jumpType == $NOTHING); # look for jump point if we have one
my $looped = 0;
- $r->print($hereType);
-
# We only need to do this if we need to open the maps to show the
# current position. This will change the counter so we can't count
# for the jump marker with this loop.
@@ -403,7 +403,7 @@ sub real_handler {
# just display first
if (!$curRes->opendate("0")) {
# no parts are open, display as one part
- @parts = ("0");
+ @parts = ();
$condensed = 1;
} else {
# Otherwise, only display part 0 if we want to
@@ -441,23 +441,19 @@ sub real_handler {
if (($statusAllSame && defined($condenseStatuses{$status})) ||
($dueAllSame && $status == $curRes->OPEN && $statusAllSame)||
($openAllSame && $status == $curRes->OPEN_LATER && $statusAllSame) ){
- @parts = ($parts[1]);
+ @parts = ();
$condensed = 1;
}
}
}
}
- } else {
- $parts[0] = "0"; # this is to get past foreach loop below
- # you can consider a non-problem resource as a resource
- # with only one part without loss, and it simplifies the looping
}
# Is it a multipart problem with a single part, now in
# @parts with "0" filtered out? If so, 'forget' it's a multi-part
# problem and treat it like a single-part problem.
- if ( scalar(@parts) == 1 ) {
+ if ( scalar(@parts) == 0 ) {
$multipart = 0;
}
@@ -466,13 +462,16 @@ sub real_handler {
# status, but if it's multipart, we're lost, since we can't
# retreive the metadata to count the parts
if ($curRes->{RESOURCE_ERROR}) {
- @parts = ("0");
+ @parts = ();
}
# Step Two: Print the actual data.
# For each part we intend to display...
- foreach my $part (@parts) {
+ foreach my $part ('', @parts) {
+ if ($part eq '0') {
+ next;
+ }
my $nonLinkedText = ""; # unlinked stuff after title
@@ -488,6 +487,10 @@ sub real_handler {
'"';
my $title = $curRes->compTitle();
+ if ($src=~/^\/uploaded\//) {
+ $nonLinkedText=$title;
+ $title='';
+ }
my $partLabel = "";
my $newBranchText = "";
@@ -503,7 +506,7 @@ sub real_handler {
my $icon = "
";
if ($curRes->is_problem()) {
- if ($part eq "0" || $condensed) {
+ if ($part eq "" || $condensed) {
$icon = '
';
} else {
$icon = $indentString;
@@ -580,11 +583,11 @@ sub real_handler {
$displayedHereMarker = 1;
}
- if ($curRes->is_problem() && $part ne "0" && !$condensed) {
+ if ($curRes->is_problem() && $part ne "" && !$condensed) {
$partLabel = " (Part $part)";
$title = "";
}
- if ($multipart && $condensed) {
+ if ($condensed && $curRes->countParts() > 1) {
$nonLinkedText .= ' (' . $curRes->countParts() . ' parts)';
}
@@ -598,7 +601,7 @@ sub real_handler {
$r->print("\n");
# SECOND COL: Is there text, feedback, errors??
- my $discussionHTML = ""; my $feedbackHTML = "";
+ my $discussionHTML = ""; my $feedbackHTML = ""; my $errorHTML = "";
if ($curRes->hasDiscussion()) {
$discussionHTML = $linkopen .
@@ -618,7 +621,19 @@ sub real_handler {
}
}
- $r->print("$discussionHTML$feedbackHTML | ");
+ if ($curRes->getErrors()) {
+ my $errors = $curRes->getErrors();
+ foreach (split(/,/, $errors)) {
+ if ($_) {
+ $errorHTML .= ' '
+ . '
';
+ }
+ }
+ }
+
+ $r->print("$discussionHTML$feedbackHTML$errorHTML | ");
# Is this the first displayed part of a multi-part problem
# that has not been condensed, so we should suppress these two
@@ -670,10 +685,10 @@ sub real_handler {
$r->print('');
}
- $r->print("