version 1.3, 2002/08/08 13:44:17
|
version 1.9, 2003/05/21 16:26:46
|
Line 31 package Apache::lonannounce;
|
Line 31 package Apache::lonannounce;
|
use strict; |
use strict; |
use Apache::Constants qw(:common); |
use Apache::Constants qw(:common); |
use Apache::loncommon; |
use Apache::loncommon; |
|
use Apache::lonhtmlcommon(); |
|
|
sub readcalendar { |
sub readcalendar { |
my $courseid=shift; |
my $courseid=shift; |
Line 52 sub emptycell {
|
Line 53 sub emptycell {
|
|
|
sub normalcell { |
sub normalcell { |
my ($day,$text)=@_; |
my ($day,$text)=@_; |
return '<td><b>'.$day.'</b><br>'.$text.'</td>'; |
my $output=''; |
|
foreach (split(/\_\_\_\&\&\&\_\_\_/,$text)) { |
|
if ($_) { |
|
my ($courseid,$start,$end,@msg)=split(/\@/,$_); |
|
my $msg=join('@',@msg); |
|
my $fullmsg=$ENV{'course.'.$courseid.'.description'}.': '.$msg; |
|
if ($courseid eq $ENV{'request.course.id'}) { |
|
if (&Apache::lonnet::allowed('srm',$ENV{'request.course.id'})) { |
|
$output.='<input type="checkbox" name="remove_'.$start.'_'. |
|
$end.'">'; |
|
} |
|
} |
|
$output.='<a href="javascript:alert('."'$fullmsg'".')">'. |
|
substr($msg,0,20).'...</a><br>'; |
|
} |
|
} |
|
return '<td><b>'.$day.'</b><br>'.$output.'</td>'; |
} |
} |
|
|
sub nextday { |
sub nextday { |
Line 66 sub showday {
|
Line 83 sub showday {
|
my %th=&Apache::loncommon::timehash($tk); |
my %th=&Apache::loncommon::timehash($tk); |
my ($nextday,$nextmonth)=&nextday(%th); |
my ($nextday,$nextmonth)=&nextday(%th); |
my $outp=''; |
my $outp=''; |
|
my $oneday=24*3600; |
foreach (keys %allcal) { |
foreach (keys %allcal) { |
my ($course,$startdate,$enddate)=($_=~/^(\w+)\@(\d+)\_(\d+)$/); |
my ($course,$startdate,$enddate)=($_=~/^(\w+)\@(\d+)\_(\d+)$/); |
print $course.' '.localtime($startdate).' '.localtime($enddate). |
if (($startdate<$nextday) && ($enddate>$tk)) { |
localtime($tk).' '.localtime($nextday).'<br>'; |
$outp.='___&&&___'.$course.'@'.$startdate.'@'.$enddate.'@'. |
if (($startdate>$tk) && ($enddate<$nextday)) { |
$allcal{$_}; |
$outp.='___&&&___'.$course.'@'.$allcal{$_}; |
|
} |
} |
} |
} |
return ($nextday,$nextmonth,&normalcell($th{'day'},$outp)); |
return ($nextday,$nextmonth,&normalcell($th{'day'},$outp)); |
Line 90 sub handler {
|
Line 107 sub handler {
|
# ---------------------------------------------------------- Get month and year |
# ---------------------------------------------------------- Get month and year |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
['month','year']); |
['month','year']); |
# ----------------------------------------------------- Summarize all calendars |
|
my %allcal=(); |
|
foreach (&Apache::loncommon::findallcourses()) { |
|
%allcal=(%allcal,&readcalendar($_)); |
|
} |
|
# --------------------------------------------------- Decide what month to show |
# --------------------------------------------------- Decide what month to show |
my $year=$todayhash{'year'}; |
my $year=$todayhash{'year'}; |
if ($ENV{'form.year'}) { $year=$ENV{'form.year'}; } |
if ($ENV{'form.year'}) { $year=$ENV{'form.year'}; } |
Line 109 sub handler {
|
Line 121 sub handler {
|
'dlsav' => $todayhash{'dlsav'} )); |
'dlsav' => $todayhash{'dlsav'} )); |
my $weekday=$firstday{'weekday'}; |
my $weekday=$firstday{'weekday'}; |
# ------------------------------------------------------------ Print the screen |
# ------------------------------------------------------------ Print the screen |
|
|
$r->print(<<ENDDOCUMENT); |
$r->print(<<ENDDOCUMENT); |
<html> |
<html> |
<head> |
<head> |
<title>The LearningOnline Network with CAPA</title> |
<title>The LearningOnline Network with CAPA</title> |
<script> |
<script> |
function pclose() { |
|
parmwin=window.open("/adm/rat/empty.html","LONCAPAparms", |
|
"height=350,width=350,scrollbars=no,menubar=no"); |
|
parmwin.close(); |
|
} |
|
|
|
function pjump(type,dis,value,marker,ret,call) { |
|
parmwin=window.open("/adm/rat/parameter.html?type="+escape(type) |
|
+"&value="+escape(value)+"&marker="+escape(marker) |
|
+"&return="+escape(ret) |
|
+"&call="+escape(call)+"&name="+escape(dis),"LONCAPAparms", |
|
"height=350,width=350,scrollbars=no,menubar=no"); |
|
|
|
} |
|
|
|
function dateset() { |
|
if (document.anno.pres_marker.value=='end') { |
|
document.anno.enddate.value= |
|
document.anno.pres_value.value; |
|
} |
|
if (document.anno.pres_marker.value=='start') { |
|
document.anno.startdate.value= |
|
document.anno.pres_value.value; |
|
} |
|
pclose(); |
|
} |
|
|
|
function trysubmit() { |
function trysubmit() { |
if (document.anno.startdate.value=='') { |
|
alert("Announcements must have a starting date"); |
|
return ''; |
|
} |
|
if (document.anno.enddate.value=='') { |
|
alert("Announcements must have a starting date"); |
|
return ''; |
|
} |
|
if (document.anno.startdate.value>document.anno.enddate.value) { |
|
alert("Starting date is later than ending date"); |
|
return ''; |
|
} |
|
document.anno.action.value="new"; |
document.anno.action.value="new"; |
document.anno.submit(); |
document.anno.submit(); |
} |
} |
Line 164 sub handler {
|
Line 139 sub handler {
|
} |
} |
</script> |
</script> |
</head> |
</head> |
<body bgcolor="#FFFFFF"> |
|
<h1>Announcements</h1> |
|
ENDDOCUMENT |
ENDDOCUMENT |
|
$r->print(&Apache::loncommon::bodytag("Announcements and Calendar")); |
# does this user have privileges to post, etc? |
# does this user have privileges to post, etc? |
my $allowed=0; |
my $allowed=0; |
if ($ENV{'request.course.id'}) { |
if ($ENV{'request.course.id'}) { |
Line 179 ENDDOCUMENT
|
Line 152 ENDDOCUMENT
|
my $coursedom=$ENV{'course.'.$ENV{'request.course.id'}.'.domain'}; |
my $coursedom=$ENV{'course.'.$ENV{'request.course.id'}.'.domain'}; |
# ----------------------------------------------------- Store new submitted one |
# ----------------------------------------------------- Store new submitted one |
if ($ENV{'form.action'} eq 'new') { |
if ($ENV{'form.action'} eq 'new') { |
|
my $startdate = |
|
&Apache::lonhtmlcommon::get_date_from_form('startdate'); |
|
my $enddate = |
|
&Apache::lonhtmlcommon::get_date_from_form('enddate'); |
|
unless ($startdate=~/^\d+$/) { $startdate=time; } |
|
unless ($enddate=~/^\d+$/) { $enddate=$startdate+1; } |
|
if ($startdate>$enddate) { |
|
my $buffer=$startdate; |
|
$startdate=$enddate; |
|
$enddate=$buffer; |
|
} |
&Apache::lonnet::put('calendar',{ |
&Apache::lonnet::put('calendar',{ |
$ENV{'form.startdate'}.'_'.$ENV{'form.enddate'} => |
$startdate.'_'.$enddate => |
$ENV{'form.msg'} },$coursedom,$coursenum); |
$ENV{'form.msg'} },$coursedom,$coursenum); |
} |
} |
# ---------------------------------------------------------------- Remove items |
# ---------------------------------------------------------------- Remove items |
Line 198 ENDDOCUMENT
|
Line 182 ENDDOCUMENT
|
$tomorrowhash{'day'}++; |
$tomorrowhash{'day'}++; |
my $tomorrow=&Apache::loncommon::maketime(%tomorrowhash); |
my $tomorrow=&Apache::loncommon::maketime(%tomorrowhash); |
|
|
|
# Deal with date forms |
|
my $startdateform = &Apache::lonhtmlcommon::date_setter('anno', |
|
'startdate', |
|
$today); |
|
my $enddateform = &Apache::lonhtmlcommon::date_setter('anno', |
|
'enddate', |
|
$tomorrow); |
|
# |
|
|
$r->print(<<ENDFORM); |
$r->print(<<ENDFORM); |
<form name="anno" method="post"> |
<form name="anno" method="post"> |
<input type="hidden" value='' name="action" > |
<input type="hidden" value='' name="action" > |
<input type="hidden" value='' name="pres_value" > |
<table><tr><td>Starting date:</td><td>$startdateform</td></tr> |
<input type="hidden" value='' name="pres_type" > |
<tr><td>Ending date:</td><td>$enddateform</td></tr></table> |
<input type="hidden" value='' name="pres_marker" > |
|
<input type="hidden" value='$today' name="startdate" > |
|
<input type="hidden" value='$tomorrow' name="enddate" > |
|
<a |
|
href="javascript:pjump('date_start','Starting Date',document.anno.startdate.value,'start','anno.pres','dateset');" |
|
>Set Starting Date</a> |
|
<a |
|
href="javascript:pjump('date_end','Ending Date',document.anno.enddate.value,'end','anno.pres','dateset');" |
|
>Set Ending Date</a><p> |
|
<textarea name="msg" rows="4" cols="60"> |
<textarea name="msg" rows="4" cols="60"> |
</textarea> |
</textarea> |
<input type="button" onClick="trysubmit()" value="Post Announcement"><hr> |
<input type="button" onClick="trysubmit()" value="Post Announcement"><hr> |
<input type="button" onClick="removesub()" value="Remove Marked"><hr> |
|
ENDFORM |
ENDFORM |
} |
} |
|
# ----------------------------------------------------- Summarize all calendars |
|
my %allcal=(); |
|
foreach (&Apache::loncommon::findallcourses()) { |
|
%allcal=(%allcal,&readcalendar($_)); |
|
} |
|
|
|
# ------------------------------- Initialize table and forward backward buttons |
my ($pm,$py,$fm,$fy)=($month-1,$year,$month+1,$year); |
my ($pm,$py,$fm,$fy)=($month-1,$year,$month+1,$year); |
if ($pm<1) { ($pm,$py)=(12,$year-1); } |
if ($pm<1) { ($pm,$py)=(12,$year-1); } |
if ($fm>12){ ($fm,$fy)=(1,$year+1); } |
if ($fm>12){ ($fm,$fy)=(1,$year+1); } |
Line 227 ENDFORM
|
Line 217 ENDFORM
|
'<a href="/adm/announcements?month='.$pm.'&year='.$py.'">Previous Month</a> '. |
'<a href="/adm/announcements?month='.$pm.'&year='.$py.'">Previous Month</a> '. |
'<a href="/adm/announcements?month='.$fm.'&year='.$fy.'">Next Month</a><p>'. |
'<a href="/adm/announcements?month='.$fm.'&year='.$fy.'">Next Month</a><p>'. |
'<table border="2" cols="7" rows="5"><tr><th>Sun</th><th>Mon</th>'. |
'<table border="2" cols="7" rows="5"><tr><th>Sun</th><th>Mon</th>'. |
'<th>Tue</th><th>Wed</th><th>Thu</th><th>Fri</th><th>Sat</th>'); |
'<th>Tue</th><th>Wed</th><th>Thu</th><th>Fri</th><th>Sat</th></tr>'); |
|
|
my $tk=&Apache::loncommon::maketime(%firstday); |
my $tk=&Apache::loncommon::maketime(%firstday); |
my $outp; |
my $outp; |
Line 252 ENDFORM
|
Line 242 ENDFORM
|
$r->print('</tr>'); |
$r->print('</tr>'); |
} |
} |
# ------------------------------------------------------------------- End table |
# ------------------------------------------------------------------- End table |
if ($allowed) { $r->print('</form>'); } |
$r->print('</table>'); |
$r->print('</table><p>'. |
if ($allowed) { $r->print('<input type="button" onClick="removesub()" value="Remove Checked Entries"></form>'); } |
|
$r->print('<p>'. |
'<a href="/adm/announcements?month='.$pm.'&year='.$py.'">Previous Month</a> '. |
'<a href="/adm/announcements?month='.$pm.'&year='.$py.'">Previous Month</a> '. |
'<a href="/adm/announcements?month='.$fm.'&year='.$fy.'">Next Month</a><p>'. |
'<a href="/adm/announcements?month='.$fm.'&year='.$fy.'">Next Month</a><p>'. |
'</body></html>'); |
'</body></html>'); |