--- loncom/interface/lonnavmaps.pm 2003/09/17 18:15:54 1.229
+++ loncom/interface/lonnavmaps.pm 2004/02/24 19:14:42 1.249
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Navigate Maps Handler
#
-# $Id: lonnavmaps.pm,v 1.229 2003/09/17 18:15:54 www Exp $
+# $Id: lonnavmaps.pm,v 1.249 2004/02/24 19:14:42 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -25,20 +25,7 @@
#
# http://www.lon-capa.org/
#
-# (Page Handler
-#
-# (TeX Content Handler
-#
-# 05/29/00,05/30 Gerd Kortemeyer)
-# 08/30,08/31,09/06,09/14,09/15,09/16,09/19,09/20,09/21,09/23,
-# 10/02,10/10,10/14,10/16,10/18,10/19,10/31,11/6,11/14,11/16 Gerd Kortemeyer)
-#
-# 3/1/1,6/1,17/1,29/1,30/1,2/8,9/21,9/24,9/25 Gerd Kortemeyer
-# YEAR=2002
-# 1/1 Gerd Kortemeyer
-# Oct-Nov Jeremy Bowers
-# YEAR=2003
-# Jeremy Bowers ... lots of days
+###
package Apache::lonnavmaps;
@@ -107,9 +94,9 @@ sub real_handler {
# Handle header-only request
if ($r->header_only) {
if ($ENV{'browser.mathml'}) {
- $r->content_type('text/xml');
+ &Apache::loncommon::content_type($r,'text/xml');
} else {
- $r->content_type('text/html');
+ &Apache::loncommon::content_type($r,'text/html');
}
$r->send_http_header;
return OK;
@@ -117,9 +104,9 @@ sub real_handler {
# Send header, don't cache this page
if ($ENV{'browser.mathml'}) {
- $r->content_type('text/xml');
+ &Apache::loncommon::content_type($r,'text/xml');
} else {
- $r->content_type('text/html');
+ &Apache::loncommon::content_type($r,'text/html');
}
&Apache::loncommon::no_cache($r);
$r->send_http_header;
@@ -127,7 +114,6 @@ sub real_handler {
# Create the nav map
my $navmap = Apache::lonnavmaps::navmap->new();
-
if (!defined($navmap)) {
my $requrl = $r->uri;
$ENV{'user.error.msg'} = "$requrl:bre:0:0:Course not initialized";
@@ -304,8 +290,16 @@ sub getLinkForResource {
# Check to see if there are any pages in the stack
foreach $res (@$stack) {
- if (defined($res) && $res->is_page()) {
- return $res->src();
+ if (defined($res)) {
+ if ($res->is_page()) {
+ return $res->src();
+ }
+ # in case folder was skipped over as "only sequence"
+ my ($map,$id,$src)=&Apache::lonnet::decode_symb($res->symb());
+ if ($map=~/\.page$/) {
+ return &Apache::lonnet::clutter($map).'#'.
+ &Apache::lonnet::escape(&Apache::lonnet::declutter($src));
+ }
}
}
@@ -372,7 +366,7 @@ sub getDescription {
$triesString = "$triesString";
}
}
- if ($res->duedate()) {
+ if ($res->duedate($part)) {
return &mt("Due")." " . timeToHumanString($res->duedate($part)) .
" $triesString";
} else {
@@ -394,8 +388,8 @@ sub dueInLessThen24Hours {
return ($status == $res->OPEN() ||
$status == $res->TRIES_LEFT()) &&
- $res->duedate() && $res->duedate() < time()+(24*60*60) &&
- $res->duedate() > time();
+ $res->duedate($part) && $res->duedate($part) < time()+(24*60*60) &&
+ $res->duedate($part) > time();
}
# Convenience function, so others can use it: Is there only one try remaining for the
@@ -407,8 +401,8 @@ sub lastTry {
my $tries = $res->tries($part);
my $maxtries = $res->maxtries($part);
return $tries && $maxtries && $maxtries > 1 &&
- $maxtries - $tries == 1 && $res->duedate() &&
- $res->duedate() > time();
+ $maxtries - $tries == 1 && $res->duedate($part) &&
+ $res->duedate($part) > time();
}
# This puts a human-readable name on the ENV variable.
@@ -432,8 +426,8 @@ sub timeToHumanString {
if (!$time) {
return &mt('never');
}
- unless (&Apache::loncommon::current_language()=~/^en/) {
- return localtime($time);
+ unless (&Apache::lonlocal::current_language()=~/^en/) {
+ return &Apache::lonlocal::locallocaltime($time);
}
my $now = time();
@@ -502,7 +496,7 @@ sub timeToHumanString {
# HH:MM
if ( $delta < $day * 5 ) {
my $timeStr = strftime("%A, %b %e at %I:%M %P", localtime($time));
- $timeStr =~ s/12:00 am/midnight/;
+ $timeStr =~ s/12:00 am/00:00/;
$timeStr =~ s/12:00 pm/noon/;
return ($inPast ? "last " : "next ") .
$timeStr;
@@ -512,14 +506,14 @@ sub timeToHumanString {
if ( $time[5] == $now[5]) {
# Return on Month Day, HH:MM meridian
my $timeStr = strftime("on %A, %b %e at %I:%M %P", localtime($time));
- $timeStr =~ s/12:00 am/midnight/;
+ $timeStr =~ s/12:00 am/00:00/;
$timeStr =~ s/12:00 pm/noon/;
return $timeStr;
}
# Not this year, so show the year
my $timeStr = strftime("on %A, %b %e %G at %I:%M %P", localtime($time));
- $timeStr =~ s/12:00 am/midnight/;
+ $timeStr =~ s/12:00 am/00:00/;
$timeStr =~ s/12:00 pm/noon/;
return $timeStr;
}
@@ -896,12 +890,8 @@ sub render_resource {
$icon = $params->{'indentString'};
}
} else {
- my $curfext= (split (/\./,$resource->src))[-1];
- my $embstyle = &Apache::loncommon::fileembstyle($curfext);
- # The unless conditional that follows is a bit of overkill
- if (!(!defined($embstyle) || $embstyle eq 'unk' || $embstyle eq 'hdn')) {
- $icon = "";
- }
+ $icon = "
";
}
# Display the correct map icon to open or shut map
@@ -971,7 +961,11 @@ sub render_resource {
if ($resource->is_problem() && $part ne '0' &&
!$params->{'condensed'}) {
- $partLabel = " (Part $part)";
+ my $displaypart=&Apache::lonnet::EXT('resource.'.$part.'.display',
+ $resource->symb());
+ unless ($displaypart) { $displaypart=$part; }
+ $partLabel = " (Part: $displaypart)";
+ $link.='#'.&Apache::lonnet::escape($part);
$title = "";
}
@@ -1331,15 +1325,15 @@ sub render {
$result.='
'.
+ ' '.&mt('New message (click to open)').'
'. '