version 1.29, 2002/03/18 18:38:04
|
version 1.35, 2002/07/22 14:23:29
|
Line 49 use Apache::lonnet();
|
Line 49 use Apache::lonnet();
|
use vars qw($msgcount); |
use vars qw($msgcount); |
use HTML::TokeParser; |
use HTML::TokeParser; |
use Apache::Constants qw(:common); |
use Apache::Constants qw(:common); |
|
use Apache::loncommon; |
|
|
# ===================================================================== Package |
# ===================================================================== Package |
|
|
Line 303 ENDDISHEADER
|
Line 304 ENDDISHEADER
|
|
|
sub discrit { |
sub discrit { |
my $r=shift; |
my $r=shift; |
$r->print('<h1><font color=red>Critical Messages</font></h1>'. |
my $header = '<h1><font color=red>Critical Messages</font></h1>'. |
'<form action=/adm/email method=post>'. |
'<form action=/adm/email method=post>'. |
'<input type=hidden name=confirm value=true>'); |
'<input type=hidden name=confirm value=true>'; |
my %what=&Apache::lonnet::dump('critical'); |
my %what=&Apache::lonnet::dump('critical'); |
foreach (sort keys %what) { |
my $result = ''; |
my %content=&unpackagemsg($what{$_}); |
foreach (sort keys %what) { |
$content{'message'}=~s/\n/\<br\>/g; |
my %content=&unpackagemsg($what{$_}); |
$r->print('<hr>From: <b>'.$content{'sendername'}.'@'. |
next if ($content{'senderdomain'} eq ''); |
$content{'senderdomain'}.'</b> ('.$content{'time'}. |
$content{'message'}=~s/\n/\<br\>/g; |
')<br><blockquote>'.$content{'message'}.'</blockquote>'. |
$result.='<hr>From: <b>'.$content{'sendername'}.'@'. |
'<input type=submit name="rec_'.$_.'" value="Confirm Receipt">'. |
$content{'senderdomain'}.'</b> ('.$content{'time'}. |
'<input type=submit name="reprec_'.$_.'" value="Confirm Receipt and Reply">'); |
')<br>Subject: '.$content{'subject'}. |
} |
'<br><blockquote>'.$content{'message'}.'</blockquote>'. |
$r->print( |
'<input type=submit name="rec_'.$_.'" value="Confirm Receipt">'. |
'<input type=hidden name="displayedcrit" value="true"></form>'); |
'<input type=submit name="reprec_'.$_.'" '. |
|
'value="Confirm Receipt and Reply">'; |
|
} |
|
# Check to see if there were any messages. |
|
if ($result eq '') { |
|
$result = "<h2>You have no critical messages.</h2>"; |
|
} else { |
|
$r->print($header); |
|
} |
|
$r->print($result); |
|
$r->print('<input type=hidden name="displayedcrit" value="true"></form>'); |
} |
} |
|
|
# =============================================================== Compose reply |
# =============================================================== Compose reply |
Line 333 sub comprep {
|
Line 344 sub comprep {
|
my $subject='Re: '.$content{'subject'}; |
my $subject='Re: '.$content{'subject'}; |
my $dispcrit=''; |
my $dispcrit=''; |
if (&Apache::lonnet::allowed('srm',$ENV{'request.course.id'})) { |
if (&Apache::lonnet::allowed('srm',$ENV{'request.course.id'})) { |
|
my $crithelp = Apache::loncommon::help_open_topic("Course_Critical_Message"); |
$dispcrit= |
$dispcrit= |
'<input type=checkbox name=critmsg> Send as critical message<br>'. |
'<input type=checkbox name=critmsg> Send as critical message ' . $crithelp . |
'<input type=checkbox name=sendbck> Send as critical message'. |
'<br>'. |
' and return receipt<p>'; |
'<input type=checkbox name=sendbck> Send as critical message ' . |
|
' and return receipt' . $crithelp . '<p>'; |
} |
} |
$r->print(<<"ENDREPLY"); |
$r->print(<<"ENDREPLY"); |
<form action="/adm/email" method=post> |
<form action="/adm/email" method=post> |
Line 387 ENDDISHEADER
|
Line 400 ENDDISHEADER
|
$ENV{'user.home'}))) { |
$ENV{'user.home'}))) { |
my ($sendtime,$shortsubj,$fromname,$fromdomain,$status)= |
my ($sendtime,$shortsubj,$fromname,$fromdomain,$status)= |
&Apache::lonmsg::unpackmsgid($_); |
&Apache::lonmsg::unpackmsgid($_); |
unless ($status eq 'deleted') { |
unless (($status eq 'deleted') || ($sendtime=~/error/)) { |
if ($status eq 'new') { |
if ($status eq 'new') { |
$r->print('<tr bgcolor="#FFBB77">'); |
$r->print('<tr bgcolor="#FFBB77">'); |
} elsif ($status eq 'read') { |
} elsif ($status eq 'read') { |
Line 422 sub compout {
|
Line 435 sub compout {
|
my $dismsg=''; |
my $dismsg=''; |
my $func='Send New'; |
my $func='Send New'; |
if (&Apache::lonnet::allowed('srm',$ENV{'request.course.id'})) { |
if (&Apache::lonnet::allowed('srm',$ENV{'request.course.id'})) { |
|
my $crithelp = Apache::loncommon::help_open_topic("Course_Critical_Message"); |
$dispcrit= |
$dispcrit= |
'<input type=checkbox name=critmsg> Send as critical message<br>'. |
'<input type=checkbox name=critmsg> Send as critical message ' . $crithelp . |
'<input type=checkbox name=sendbck> Send as critical message'. |
'<br>'. |
' and return receipt<p>'; |
'<input type=checkbox name=sendbck> Send as critical message ' . |
|
' and return receipt' . $crithelp . '<p>'; |
} |
} |
if ($forwarding) { |
if ($forwarding) { |
$dispcrit.='<input type=hidden name=forwid value="'. |
$dispcrit.='<input type=hidden name=forwid value="'. |
Line 440 sub compout {
|
Line 455 sub compout {
|
} |
} |
my $defdom=$ENV{'user.domain'}; |
my $defdom=$ENV{'user.domain'}; |
$r->print( |
$r->print( |
'<form action="/adm/email" name="compemail" method=post'. |
'<form action="/adm/email" name="compemail" method="post"'. |
' enctype="multipart/form-data">'. |
' enctype="multipart/form-data">'."\n". |
'<input type=hidden name=sendmail value=on><table>'); |
'<input type="hidden" name="sendmail" value="on">'."\n". |
|
'<table>'); |
unless (($broadcast eq 'group') || ($broadcast eq 'upload')) { |
unless (($broadcast eq 'group') || ($broadcast eq 'upload')) { |
|
my $domform = &Apache::loncommon::select_dom_form($defdom,'recdomain'); |
|
|
$r->print(<<"ENDREC"); |
$r->print(<<"ENDREC"); |
<table> |
<table> |
<tr><td>Username:</td><td><input type=text size=12 name=recuname></td></tr> |
<tr><td>Username:</td><td><input type=text size=12 name=recuname></td></tr> |
<tr><td>Domain:</td> |
<tr><td>Domain:</td> |
<td><input type=text size=12 name=recdomain value="$defdom"></td></tr> |
<td>$domform</td></tr> |
ENDREC |
ENDREC |
} |
} |
unless ($broadcast eq 'upload') { |
if ($broadcast ne 'upload') { |
$r->print(<<"ENDCOMP"); |
$r->print(<<"ENDCOMP"); |
<tr><td>Additional Recipients<br><tt>username\@domain,username\@domain, ... |
<tr><td>Additional Recipients<br><tt>username\@domain,username\@domain, ... |
</tt></td><td> |
</tt></td><td> |
Line 463 ENDREC
|
Line 481 ENDREC
|
$dispcrit |
$dispcrit |
<input type=submit value="$func Mail"> |
<input type=submit value="$func Mail"> |
ENDCOMP |
ENDCOMP |
} |
} else { # $broadcast is 'upload' |
if ($broadcast eq 'upload') { |
|
$r->print(<<ENDUPLOAD); |
$r->print(<<ENDUPLOAD); |
<input type=hidden name=sendmode value=upload> |
<input type=hidden name=sendmode value=upload> |
<h3>Generate messages from a file</h3> |
<h3>Generate messages from a file</h3> |
|
<p> |
Subject: <input type=text size=50 name=subject> |
Subject: <input type=text size=50 name=subject> |
|
</p> |
|
<p>General message text<br /> |
|
<textarea name=message cols=60 rows=10 wrap=hard>$dismsg |
|
</textarea></p> |
|
<p> |
|
The file format for the uploaded portion of the message is: |
<pre> |
<pre> |
username1\@domain1: text |
username1\@domain1: text |
username2\@domain2: text |
username2\@domain2: text |
username1\@domain1: text |
username3\@domain1: text |
</pre> |
</pre> |
|
</p> |
|
<p> |
The messages will be assembled from all lines with the respective |
The messages will be assembled from all lines with the respective |
<tt>username\@domain</tt>, and appended to the general message text.<p> |
<tt>username\@domain</tt>, and appended to the general message text.</p> |
|
<p> |
<input type=file name=upfile size=20><p> |
<input type=file name=upfile size=20><p> |
General message text:<p> |
|
<textarea name=message cols=60 rows=10 wrap=hard>$dismsg |
|
</textarea><p> |
|
$dispcrit |
$dispcrit |
<input type=submit value="Upload and send"> |
<input type=submit value="Upload and send"> |
ENDUPLOAD |
ENDUPLOAD |
Line 503 sub handler {
|
Line 527 sub handler {
|
return OK if $r->header_only; |
return OK if $r->header_only; |
|
|
# --------------------------- Get query string for limited number of parameters |
# --------------------------- Get query string for limited number of parameters |
|
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
foreach (split(/&/,$ENV{'QUERY_STRING'})) { |
['display','replyto','forward','markread','markdel','markunread', |
my ($name, $value) = split(/=/,$_); |
'sendreply','compose','sendmail','critical']); |
$value =~ tr/+/ /; |
|
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; |
|
if (($name eq 'display') || ($name eq 'replyto') || |
|
($name eq 'forward') || ($name eq 'markread') || |
|
($name eq 'markdel') || ($name eq 'markunread') || |
|
($name eq 'sendreply') || ($name eq 'compose') || |
|
($name eq 'sendmail') || ($name eq 'critical')) { |
|
unless ($ENV{'form.'.$name}) { |
|
$ENV{'form.'.$name}=$value; |
|
} |
|
} |
|
} |
|
|
|
# --------------------------------------------------------------- Render Output |
# --------------------------------------------------------------- Render Output |
|
|