--- loncom/interface/lonannounce.pm 2004/08/17 15:38:58 1.30 +++ loncom/interface/lonannounce.pm 2005/11/18 13:35:30 1.37 @@ -1,7 +1,7 @@ # The LearningOnline Network # Announce # -# $Id: lonannounce.pm,v 1.30 2004/08/17 15:38:58 www Exp $ +# $Id: lonannounce.pm,v 1.37 2005/11/18 13:35:30 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -33,6 +33,8 @@ use Apache::Constants qw(:common); use Apache::loncommon; use Apache::lonhtmlcommon(); use Apache::lonlocal; +use Apache::lonrss(); +use Apache::lonnet; use HTML::Entities(); my %todayhash; @@ -48,21 +50,28 @@ sub editfield { 'enddate', $end); my $help=&Apache::loncommon::help_open_menu('','Calendar Add Announcement','Calendar_Add_Announcement','',274,'Communication Tools'); + my %lt=&Apache::lonlocal::texthash('post' => 'Post Announcement', + 'start' => 'Starting date', + 'end' => 'Ending date', + 'incrss' => 'Include in course RSS newsfeed'); + $r->print(< - - -
Starting date:$startdateform
Ending date:$enddateform
+ + +
$lt{'start'}:$startdateform
$lt{'end'}:$enddateform
-
+
+ +

ENDFORM } sub readcalendar { my $courseid=shift; - my $coursenum=$ENV{'course.'.$courseid.'.num'}; - my $coursedom=$ENV{'course.'.$courseid.'.domain'}; + my $coursenum=$env{'course.'.$courseid.'.num'}; + my $coursedom=$env{'course.'.$courseid.'.domain'}; my %thiscal=&Apache::lonnet::dump('calendar',$coursedom,$coursenum); my %returnhash=(); foreach (keys %thiscal) { @@ -70,7 +79,7 @@ sub readcalendar { $returnhash{$courseid.'@'.$_}=$thiscal{$_}; } } - if ($courseid eq $ENV{'request.course.id'}) { + if ($courseid eq $env{'request.course.id'}) { my %resourcedata= &Apache::lonnet::dump('resourcedata',$coursedom,$coursenum); foreach my $thiskey (sort keys %resourcedata) { @@ -79,6 +88,13 @@ sub readcalendar { ($thiskey=~/^(\w+)\.(?:(.+)\.)*([\w\s]+)\.(\w+)$/); my $section=&mt('All Students'); if ($middle=~/^\[(.*)\]\./) { + my $sec=$1; + # if we have a section don't show ones that aren't ours + if ($env{'request.course.sec'} && + $env{'request.course.sec'} ne $sec) { next; } + # if a student without a section don't show any section ones + if (!$env{'request.role.adv'} && + !$env{'request.course.sec'}) { next; } $section=&mt('Group/Section').': '.$1; $middle=~s/^\[(.*)\]\.//; } @@ -135,22 +151,23 @@ sub normalcell { $msg=~s/INTERNAL\://gs; $internalflag=1; } - my $fullmsg=$ENV{'course.'.$courseid.'.description'}. - ', '.&Apache::lonlocal::locallocaltime($start); + my $fullmsg=&mt('Calendar Announcement for ').$env{'course.'.$courseid.'.description'}. + '\n'.&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'})) + $fullmsg.=':\n'.$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; } } + $fullmsg=~s/[\n\r]/\\n/gs; $fullmsg=&HTML::Entities::encode($fullmsg,'<>&"\''); $fullmsg=~s/&/\\&/g; $output.=''. @@ -171,17 +188,18 @@ sub plaincell { if ($_) { my ($courseid,$start,$end,@msg)=split(/\@/,$_); my $msg=join('@',@msg); - my $fullmsg=$ENV{'course.'.$courseid.'.description'}. - ', '.&Apache::lonlocal::locallocaltime($start); + my $fullmsg=&mt('Calendar Announcement for ').$env{'course.'.$courseid.'.description'}. + '\n'.&Apache::lonlocal::locallocaltime($start); if ($start!=$end) { $fullmsg.=' - '.&Apache::lonlocal::locallocaltime($end); } $msg=~s/INTERNAL\://gs; - $fullmsg.=': '.$msg; + $fullmsg.=':\n'.$msg; + $fullmsg=~s/[\n\r]/\\n/gs; $fullmsg=&HTML::Entities::encode($fullmsg,'<>&"\''); $fullmsg=~s/&/\\&/g; $output.=''. - substr($msg,0,40).'...
'; + substr($msg,0,80).'...
'; } } return $output; @@ -247,7 +265,7 @@ sub showday { sub tfont { my $text=shift; - if ($ENV{'form.pickdate'} eq 'yes') { + if ($env{'form.pickdate'} eq 'yes') { return ''.$text.''; } else { return $text; @@ -256,7 +274,7 @@ sub tfont { sub picklink { my ($text,$day,$month,$year)=@_; - if ($ENV{'form.pickdate'} eq 'yes') { + if ($env{'form.pickdate'} eq 'yes') { return ''. $text.''; } else { @@ -268,14 +286,14 @@ sub dialscript { return (< function dialin(day,month,year) { - opener.document.$ENV{'form.formname'}.$ENV{'form.element'}\_year.value=year; - var slct=opener.document.$ENV{'form.formname'}.$ENV{'form.element'}\_month; + opener.document.$env{'form.formname'}.$env{'form.element'}\_year.value=year; + var slct=opener.document.$env{'form.formname'}.$env{'form.element'}\_month; var i; for (i=0;i @@ -299,14 +317,14 @@ sub handler { ['month','year','pickdate','formname','element']); # --------------------------------------------------- Decide what month to show my $year=$todayhash{'year'}; - if ($ENV{'form.year'}) { $year=$ENV{'form.year'}; } + if ($env{'form.year'}) { $year=$env{'form.year'}; } my $month=$todayhash{'month'}; - if ($ENV{'form.month'}) { $month=$ENV{'form.month'}; } + if ($env{'form.month'}) { $month=$env{'form.month'}; } # ---------------------------------------------- See if we are in pickdate mode - my $pickdatemode=($ENV{'form.pickdate'} eq 'yes'); - my $pickinfo='&pickdate=yes&formname='.$ENV{'form.formname'}. - '&element='.$ENV{'form.element'}; + my $pickdatemode=($env{'form.pickdate'} eq 'yes'); + my $pickinfo='&pickdate=yes&formname='.$env{'form.formname'}. + '&element='.$env{'form.element'}; # --------------------------------------------- Find out first day of the month my %firstday=&Apache::loncommon::timehash( @@ -316,9 +334,9 @@ sub handler { 'dlsav' => -1 )); my $weekday=$firstday{'weekday'}; # ------------------------------------------------------------ Print the screen - + my $html=&Apache::lonxml::xmlbegin(); $r->print(< +$html The LearningOnline Network with CAPA