\n");
# print indentation
for (my $i = 0; $i < $indentLevel - $deltalevel; $i++) {
@@ -1126,6 +1183,16 @@ sub new_handle {
$r->print(" ${newBranchText}${linkopen}$icon${linkclose}\n");
+ my $curMarkerBegin = "";
+ my $curMarkerEnd = "";
+
+ # Is this the current resource?
+ if ($curRes->src() eq $currenturl && !$displayedHereMarker) {
+ $curMarkerBegin = '> ';
+ $curMarkerEnd = ' <';
+ $displayedHereMarker = 1;
+ }
+
if ($curRes->is_problem() && $part ne "0" && !$condensed) {
$partLabel = " (Part $part)";
$title = "";
@@ -1134,7 +1201,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",
@@ -1162,7 +1229,7 @@ sub new_handle {
}
}
- $r->print(" | $discussionHTML$feedbackHTML | ");
+ $r->print("$discussionHTML$feedbackHTML | ");
# Is this the first displayed part of a multi-part problem
# that has not been condensed, so we should suppress these two
@@ -1175,7 +1242,7 @@ sub new_handle {
my $icon = $statusIconMap{$curRes->status($part)};
my $alt = $iconAltTags{$icon};
if ($icon) {
- $r->print("$linkopen$linkclose | \n");
+ $r->print("$linkopen$linkclose | \n");
} else {
$r->print(" | \n");
}
@@ -1184,7 +1251,7 @@ sub new_handle {
}
# FOURTH COL: Text description
- $r->print("\n");
+ $r->print(" | \n");
if ($curRes->kind() eq "res" &&
$curRes->is_problem() &&
@@ -1273,7 +1340,7 @@ sub getDescription {
return "Open " . timeToHumanString($res->opendate($part));
}
if ($status == $res->OPEN) {
- if ($res->duedate()) {
+ if ($res->duedate($part)) {
return "Due " . timeToHumanString($res->duedate($part));
} else {
return "Open, no due date";
@@ -1295,9 +1362,15 @@ sub getDescription {
return "Not yet graded.";
}
if ($status == $res->TRIES_LEFT) {
- my $tries = $res->tries();
- my $maxtries = $res->maxtries();
- my $triesString = "($tries of $maxtries tries used)";
+ my $tries = $res->tries($part);
+ my $maxtries = $res->maxtries($part);
+ my $triesString = "";
+ if ($tries && $maxtries) {
+ $triesString = "($tries of $maxtries tries used)";
+ if ($maxtries > 1 && $maxtries - $tries == 1) {
+ $triesString = "$triesString";
+ }
+ }
if ($res->duedate()) {
return "Due " . timeToHumanString($res->duedate($part)) .
" $triesString";
@@ -2771,7 +2844,7 @@ sub status {
# If it's WRONG...
if ($completionStatus == INCORRECT || $completionStatus == INCORRECT_BY_OVERRIDE) {
# and there are TRIES LEFT:
- if ($self->tries() < $self->maxtries()) {
+ if ($self->tries($part) < $self->maxtries($part) || !$self->maxtries($part)) {
return TRIES_LEFT;
}
return INCORRECT; # otherwise, return orange; student can't fix this
|