--- loncom/interface/lonannounce.pm 2003/07/10 10:27:04 1.16 +++ loncom/interface/lonannounce.pm 2003/09/02 21:15:59 1.18 @@ -1,7 +1,7 @@ # The LearningOnline Network # Announce # -# $Id: lonannounce.pm,v 1.16 2003/07/10 10:27:04 www Exp $ +# $Id: lonannounce.pm,v 1.18 2003/09/02 21:15:59 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -185,12 +185,16 @@ sub handler { undef %showedcheck; # ---------------------------------------------------------- Get month and year &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, - ['month','year']); + ['month','year','pickdate']); # --------------------------------------------------- Decide what month to show my $year=$todayhash{'year'}; if ($ENV{'form.year'}) { $year=$ENV{'form.year'}; } my $month=$todayhash{'month'}; if ($ENV{'form.month'}) { $month=$ENV{'form.month'}; } + +# ---------------------------------------------- See if we are in pickdate mode + my $pickdatemode=($ENV{'form.pickdate'} eq 'yes'); + # --------------------------------------------- Find out first day of the month my %firstday=&Apache::loncommon::timehash( @@ -219,13 +223,62 @@ sub handler { ENDDOCUMENT - $r->print(&Apache::loncommon::bodytag("Announcements and Calendar")); + if ($pickdatemode) { +# no big header in pickdate mode + $r->print(&Apache::loncommon::bodytag("Pick a Date",'','',1). + ''); + } else { + $r->print(&Apache::loncommon::bodytag("Announcements and Calendar")); + } # does this user have privileges to post, etc? my $allowed=0; if ($ENV{'request.course.id'}) { $allowed=&Apache::lonnet::allowed('srm',$ENV{'request.course.id'}); } - +# does this user have privileges to post to servers? + my $serverpost=0; + if ($ENV{'request.role.domain'}) { + $serverpost=&Apache::lonnet::allowed('psa', + $ENV{'request.role.domain'}); + } else { + $serverpost=&Apache::lonnet::allowed('psa','/'); + } +# -------------------------------- BUT: do no fancy stuff when in pickdate mode + if ($pickdatemode) { + $serverpost=0; + $allowed=0; + } +# ------------------------------------------------------------ Process commands + if ($serverpost) { + if ($ENV{'form.serveraction'}) { + foreach (keys %ENV) { + if ($_=~/^form\.postto\_(\w+)/) { + $r->print( + '
Posting '.$1.': '.&Apache::lonnet::postannounce + ($1,$ENV{'form.serverannnounce'})); + } + } + } + $r->print(< +

Post Server Announcements

+Post announcements to the system login and roles screen
+(leave blank to delete announcement)
+
+Check machines:
+SERVERANNOUNCE +# list servers + foreach (sort keys %Apache::lonnet::hostname) { + if (&Apache::lonnet::allowed('psa',$Apache::lonnet::hostdom{$_})) { + $r->print ('
'. + $_.' '.$Apache::lonnet::hostname{$_}.' '. + 'current'); + } + } + $r->print( + '

'); + } if ($allowed) { my $coursenum=$ENV{'course.'.$ENV{'request.course.id'}.'.num'}; my $coursedom=$ENV{'course.'.$ENV{'request.course.id'}.'.domain'}; @@ -285,10 +338,13 @@ ENDDOCUMENT return OK; } $r->print( - 'Previous Month '. - 'Next Month'. + 'Previous Month '. + 'Next Month'. '   Current Month

'. + '&year='.$todayhash{'year'}. + ($pickdatemode?'&pickdate=yes':'').'">Current Month

'. ''. ''); @@ -322,10 +378,14 @@ ENDDOCUMENT # --------------------------------------------------------------- Remove button if ($allowed) { $r->print(''); } $r->print('

'. - 'Previous Month '. - 'Next Month'. + 'Previous Month '. + 'Next Month'. '   Current Month

'. + '&year='.$todayhash{'year'}. + ($pickdatemode?'&pickdate=yes':'').'">Current Month

'. + ($pickdatemode?'':''). ''); return OK; }
SunMonTueWedThuFriSat