version 1.19, 2003/09/03 01:53:46
|
version 1.27, 2004/02/17 01:46:34
|
Line 32 use strict;
|
Line 32 use strict;
|
use Apache::Constants qw(:common); |
use Apache::Constants qw(:common); |
use Apache::loncommon; |
use Apache::loncommon; |
use Apache::lonhtmlcommon(); |
use Apache::lonhtmlcommon(); |
|
use Apache::lonlocal; |
use HTML::Entities(); |
use HTML::Entities(); |
|
|
my %todayhash; |
my %todayhash; |
Line 46 sub editfield {
|
Line 47 sub editfield {
|
my $enddateform = &Apache::lonhtmlcommon::date_setter('anno', |
my $enddateform = &Apache::lonhtmlcommon::date_setter('anno', |
'enddate', |
'enddate', |
$end); |
$end); |
|
my $help=&Apache::loncommon::help_open_topic('Calendar_Add_Announcement'). |
|
&Apache::loncommon::help_open_faq(274). |
|
&Apache::loncommon::help_open_bug('Communication Tools'); |
$r->print(<<ENDFORM); |
$r->print(<<ENDFORM); |
|
$help |
<form name="anno" method="post"> |
<form name="anno" method="post"> |
<input type="hidden" value='' name="action" > |
<input type="hidden" value='' name="action" > |
<table><tr><td>Starting date:</td><td>$startdateform</td></tr> |
<table><tr><td>Starting date:</td><td>$startdateform</td></tr> |
<tr><td>Ending date:</td><td>$enddateform</td></tr></table> |
<tr><td>Ending date:</td><td>$enddateform</td></tr></table> |
<textarea name="msg" rows="4" cols="60">$text</textarea> |
<textarea name="msg" rows="4" cols="60">$text</textarea> |
<input type="button" onClick="trysubmit()" value="Post Announcement"><hr> |
<input type="button" onClick="trysubmit()" value="Post Announcement"><hr /> |
ENDFORM |
ENDFORM |
} |
} |
|
|
Line 68 sub readcalendar {
|
Line 72 sub readcalendar {
|
$returnhash{$courseid.'@'.$_}=$thiscal{$_}; |
$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; |
return %returnhash; |
} |
} |
|
|
Line 80 sub normalcell {
|
Line 113 sub normalcell {
|
my $output=''; |
my $output=''; |
foreach (split(/\_\_\_\&\&\&\_\_\_/,$text)) { |
foreach (split(/\_\_\_\&\&\&\_\_\_/,$text)) { |
if ($_) { |
if ($_) { |
|
my $internalflag=0; |
my ($courseid,$start,$end,@msg)=split(/\@/,$_); |
my ($courseid,$start,$end,@msg)=split(/\@/,$_); |
my $msg=join('@',@msg); |
my $msg=join('@',@msg); |
|
if ($msg=~/INTERNAL\:/) { |
|
$msg=~s/INTERNAL\://gs; |
|
$internalflag=1; |
|
} |
my $fullmsg=$ENV{'course.'.$courseid.'.description'}. |
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; |
if ($courseid eq $ENV{'request.course.id'}) { |
if ($courseid eq $ENV{'request.course.id'}) { |
if ((&Apache::lonnet::allowed('srm',$ENV{'request.course.id'})) |
if ((&Apache::lonnet::allowed('srm',$ENV{'request.course.id'})) |
&& (!$showedcheck{$start.'_'.$end}) |
&& (!$showedcheck{$start.'_'.$end}) |
&& ($ENV{'form.pickdate'} ne 'yes')) { |
&& ($ENV{'form.pickdate'} ne 'yes') |
|
&& (!$internalflag)) { |
$output.='<input type="checkbox" name="remove_'.$start.'_'. |
$output.='<input type="checkbox" name="remove_'.$start.'_'. |
$end.'">'; |
$end.'">'; |
$showedcheck{$start.'_'.$end}=1; |
$showedcheck{$start.'_'.$end}=1; |
Line 114 sub plaincell {
|
Line 157 sub plaincell {
|
my ($courseid,$start,$end,@msg)=split(/\@/,$_); |
my ($courseid,$start,$end,@msg)=split(/\@/,$_); |
my $msg=join('@',@msg); |
my $msg=join('@',@msg); |
my $fullmsg=$ENV{'course.'.$courseid.'.description'}. |
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=&HTML::Entities::encode($fullmsg,'<>&"\''); |
$fullmsg=~s/&/\\&/g; |
$fullmsg=~s/&/\\&/g; |
$output.='<a href="javascript:alert('."'$fullmsg'".')">'. |
$output.='<a href="javascript:alert('."'$fullmsg'".')">'. |
Line 131 sub listcell {
|
Line 179 sub listcell {
|
if ($_) { |
if ($_) { |
my ($courseid,$start,$end,@msg)=split(/\@/,$_); |
my ($courseid,$start,$end,@msg)=split(/\@/,$_); |
my $msg=join('@',@msg); |
my $msg=join('@',@msg); |
my $fullmsg=localtime($start).' to '.localtime($end).':<br /><b>'. |
$msg=~s/INTERNAL\://gs; |
|
my $fullmsg=&Apache::lonlocal::locallocaltime($start); |
|
if ($start!=$end) { |
|
$fullmsg.=&mt(' to '). |
|
&Apache::lonlocal::locallocaltime($end); |
|
} |
|
$fullmsg.=':<br /><b>'. |
$msg.'</b>'; |
$msg.'</b>'; |
$output.='<li>'.$fullmsg.'</li>'; |
$output.='<li>'.$fullmsg.'</li>'; |
} |
} |
Line 150 sub showday {
|
Line 204 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; |
if ($mode) { |
|
my $oneday=24*3600; |
|
$tk-=$oneday; |
|
$nextday+=$oneday; |
|
} |
foreach (keys %allcal) { |
foreach (keys %allcal) { |
my ($course,$startdate,$enddate)=($_=~/^(\w+)\@(\d+)\_(\d+)$/); |
my ($course,$startdate,$enddate)=($_=~/^(\w+)\@(\d+)\_(\d+)$/); |
if (($startdate<$nextday) && ($enddate>$tk)) { |
if (($startdate<$nextday) && ($enddate>$tk)) { |
Line 211 ENDDIA
|
Line 269 ENDDIA
|
|
|
sub handler { |
sub handler { |
my $r = shift; |
my $r = shift; |
$r->content_type('text/html'); |
&Apache::loncommon::content_type($r,'text/html'); |
$r->send_http_header; |
$r->send_http_header; |
return OK if $r->header_only; |
return OK if $r->header_only; |
|
|
Line 367 SERVERANNOUNCE
|
Line 425 SERVERANNOUNCE
|
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); } |
|
|
$r->print('<h1>'.('','January','February','March','April','May', |
$r->print('<h1>'.('',&mt('January'),&mt('February'),&mt('March'), |
'June','July','August','September','October', |
&mt('April'),&mt('May'), |
'November','December')[$month].' '.$year.'</h1>'); |
&mt('June'),&mt('July'),&mt('August'), |
|
&mt('September'),&mt('October'), |
|
&mt('November'),&mt('December'))[$month].' '. |
|
$year.'</h1>'); |
# Reached the end of times, give up |
# Reached the end of times, give up |
if (($year<1970) || ($year>2037)) { |
if (($year<1970) || ($year>2037)) { |
$r->print('<h3>No calendar available for this date.</h3>'. |
$r->print('<h3>No calendar available for this date.</h3>'. |
Line 379 SERVERANNOUNCE
|
Line 440 SERVERANNOUNCE
|
} |
} |
$r->print( |
$r->print( |
'<a href="/adm/announcements?month='.$pm.'&year='.$py. |
'<a href="/adm/announcements?month='.$pm.'&year='.$py. |
($pickdatemode?$pickinfo:'').'">Previous Month</a> '. |
($pickdatemode?$pickinfo:'').'">'.&mt('Previous Month').'</a> '. |
'<a href="/adm/announcements?month='.$fm.'&year='.$fy. |
'<a href="/adm/announcements?month='.$fm.'&year='.$fy. |
($pickdatemode?$pickinfo:'').'">Next Month</a>'. |
($pickdatemode?$pickinfo:'').'">'.&mt('Next Month').'</a>'. |
' <a href="/adm/announcements?month='.$todayhash{'month'}. |
' <a href="/adm/announcements?month='.$todayhash{'month'}. |
'&year='.$todayhash{'year'}. |
'&year='.$todayhash{'year'}. |
($pickdatemode?$pickinfo:'').'">Current Month</a><p>'. |
($pickdatemode?$pickinfo:'').'">'.&mt('Current Month').'</a><p>'. |
'<table border="2" cols="7" rows="5"><tr><th>'. |
'<table border="2" cols="7" rows="5"><tr><th>'. |
&tfont('Sun') |
&tfont(&mt('Sun')) |
.'</th><th>'. |
.'</th><th>'. |
&tfont('Mon') |
&tfont(&mt('Mon')) |
.'</th><th>'. |
.'</th><th>'. |
&tfont('Tue') |
&tfont(&mt('Tue')) |
.'</th><th>'. |
.'</th><th>'. |
&tfont('Wed') |
&tfont(&mt('Wed')) |
.'</th><th>'. |
.'</th><th>'. |
&tfont('Thu') |
&tfont(&mt('Thu')) |
.'</th><th>'. |
.'</th><th>'. |
&tfont('Fri') |
&tfont(&mt('Fri')) |
.'</th><th>'. |
.'</th><th>'. |
&tfont('Sat') |
&tfont(&mt('Sat')) |
.'</th></tr>'); |
.'</th></tr>'); |
|
|
my $tk=&Apache::loncommon::maketime(%firstday); |
my $tk=&Apache::loncommon::maketime(%firstday); |
Line 414 SERVERANNOUNCE
|
Line 475 SERVERANNOUNCE
|
} |
} |
$r->print('</tr>'); |
$r->print('</tr>'); |
|
|
for (my $k=0;$k<=3;$k++) { |
for (my $k=0;$k<=4;$k++) { |
$r->print('<tr>'); |
$r->print('<tr>'); |
for (my $i=0;$i<=6;$i++) { |
for (my $i=0;$i<=6;$i++) { |
($tk,$nm,$outp)=&showday($tk,0,%allcal); |
($tk,$nm,$outp)=&showday($tk,0,%allcal); |
Line 429 SERVERANNOUNCE
|
Line 490 SERVERANNOUNCE
|
%showedcheck=(); |
%showedcheck=(); |
undef %showedcheck; |
undef %showedcheck; |
# --------------------------------------------------------------- Remove button |
# --------------------------------------------------------------- Remove button |
if ($allowed) { $r->print('<input type="button" onClick="removesub()" value="Remove Checked Entries"></form>'); } |
if ($allowed) { $r->print('<input type="button" onClick="removesub()" value="Remove Checked Entries">'. |
|
&Apache::loncommon::help_open_topic('Calendar_Remove_Announcement').'</form>'); } |
$r->print('<p>'. |
$r->print('<p>'. |
'<a href="/adm/announcements?month='.$pm.'&year='.$py. |
'<a href="/adm/announcements?month='.$pm.'&year='.$py. |
($pickdatemode?$pickinfo:'').'">Previous Month</a> '. |
($pickdatemode?$pickinfo:'').'">'.&mt('Previous Month').'</a> '. |
'<a href="/adm/announcements?month='.$fm.'&year='.$fy. |
'<a href="/adm/announcements?month='.$fm.'&year='.$fy. |
($pickdatemode?$pickinfo:'').'">Next Month</a>'. |
($pickdatemode?$pickinfo:'').'">'.&mt('Next Month').'</a>'. |
' <a href="/adm/announcements?month='.$todayhash{'month'}. |
' <a href="/adm/announcements?month='.$todayhash{'month'}. |
'&year='.$todayhash{'year'}. |
'&year='.$todayhash{'year'}. |
($pickdatemode?$pickinfo:'').'">Current Month</a></p>'. |
($pickdatemode?$pickinfo:'').'">'.&mt('Current Month').'</a></p>'. |
($pickdatemode?'</font>':''). |
($pickdatemode?'</font>':''). |
'</body></html>'); |
'</body></html>'); |
return OK; |
return OK; |