--- loncom/interface/lonnavmaps.pm 2002/10/01 07:20:31 1.58 +++ loncom/interface/lonnavmaps.pm 2002/10/01 19:39:11 1.60 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Navigate Maps Handler # -# $Id: lonnavmaps.pm,v 1.58 2002/10/01 07:20:31 albertel Exp $ +# $Id: lonnavmaps.pm,v 1.60 2002/10/01 19:39:11 bowersj2 Exp $ # # Copyright Michigan State University Board of Trustees # @@ -848,16 +848,38 @@ sub new_handle { # Defines a status->color mapping, null string means don't color my %colormap = ( $res->NETWORK_FAILURE => '', - $res->CORRECT => '#BBFFBB', + $res->CORRECT => '', $res->EXCUSED => '#BBBBFF', - $res->PAST_DUE_ANSWER_LATER => '#FFAA00', - $res->PAST_DUE_NO_ANSWER => '#FFAA00', - $res->ANSWER_OPEN => '#FF00AA', + $res->PAST_DUE_ANSWER_LATER => '', + $res->PAST_DUE_NO_ANSWER => '', + $res->ANSWER_OPEN => '#CCFFCC', $res->OPEN_LATER => '', - $res->TRIES_LEFT => '#FFFF00', - $res->INCORRECT => '#FFAA00', - $res->OPEN => '#FFFF88', + $res->TRIES_LEFT => '', + $res->INCORRECT => '', + $res->OPEN => '', $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 %statusIconMap = + ( $res->NETWORK_FAILURE => '', + $res->NOTHING_SET => '', + $res->CORRECT => 'navmap.correct.gif', + $res->EXCUSED => 'navmap.correct.gif', + $res->PAST_DUE_NO_ANSWER => 'navmap.wrong.gif', + $res->PAST_DUE_ANSWER_LATER => 'navmap.wrong.gif', + $res->ANSWER_OPEN => 'navmap.wrong.gif', + $res->OPEN_LATER => '', + $res->TRIES_LEFT => 'navmap.open.gif', + $res->INCORRECT => 'navmap.wrong.gif', + $res->OPEN => 'navmap.open.gif' ); + + my %condenseStatuses = + ( $res->NETWORK_FAILURE => 1, + $res->NOTHING_SET => 1, + $res->CORRECT => 1, + $res->OPEN => 1 ); my %filterHash; # Figure out what we're not displaying @@ -868,16 +890,18 @@ sub new_handle { } # Begin the HTML table - # two columns: the title/icon on the left, the info on the right + # four cols: resource + indent, chat+feedback, icon, text string $r->print('
\n"); # print indentation - for (my $i = 0; $i < $indentLevel; $i++) { + for (my $i = 0; $i < $indentLevel - $deltalevel; $i++) { $r->print($indentString); } @@ -972,13 +1041,52 @@ sub new_handle { if ($curRes->is_problem() && $part != "0") { $partLabel = " (Part $part)"; } - $r->print(" $title$partLabel | ". - "\n"); + $r->print(" $title$partLabel | "); + + my $discussionHTML = ""; my $feedbackHTML = ""; + + # SECOND ROW: Is there text or feedback? + if ($curRes->hasDiscussion()) { + $discussionHTML = $linkopen . + '' . + $linkclose; + } + + if ($curRes->getFeedback()) { + my $feedback = $curRes->getFeedback(); + foreach (split(/\,/, $feedback)) { + if ($_) { + $feedbackHTML .= ' ' + . ''; + } + } + } + + $r->print("$discussionHTML$feedbackHTML | "); + + # THIRD ROW: Problem status icon + if ($curRes->is_problem()) { + my $icon = $statusIconMap{$curRes->status()}; + if ($icon) { + $r->print("$linkopen$linkclose | \n"); + } else { + $r->print("\n"); + } + } else { # not problem, no icon + $r->print(" | \n"); + } + + # FOURTH ROW: Text description + $r->print(" | \n"); if ($curRes->kind() eq "res" and $curRes->is_problem() ) { $r->print (getDescription($curRes, $part)); } + + $r->print(" |