--- loncom/interface/lonnavmaps.pm 2002/10/11 18:39:55 1.73
+++ loncom/interface/lonnavmaps.pm 2002/10/11 21:29:18 1.74
@@ -2,7 +2,7 @@
# The LearningOnline Network with CAPA
# Navigate Maps Handler
#
-# $Id: lonnavmaps.pm,v 1.73 2002/10/11 18:39:55 bowersj2 Exp $
+# $Id: lonnavmaps.pm,v 1.74 2002/10/11 21:29:18 bowersj2 Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -930,7 +930,39 @@ sub new_handle {
$condition = 1;
}
- my $mapIterator = $navmap->getIterator(undef, undef, \%filterHash, $condition);
+ # This needs to be updated to use symbs from the remote,
+ # instead of uris. The changes to this and the main rendering
+ # loop should be obvious.
+ # Here's a simple example of the iterator.
+ # If there is a current resource
+ if ($currenturl) {
+ # Give me every resource...
+ my $mapIterator = $navmap->getIterator(undef, undef, {}, 1);
+ my $found != 0;
+ my $depth = 1;
+ $mapIterator->next(); # discard the first BEGIN_MAP
+ my $curRes = $mapIterator->next();
+
+ while ($depth > 0 && !$found) {
+ if (ref($curRes) && $curRes->src() eq $currenturl) {
+ # If this is the correct resource, be sure to
+ # show it by making sure the containing maps
+ # are open.
+
+ my $mapStack = $mapIterator->getStack();
+ for my $map (@{$mapStack}) {
+ if ($condition) {
+ undef $filterHash{$map->map_pc()};
+ } else {
+ $filterHash{$map->map_pc()} = 1;
+ }
+ }
+ $found = 1;
+ }
+ $curRes = $mapIterator->next();
+ }
+ }
+
undef $res; # so we don't accidentally use it later
my $indentLevel = 0;
my $indentString = "";
@@ -942,6 +974,8 @@ sub new_handle {
# We know the first thing is a BEGIN_MAP (see "$self->{STARTED}"
# code in iterator->next), so ignore the first one
+ my $mapIterator = $navmap->getIterator(undef, undef, \%filterHash,
+ $condition);
$mapIterator->next();
my $curRes = $mapIterator->next();
@@ -1107,6 +1141,13 @@ sub new_handle {
if ($curRes->is_problem()) {
my $status = $curRes->status($part);
my $color = $colormap{$status};
+
+ # Special case in the navmaps: If in less then
+ # 24 hours, give it a bit of urgency
+ if ($status == $curRes->OPEN() &&
+ $curRes->duedate() < time()+(24*60*60)) {
+ $color = $hurryUpColor;
+ }
if ($color ne "") {
$colorizer = "bgcolor=\"$color\"";
}
@@ -1126,6 +1167,15 @@ sub new_handle {
$r->print(" ${newBranchText}${linkopen}$icon${linkclose}\n");
+ my $curMarkerBegin = "";
+ my $curMarkerEnd = "";
+
+ # Is this the current resource?
+ if ($curRes->src() eq $currenturl) {
+ $curMarkerBegin = '> ';
+ $curMarkerEnd = ' <';
+ }
+
if ($curRes->is_problem() && $part ne "0" && !$condensed) {
$partLabel = " (Part $part)";
$title = "";
@@ -1134,7 +1184,7 @@ sub new_handle {
$nonLinkedText .= ' (' . $curRes->countParts() . ' parts)';
}
- $r->print(" $title$partLabel $nonLinkedText");
+ $r->print(" $curMarkerBegin$title$partLabel $curMarkerEnd $nonLinkedText");
if ($curRes->{RESOURCE_ERROR}) {
$r->print(&Apache::loncommon::help_open_topic ("Navmap_Host_Down",