--- loncom/interface/lonnavmaps.pm 2009/09/23 14:28:33 1.423.4.1
+++ loncom/interface/lonnavmaps.pm 2009/03/27 11:33:19 1.433
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Navigate Maps Handler
#
-# $Id: lonnavmaps.pm,v 1.423.4.1 2009/09/23 14:28:33 gci Exp $
+# $Id: lonnavmaps.pm,v 1.433 2009/03/27 11:33:19 bisitz Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -31,7 +31,7 @@
=head1 NAME
-Apache::lonnavmaps - Subroutines to handle and render the navigation
+Apache::lonnavmaps.pm
=head1 SYNOPSIS
@@ -897,35 +897,32 @@ sub render_resource {
my $location=&Apache::loncommon::lonhttpdurl("/adm/lonIcons");
# If this is a new branch, label it so
if ($params->{'isNewBranch'}) {
- $newBranchText = '';
+ $newBranchText = "";
}
# links to open and close the folder
-
- my $linkopen = "";
-
-
+ my $whitespace = $location.'/whitespace_21.gif';
+ my $linkopen = ""."";
my $linkclose = "";
# Default icon: unknown page
- my $icon = "";
+ my $icon = "";
if ($resource->is_problem()) {
if ($part eq '0' || $params->{'condensed'}) {
- $icon = '';
+ $icon .='" />';
} else {
$icon = $params->{'indentString'};
}
} else {
- $icon = "";
+ $icon = "";
}
# Display the correct map icon to open or shut map
@@ -935,15 +932,15 @@ sub render_resource {
if ($it->{CONDITION}) {
$nowOpen = !$nowOpen;
}
-
+
my $folderType = $resource->is_sequence() ? 'folder' : 'page';
my $title=$resource->title;
- $title=~s/\"/\"/g;
+ $title=~s/\"/\&qout;/g;
if (!$params->{'resource_no_folder_link'}) {
$icon = "navmap.$folderType." . ($nowOpen ? 'closed' : 'open') . '.gif';
- $icon = "";
-
+ $icon = ""
+ ."";
$linkopen = "{'url'} . '?' .
$params->{'queryString'} . '&filter=';
$linkopen .= ($nowOpen xor $it->{CONDITION}) ?
@@ -958,10 +955,8 @@ sub render_resource {
} else {
# Don't allow users to manipulate folder
- $icon = "navmap.$folderType." . ($nowOpen ? 'closed' : 'open') .
- '.nomanip.gif';
- $icon = "";
+ $icon = "navmap.$folderType." . ($nowOpen ? 'closed' : 'open') . '.gif';
+ $icon = ""."";
$linkopen = "";
$linkclose = "";
@@ -977,10 +972,11 @@ sub render_resource {
if (($resource->is_practice()) && ($resource->is_raw_problem())) {
$nonLinkedText .=' '.&mt('not graded').'';
}
-
- # We're done preparing and finally ready to start the rendering
- my $result = "
";
+ # We're done preparing and finally ready to start the rendering
+ my $result = ' | ';
+ my $newfolderType = $resource->is_sequence() ? 'folder' : 'page';
+
my $indentLevel = $params->{'indentLevel'};
if ($newBranchText) { $indentLevel--; }
@@ -990,7 +986,6 @@ sub render_resource {
}
# Decide what to display
-
$result .= "$newBranchText$linkopen$icon$linkclose";
my $curMarkerBegin = '';
@@ -999,9 +994,9 @@ sub render_resource {
# Is this the current resource?
if (!$params->{'displayedHereMarker'} &&
$resource->symb() eq $params->{'here'} ) {
- $curMarkerBegin = '>';
- $curMarkerEnd = '<';
- $params->{'displayedHereMarker'} = 1;
+ $curMarkerBegin = '';
+ $curMarkerEnd = '';
+ $params->{'displayedHereMarker'} = 1;
}
if ($resource->is_problem() && $part ne '0' &&
@@ -1021,9 +1016,9 @@ sub render_resource {
$target=' target="loncapaclient" ';
}
if (!$params->{'resource_nolink'} && !$resource->is_sequence() && !$resource->is_empty_sequence) {
- $result .= " $curMarkerBegin$title$partLabel$curMarkerEnd $nonLinkedText | ";
+ $result .= "$curMarkerBegin$title$partLabel$curMarkerEnd$nonLinkedText";
} else {
- $result .= " $curMarkerBegin$title$partLabel$curMarkerEnd $nonLinkedText";
+ $result .= "$curMarkerBegin$linkopen$title$partLabel$curMarkerEnd$nonLinkedText";
}
return $result;
@@ -1043,7 +1038,7 @@ sub render_communication_status {
my $location=&Apache::loncommon::lonhttpdurl("/adm/lonMisc");
if ($resource->hasDiscussion()) {
$discussionHTML = $linkopen .
- '' .
+ '' .
$linkclose;
}
@@ -1053,8 +1048,7 @@ sub render_communication_status {
if ($msgid) {
$feedbackHTML .= ' '
- . '';
+ . '';
}
}
}
@@ -1068,8 +1062,7 @@ sub render_communication_status {
$errorcount++;
$errorHTML .= ' '
- . '';
+ . '';
}
}
}
@@ -1077,8 +1070,7 @@ sub render_communication_status {
if ($params->{'multipart'} && $part != '0') {
$discussionHTML = $feedbackHTML = $errorHTML = '';
}
-
- return "$discussionHTML$feedbackHTML$errorHTML | ";
+ return "$discussionHTML$feedbackHTML$errorHTML | ";
}
sub render_quick_status {
@@ -1094,28 +1086,28 @@ sub render_quick_status {
}
my $linkopen = "";
my $linkclose = "";
-
+
+ $result .= '';
if ($resource->is_problem() &&
!$firstDisplayed) {
-
my $icon = $statusIconMap{$resource->simpleStatus($part)};
my $alt = $iconAltTags{$icon};
if ($icon) {
my $location=
&Apache::loncommon::lonhttpdurl("/adm/lonIcons/$icon");
- $result .= " | $linkopen$linkclose | \n";
+ $result .= "$linkopen$linkclose";
} else {
- $result .= " | \n";
+ $result .= " ";
}
} else { # not problem, no icon
- $result .= " | \n";
+ $result .= " ";
}
-
+ $result .= "\n";
return $result;
}
sub render_long_status {
my ($resource, $part, $params) = @_;
- my $result = "\n";
+ my $result = ' | ';
my $firstDisplayed = !$params->{'condensed'} &&
$params->{'multipart'} && $part eq "0";
@@ -1419,7 +1411,7 @@ sub render {
my $printKey = $args->{'printKey'};
my $printCloseAll = $args->{'printCloseAll'};
if (!defined($printCloseAll)) { $printCloseAll = 1; }
-
+
# Print key?
if ($printKey) {
$result .= '';
@@ -1427,15 +1419,15 @@ sub render {
my $location=&Apache::loncommon::lonhttpdurl("/adm/lonMisc");
if ($navmap->{LAST_CHECK}) {
$result .=
- ' '.&mt('New discussion since').' '.
+ ' '.&mt('New discussion since').' '.
strftime("%A, %b %e at %I:%M %P", localtime($navmap->{LAST_CHECK})).
' '.
- ' '.&mt('New message (click to open)').' '.
+ ' '.&mt('New message (click to open)').' '.
' | ';
} else {
$result .= ' '.
- ' '.&mt('Discussions').' | '.
- ' '.&mt('New message (click to open)').
+ ' '.&mt('Discussions').' | '.
+ ' '.&mt('New message (click to open)').
' | ';
}
@@ -1494,6 +1486,7 @@ END
$result.='';
}
+
if ($args->{'caller'} eq 'navmapsdisplay') {
$result .= ''.
&Apache::loncommon::help_open_menu('Navigation Screen','Navigation_Screen',undef,'RAT').' | ';
@@ -1502,7 +1495,8 @@ END
} else {
$result .= ' ';
}
- $result.=&show_linkitems($args->{'linkitems'});
+ $result.="".mt('Tools:')." | ";
+ $result.=&show_linkitems_toolbar($args->{'linkitems'});
if ($args->{'sort_html'}) {
if ($env{'environment.remotenavmap'} ne 'on') {
$result.=' | | | '.
@@ -1517,31 +1511,34 @@ END
$result.=$args->{'sort_html'};
}
- $result .= " \n";
+ #$result .= " \n";
if ($r) {
$r->print($result);
$r->rflush();
$result = "";
}
# End parameter setting
-
+
+ $result .= " \n";
+
# Data
- $result .= '' ."\n";
+ $result.=&Apache::loncommon::start_data_table("LC_tableOfContent");
+
my $res = "Apache::lonnavmaps::resource";
my %condenseStatuses =
( $res->NETWORK_FAILURE => 1,
$res->NOTHING_SET => 1,
$res->CORRECT => 1 );
- my @backgroundColors = ("#FFFFFF", "#F6F6F6");
+ my @backgroundColors = ("LC_trEven", "LC_trOdd");
# Shared variables
$args->{'counter'} = 0; # counts the rows
$args->{'indentLevel'} = 0;
$args->{'isNewBranch'} = 0;
- $args->{'condensed'} = 0;
- my $location=
- &Apache::loncommon::lonhttpdurl("/adm/lonIcons/whitespace1.gif");
- $args->{'indentString'} = setDefault($args->{'indentString'}, "");
+ $args->{'condensed'} = 0;
+
+ my $location = &Apache::loncommon::lonhttpdurl("/adm/lonIcons/whitespace_21.gif");
+ $args->{'indentString'} = setDefault($args->{'indentString'}, "");
$args->{'displayedHereMarker'} = 0;
# If we're suppressing empty sequences, look for them here. Use DFS for speed,
@@ -1769,7 +1766,7 @@ END
$rownum ++;
my $backgroundColor = $backgroundColors[$rownum % scalar(@backgroundColors)];
- $result .= " \n";
+ $result .= &Apache::loncommon::start_data_table_row();
# Set up some data about the parts that the cols might want
my $filter = $it->{FILTER};
@@ -1795,7 +1792,7 @@ END
}
$result .= $colHTML . "\n";
}
- $result .= " \n";
+ $result .= &Apache::loncommon::end_data_table_row();
$args->{'isNewBranch'} = 0;
}
@@ -1831,8 +1828,8 @@ if (location.href.indexOf('#curloc')==-1
";
}
- $result .= " ";
-
+ $result.=&Apache::loncommon::end_data_table();
+
if ($r) {
$r->print($result);
$result = "";
@@ -1882,6 +1879,41 @@ ENDBLOCK
return $result;
}
+sub show_linkitems_toolbar {
+ my ($linkitems,$condition)=@_;
+ my @linkorder = ("blank","launchnav","closenav","firsthomework",
+ "everything","uncompleted","changefolder","clearbubbles");
+
+ my $result .='
+
+ '."\n';
+ $result .= ' | '."\n";
+
+ return $result;
+}
+
+
1;
@@ -3775,7 +3807,7 @@ sub map_contains_problem {
sub is_sequence {
my $self=shift;
return $self->navHash("is_map_", 1) &&
- $self->navHash("map_type_" . $self->map_pc()) eq 'sequence';
+ $self->navHash("map_type_" . $self->map_pc()) eq 'sequence';
}
sub is_survey {
my $self = shift();
@@ -4106,7 +4138,7 @@ sub slot_control {
if (!defined($part)) { $part = '0'; }
my $useslots = $self->parmval("useslots", $part);
my $availablestudent = $self->parmval("availablestudent", $part);
- my $available = $self->parmval("available", $part);
+ my $available = $self->parmval("available", $part);
return ($useslots,$availablestudent,$available);
}
@@ -4541,7 +4573,7 @@ sub OPEN { return 1; }
sub PAST_DUE_NO_ANSWER { return 2; }
sub PAST_DUE_ANSWER_LATER { return 3; }
sub ANSWER_OPEN { return 4; }
-sub NOTHING_SET { return 5; }
+sub NOTHING_SET { return 5; }
sub NETWORK_FAILURE { return 100; }
# getDateStatus gets the date status for a given problem part.
@@ -4753,9 +4785,9 @@ An answer has been submitted, but the st
=cut
-sub TRIES_LEFT { return 20; }
-sub ANSWER_SUBMITTED { return 21; }
-sub PARTIALLY_CORRECT{ return 22; }
+sub TRIES_LEFT { return 20; }
+sub ANSWER_SUBMITTED { return 21; }
+sub PARTIALLY_CORRECT { return 22; }
sub RESERVED_LATER { return 30; }
sub RESERVED { return 31; }
@@ -4898,11 +4930,11 @@ sub check_for_slot {
if (!&Apache::loncommon::check_ip_acc($ip)) {
return (RESERVED_LOCATION,$ip,$slot_name);
}
- }
+ }
if (@proctors > 0) {
unless ((grep(/^\Q$checkedin\E/,@proctors)) &&
($checkedinslot eq $slot_name)) {
- return (NEEDS_CHECKIN,undef,$slot_name);
+ return (NEEDS_CHECKIN,undef,$slot_name);
}
}
return (RESERVED,$end,$slot_name);
@@ -4918,19 +4950,19 @@ sub check_for_slot {
my ($is_correct,$got_grade);
if ($self->is_task()) {
my $taskstatus = $self->taskstatus();
- $is_correct = (($taskstatus eq 'pass') ||
+ $is_correct = (($taskstatus eq 'pass') ||
($self->solved() =~ /^correct_/));
$got_grade = ($self->solved() =~ /^(?:pass|fail)$/);
} else {
$got_grade = 1;
- $is_correct = ($self->solved() =~ /^correct_/);
+ $is_correct = ($self->solved() =~ /^correct_/);
}
($checkedin,$checkedinslot) = $self->checkedin();
if ($checkedin) {
if (!$got_grade) {
return (WAITING_FOR_GRADE);
} elsif ($is_correct) {
- return (CORRECT);
+ return (CORRECT);
}
}
return(NOT_IN_A_SLOT);
|