--- loncom/interface/lonnavmaps.pm 2002/10/17 19:25:27 1.84 +++ loncom/interface/lonnavmaps.pm 2002/10/28 19:10:35 1.88 @@ -2,7 +2,7 @@ # The LearningOnline Network with CAPA # Navigate Maps Handler # -# $Id: lonnavmaps.pm,v 1.84 2002/10/17 19:25:27 bowersj2 Exp $ +# $Id: lonnavmaps.pm,v 1.88 2002/10/28 19:10:35 bowersj2 Exp $ # # Copyright Michigan State University Board of Trustees # @@ -876,7 +876,7 @@ sub new_handle { $res->NOTHING_SET => '' ); # And a special case in the nav map; what to do when the assignment # is not yet done and due in less then 24 hours - my $hurryUpColor = "#FFCCCC"; + my $hurryUpColor = "#FF0000"; my %statusIconMap = ( $res->NETWORK_FAILURE => '', @@ -890,7 +890,7 @@ sub new_handle { $res->TRIES_LEFT => 'navmap.open.gif', $res->INCORRECT => 'navmap.wrong.gif', $res->OPEN => 'navmap.open.gif', - $res->ATTEMPTED => '' ); + $res->ATTEMPTED => 'navmap.open.gif' ); my %iconAltTags = ( 'navmap.correct.gif' => 'Correct', @@ -910,6 +910,11 @@ sub new_handle { } } + # Is this a new-style course? If so, we want to suppress showing the top-level + # 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 $currenturl = $ENV{'form.postdata'}; $currenturl=~s/^http\:\/\///; $currenturl=~s/^[^\/]+//; @@ -925,7 +930,7 @@ sub new_handle { # Begin the HTML table # four cols: resource + indent, chat+feedback, icon, text string - $r->print('
\n"); + $r->print(" | |||
\n");
# print indentation
- for (my $i = 0; $i < $indentLevel - $deltalevel; $i++) {
+ for (my $i = 0; $i < $indentLevel - $deltalevel + $deltadepth; $i++) {
$r->print($indentString);
}
@@ -1218,7 +1268,7 @@ sub new_handle {
my $discussionHTML = ""; my $feedbackHTML = "";
- # SECOND COL: Is there text or feedback?
+ # SECOND COL: Is there text, feedback, errors??
if ($curRes->hasDiscussion()) {
$discussionHTML = $linkopen .
'![]() | \n"); + #$r->print(" | \n"); + $r->print(" | \n");
if ($curRes->kind() eq "res" &&
$curRes->is_problem() &&
!$firstDisplayed) {
+ $r->print ("") if ($color);
$r->print (getDescription($curRes, $part));
+ $r->print ("") if ($color);
}
if ($curRes->is_map() && advancedUser() && $curRes->randompick()) {
$r->print('(randomly select ' . $curRes->randompick() .')');
@@ -1473,7 +1526,7 @@ sub timeToHumanString {
# Less then 5 days away, display day of the week and
# HH:MM
if ( $delta < $day * 5 ) {
- my $timeStr = strftime("%A at %I:%M %P", localtime($time));
+ my $timeStr = strftime("%A, %b %e at %I:%M %P", localtime($time));
$timeStr =~ s/12:00 am/midnight/;
$timeStr =~ s/12:00 pm/noon/;
return ($inPast ? "last " : "next ") .
@@ -2168,7 +2221,7 @@ sub populateStack {
my $self=shift;
my $stack = shift;
- push @$stack, $self->{HERE};
+ push @$stack, $self->{HERE} if ($self->{HERE});
if ($self->{RECURSIVE_ITERATOR_FLAG}) {
$self->{RECURSIVE_ITERATOR}->populateStack($stack);
@@ -2270,7 +2323,9 @@ These are methods that help you retrieve
# These info functions can be used directly, as they don't return
# resource information.
+sub comesfrom { my $self=shift; return $self->navHash("comesfrom_", 1); }
sub ext { my $self=shift; return $self->navHash("ext_", 1) eq 'true:'; }
+sub from { my $self=shift; return $self->navHash("from_", 1); }
sub goesto { my $self=shift; return $self->navHash("goesto_", 1); }
sub kind { my $self=shift; return $self->navHash("kind_", 1); }
sub randomout { my $self=shift; return $self->navHash("randomout_", 1); }
@@ -2554,7 +2609,7 @@ sub hasDiscussion {
sub getFeedback {
my $self = shift;
- return $self->{NAV_MAP}->getFeedback($self->symb());
+ return $self->{NAV_MAP}->getFeedback($self->src());
}
=pod
@@ -2884,20 +2939,18 @@ sub status {
=over 4
-=item * B |