--- loncom/interface/lonannounce.pm 2004/01/15 01:43:43 1.25
+++ loncom/interface/lonannounce.pm 2004/02/17 01:46:34 1.27
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Announce
#
-# $Id: lonannounce.pm,v 1.25 2004/01/15 01:43:43 www Exp $
+# $Id: lonannounce.pm,v 1.27 2004/02/17 01:46:34 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -72,6 +72,35 @@ sub readcalendar {
$returnhash{$courseid.'@'.$_}=$thiscal{$_};
}
}
+ if ($courseid eq $ENV{'request.course.id'}) {
+ my %resourcedata=
+ &Apache::lonnet::dump('resourcedata',$coursedom,$coursenum);
+ foreach my $thiskey (sort keys %resourcedata) {
+ if ($resourcedata{$thiskey.'.type'}=~/^date/) {
+ my ($course,$middle,$part,$name)=
+ ($thiskey=~/^(\w+)\.(?:(.+)\.)*([\w\s]+)\.(\w+)$/);
+ my $section=&mt('All Students');
+ if ($middle=~/^\[(.*)\]\./) {
+ $section=&mt('Group/Section').': '.$1;
+ $middle=~s/^\[(.*)\]\.//;
+ }
+ $middle=~s/\.$//;
+ my $realm=&mt('All Resources');
+ if ($middle=~/^(.+)\_\_\_\(all\)$/) {
+ $realm=&mt('Folder/Map').': '.&Apache::lonnet::gettitle($1);
+ } elsif ($middle) {
+ $realm=&mt('Resource').': '.&Apache::lonnet::gettitle($middle);
+ }
+ my $datetype='';
+ if ($name eq 'duedate') { $datetype=&mt('Due'); }
+ if ($name eq 'opendate') { $datetype=&mt('Opening'); }
+ if ($name eq 'answerdate') { $datetype=&mt('Answer Available'); }
+ $returnhash{$courseid.'@'.$resourcedata{$thiskey}.'_'.
+ $resourcedata{$thiskey}}=
+ 'INTERNAL:'.$datetype.': '.$realm.' ('.$section.')';
+ }
+ }
+ }
return %returnhash;
}
@@ -84,14 +113,24 @@ sub normalcell {
my $output='';
foreach (split(/\_\_\_\&\&\&\_\_\_/,$text)) {
if ($_) {
+ my $internalflag=0;
my ($courseid,$start,$end,@msg)=split(/\@/,$_);
my $msg=join('@',@msg);
+ if ($msg=~/INTERNAL\:/) {
+ $msg=~s/INTERNAL\://gs;
+ $internalflag=1;
+ }
my $fullmsg=$ENV{'course.'.$courseid.'.description'}.
- ', '.&Apache::lonlocal::locallocaltime($start).' - '.&Apache::lonlocal::locallocaltime($end).': '.$msg;
+ ', '.&Apache::lonlocal::locallocaltime($start);
+ if ($start!=$end) {
+ $fullmsg.=' - '.&Apache::lonlocal::locallocaltime($end);
+ }
+ $fullmsg.=': '.$msg;
if ($courseid eq $ENV{'request.course.id'}) {
if ((&Apache::lonnet::allowed('srm',$ENV{'request.course.id'}))
&& (!$showedcheck{$start.'_'.$end})
- && ($ENV{'form.pickdate'} ne 'yes')) {
+ && ($ENV{'form.pickdate'} ne 'yes')
+ && (!$internalflag)) {
$output.='';
$showedcheck{$start.'_'.$end}=1;
@@ -118,7 +157,12 @@ sub plaincell {
my ($courseid,$start,$end,@msg)=split(/\@/,$_);
my $msg=join('@',@msg);
my $fullmsg=$ENV{'course.'.$courseid.'.description'}.
- ', '.localtime($start).' - '.localtime($end).': '.$msg;
+ ', '.&Apache::lonlocal::locallocaltime($start);
+ if ($start!=$end) {
+ $fullmsg.=' - '.&Apache::lonlocal::locallocaltime($end);
+ }
+ $msg=~s/INTERNAL\://gs;
+ $fullmsg.=': '.$msg;
$fullmsg=&HTML::Entities::encode($fullmsg,'<>&"\'');
$fullmsg=~s/&/\\&/g;
$output.=''.
@@ -135,7 +179,13 @@ sub listcell {
if ($_) {
my ($courseid,$start,$end,@msg)=split(/\@/,$_);
my $msg=join('@',@msg);
- my $fullmsg=localtime($start).' to '.localtime($end).':
'.
+ $msg=~s/INTERNAL\://gs;
+ my $fullmsg=&Apache::lonlocal::locallocaltime($start);
+ if ($start!=$end) {
+ $fullmsg.=&mt(' to ').
+ &Apache::lonlocal::locallocaltime($end);
+ }
+ $fullmsg.=':
'.
$msg.'';
$output.=''.$fullmsg.'';
}
@@ -154,7 +204,11 @@ sub showday {
my %th=&Apache::loncommon::timehash($tk);
my ($nextday,$nextmonth)=&nextday(%th);
my $outp='';
- my $oneday=24*3600;
+ if ($mode) {
+ my $oneday=24*3600;
+ $tk-=$oneday;
+ $nextday+=$oneday;
+ }
foreach (keys %allcal) {
my ($course,$startdate,$enddate)=($_=~/^(\w+)\@(\d+)\_(\d+)$/);
if (($startdate<$nextday) && ($enddate>$tk)) {