--- loncom/interface/lonannounce.pm 2004/01/15 01:43:43 1.25 +++ loncom/interface/lonannounce.pm 2004/02/17 01:36:14 1.26 @@ -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.26 2004/02/17 01:36:14 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,11 @@ 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); + } + $fullmsg.=': '.$msg; $fullmsg=&HTML::Entities::encode($fullmsg,'<>&"\''); $fullmsg=~s/&/\\&/g; $output.=''. @@ -135,7 +178,12 @@ sub listcell { if ($_) { my ($courseid,$start,$end,@msg)=split(/\@/,$_); my $msg=join('@',@msg); - my $fullmsg=localtime($start).' to '.localtime($end).':
'. + my $fullmsg=&Apache::lonlocal::locallocaltime($start); + if ($start!=$end) { + $fullmsg.=&mt(' to '). + &Apache::lonlocal::locallocaltime($end); + } + $fullmsg.=':
'. $msg.''; $output.='
  • '.$fullmsg.'
  • '; }