version 1.134, 2003/02/04 16:14:27
|
version 1.137, 2003/02/06 21:16:19
|
Line 56 sub NOTHING { return 3; }
|
Line 56 sub NOTHING { return 3; }
|
|
|
# Some data |
# Some data |
|
|
|
# Keep these mappings in sync with lonquickgrades, which uses the colors |
|
# instead of the icons. |
|
my %statusIconMap = |
|
( Apache::lonnavmaps::resource->NETWORK_FAILURE => '', |
|
Apache::lonnavmaps::resource->NOTHING_SET => '', |
|
Apache::lonnavmaps::resource->CORRECT => 'navmap.correct.gif', |
|
Apache::lonnavmaps::resource->EXCUSED => 'navmap.correct.gif', |
|
Apache::lonnavmaps::resource->PAST_DUE_NO_ANSWER => 'navmap.wrong.gif', |
|
Apache::lonnavmaps::resource->PAST_DUE_ANSWER_LATER => 'navmap.wrong.gif', |
|
Apache::lonnavmaps::resource->ANSWER_OPEN => 'navmap.wrong.gif', |
|
Apache::lonnavmaps::resource->OPEN_LATER => '', |
|
Apache::lonnavmaps::resource->TRIES_LEFT => 'navmap.open.gif', |
|
Apache::lonnavmaps::resource->INCORRECT => 'navmap.wrong.gif', |
|
Apache::lonnavmaps::resource->OPEN => 'navmap.open.gif', |
|
Apache::lonnavmaps::resource->ATTEMPTED => 'navmap.open.gif' ); |
|
|
|
my %iconAltTags = |
|
( 'navmap.correct.gif' => 'Correct', |
|
'navmap.wrong.gif' => 'Incorrect', |
|
'navmap.open.gif' => 'Open' ); |
|
|
|
# Defines a status->color mapping, null string means don't color |
|
my %colormap = |
|
( Apache::lonnavmaps::resource->NETWORK_FAILURE => '', |
|
Apache::lonnavmaps::resource->CORRECT => '', |
|
Apache::lonnavmaps::resource->EXCUSED => '#3333FF', |
|
Apache::lonnavmaps::resource->PAST_DUE_ANSWER_LATER => '', |
|
Apache::lonnavmaps::resource->PAST_DUE_NO_ANSWER => '', |
|
Apache::lonnavmaps::resource->ANSWER_OPEN => '#006600', |
|
Apache::lonnavmaps::resource->OPEN_LATER => '', |
|
Apache::lonnavmaps::resource->TRIES_LEFT => '', |
|
Apache::lonnavmaps::resource->INCORRECT => '', |
|
Apache::lonnavmaps::resource->OPEN => '', |
|
Apache::lonnavmaps::resource->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 = "#FF0000"; |
|
|
sub cleanup { |
sub cleanup { |
if (tied(%navmaphash)){ |
if (tied(%navmaphash)){ |
Line 222 sub real_handler {
|
Line 259 sub real_handler {
|
# These are some data tables, which make it easy to change some of |
# These are some data tables, which make it easy to change some of |
# of the specific visualization parameters if desired. |
# of the specific visualization parameters if desired. |
|
|
# Defines a status->color mapping, null string means don't color |
|
my %colormap = |
|
( $res->NETWORK_FAILURE => '', |
|
$res->CORRECT => '', |
|
$res->EXCUSED => '#3333FF', |
|
$res->PAST_DUE_ANSWER_LATER => '', |
|
$res->PAST_DUE_NO_ANSWER => '', |
|
$res->ANSWER_OPEN => '#006600', |
|
$res->OPEN_LATER => '', |
|
$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 = "#FF0000"; |
|
|
|
# Keep these mappings in sync with lonquickgrades, which uses the colors |
|
# instead of the icons. |
|
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', |
|
$res->ATTEMPTED => 'navmap.open.gif' ); |
|
|
|
my %iconAltTags = |
|
( 'navmap.correct.gif' => 'Correct', |
|
'navmap.wrong.gif' => 'Incorrect', |
|
'navmap.open.gif' => 'Open' ); |
|
|
|
my %condenseStatuses = |
my %condenseStatuses = |
( $res->NETWORK_FAILURE => 1, |
( $res->NETWORK_FAILURE => 1, |
$res->NOTHING_SET => 1, |
$res->NOTHING_SET => 1, |
Line 555 sub real_handler {
|
Line 554 sub real_handler {
|
|
|
} |
} |
|
|
my $colorizer = ""; |
|
my $color; |
my $color; |
if ($curRes->is_problem()) { |
if ($curRes->is_problem()) { |
$color = $colormap{$curRes->status}; |
$color = $colormap{$curRes->status}; |
Line 564 sub real_handler {
|
Line 562 sub real_handler {
|
lastTry($curRes, $part)) { |
lastTry($curRes, $part)) { |
$color = $hurryUpColor; |
$color = $hurryUpColor; |
} |
} |
|
|
if ($color ne "") { |
|
$colorizer = "bgcolor=\"$color\""; |
|
} |
|
} |
} |
|
|
if ($curRes->randomout()) { |
if ($curRes->randomout()) { |
Line 1061 sub long_status { return 3; }
|
Line 1055 sub long_status { return 3; }
|
|
|
# Data for render_resource |
# Data for render_resource |
|
|
my $resObj = 'Apache::lonnavmaps::resource'; |
|
# Defines a status->color mapping, null string means don't color |
|
my %colormap = |
|
( $resObj->NETWORK_FAILURE => '', |
|
$resObj->CORRECT => '', |
|
$resObj->EXCUSED => '#3333FF', |
|
$resObj->PAST_DUE_ANSWER_LATER => '', |
|
$resObj->PAST_DUE_NO_ANSWER => '', |
|
$resObj->ANSWER_OPEN => '#006600', |
|
$resObj->OPEN_LATER => '', |
|
$resObj->TRIES_LEFT => '', |
|
$resObj->INCORRECT => '', |
|
$resObj->OPEN => '', |
|
$resObj->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 = "#FF0000"; |
|
|
|
sub render_resource { |
sub render_resource { |
my ($resource, $part, $params) = @_; |
my ($resource, $part, $params) = @_; |
|
|
Line 1227 sub render_communication_status {
|
Line 1203 sub render_communication_status {
|
} |
} |
sub render_quick_status { |
sub render_quick_status { |
my ($resource, $part, $params) = @_; |
my ($resource, $part, $params) = @_; |
return "<td align='center'>quick_status</td>"; |
my $result = ""; |
|
my $firstDisplayed = !$params->{'condensed'} && |
|
$params->{'multipart'} && $part eq "0"; |
|
|
|
my $link = $params->{"resourceLink"}; |
|
my $linkopen = "<a href='$link'>"; |
|
my $linkclose = "</a>"; |
|
|
|
if ($resource->is_problem() && |
|
!$firstDisplayed) { |
|
my $icon = $statusIconMap{$resource->status($part)}; |
|
my $alt = $iconAltTags{$icon}; |
|
if ($icon) { |
|
$result .= "<td width='30' valign='center' width='50' align='right'>$linkopen<img width='25' height='25' src='/adm/lonIcons/$icon' border='0' alt='$alt' />$linkclose</td>\n"; |
|
} else { |
|
$result .= "<td width='30'> </td>\n"; |
|
} |
|
} else { # not problem, no icon |
|
$result .= "<td width='30'> </td>\n"; |
|
} |
|
|
|
return $result; |
} |
} |
sub render_long_status { |
sub render_long_status { |
my ($resource, $part, $params) = @_; |
my ($resource, $part, $params) = @_; |
return "<td align='center'>long_status</td>"; |
my $result = "<td align='right' valign='center'>\n"; |
|
my $firstDisplayed = !$params->{'condensed'} && |
|
$params->{'multipart'} && $part eq "0"; |
|
|
|
my $color; |
|
if ($resource->is_problem()) { |
|
$color = $colormap{$resource->status}; |
|
|
|
if (dueInLessThen24Hours($resource, $part) || |
|
lastTry($resource, $part)) { |
|
$color = $hurryUpColor; |
|
} |
|
} |
|
|
|
if ($resource->kind() eq "res" && |
|
$resource->is_problem() && |
|
!$firstDisplayed) { |
|
if ($color) {$result .= "<font color=\"$color\"><b>"; } |
|
$result .= getDescription($resource, $part); |
|
if ($color) {$result .= "</b></font>"; } |
|
} |
|
if ($resource->is_map() && advancedUser() && $resource->randompick()) { |
|
$result .= '(randomly select ' . $resource->randompick() .')'; |
|
} |
|
|
|
$result .= " </td>\n"; |
|
|
|
return $result; |
} |
} |
|
|
my @preparedColumns = (\&render_resource, \&render_communication_status, |
my @preparedColumns = (\&render_resource, \&render_communication_status, |
Line 1421 sub render {
|
Line 1445 sub render {
|
my $srcHasQuestion = $src =~ /\?/; |
my $srcHasQuestion = $src =~ /\?/; |
$args->{"resourceLink"} = $src. |
$args->{"resourceLink"} = $src. |
($srcHasQuestion?'&':'?') . |
($srcHasQuestion?'&':'?') . |
'symb=' . &Apache::lonnet::escape($curRes->symb()). |
'symb=' . &Apache::lonnet::escape($curRes->symb()); |
'"'; |
|
|
|
# Now, display each column. |
# Now, display each column. |
foreach my $col (@$cols) { |
foreach my $col (@$cols) { |