--- loncom/interface/lonnavmaps.pm 2003/01/10 17:46:46 1.123 +++ loncom/interface/lonnavmaps.pm 2003/01/10 18:45:30 1.124 @@ -2,7 +2,7 @@ # The LearningOnline Network with CAPA # Navigate Maps Handler # -# $Id: lonnavmaps.pm,v 1.123 2003/01/10 17:46:46 bowersj2 Exp $ +# $Id: lonnavmaps.pm,v 1.124 2003/01/10 18:45:30 bowersj2 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(''); @@ -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.' . @@ -600,7 +602,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 . @@ -620,7 +622,19 @@ sub real_handler { } } - $r->print(""); + if ($curRes->getErrors()) { + my $errors = $curRes->getErrors(); + foreach (split(/,/, $errors)) { + if ($_) { + $errorHTML .= ' ' + . ''; + } + } + } + + $r->print(""); # Is this the first displayed part of a multi-part problem # that has not been condensed, so we should suppress these two @@ -1060,7 +1074,7 @@ sub init { my %emailstatus = &Apache::lonnet::dump('email_status'); my $logoutTime = $emailstatus{'logout'}; my $courseLeaveTime = $emailstatus{'logout_'.$ENV{'request.course.id'}}; - $self->{LAST_CHECK} = ($courseLeaveTime > $logoutTime ? + $self->{LAST_CHECK} = ($courseLeaveTime < $logoutTime ? $courseLeaveTime : $logoutTime); my %discussiontime = &Apache::lonnet::dump('discussiontimes', $cdom, $cnum); @@ -1141,18 +1155,19 @@ sub DESTROY { $self->untieHashes(); } -# Private function: Does the given resource (as a symb string) have +# Does the given resource (as a symb string) have # current discussion? Returns 0 if chat/mail data not extracted. sub hasDiscussion { my $self = shift; my $symb = shift; if (!defined($self->{DISCUSSION_TIME})) { return 0; } + #return defined($self->{DISCUSSION_TIME}->{$symb}); return $self->{DISCUSSION_TIME}->{$symb} > $self->{LAST_CHECK}; } -# Private function: Does the given resource (as a symb string) have +# Does the given resource (as a symb string) have # current feedback? Returns the string in the feedback hash, which # will be false if it does not exist. sub getFeedback { @@ -1164,6 +1179,14 @@ sub getFeedback { return $self->{FEEDBACK}->{$symb}; } +sub getErrors { + my $self = shift; + my $src = shift; + + if (!defined($self->{ERROR_MSG})) { return ""; } + return $self->{ERROR_MSG}->{$src}; +} + =pod =item * B(id): Based on the ID of the resource (1.1, 3.2, etc.), get a resource object for that resource. This method, or other methods that use it (as in the resource object) is the only proper way to obtain a resource object. @@ -2229,7 +2252,16 @@ sub hasDiscussion { sub getFeedback { my $self = shift; - return $self->{NAV_MAP}->getFeedback($self->src()); + my $source = $self->src(); + if ($source !~ /^\/res\//) { $source = substr $source, 5; } + return $self->{NAV_MAP}->getFeedback($source); +} + +sub getErrors { + my $self = shift; + my $source = $self->src(); + if ($source =~ /^\/res\//) { $source = substr $source, 5; } + return $self->{NAV_MAP}->getErrors($source); } =pod
Key:  $discussionHTML$feedbackHTML $discussionHTML$feedbackHTML$errorHTML