version 1.102, 2004/06/02 20:40:07
|
version 1.107, 2004/09/10 08:42:21
|
Line 201 sub unpackagemsg {
|
Line 201 sub unpackagemsg {
|
# ======================================================= Get info out of msgid |
# ======================================================= Get info out of msgid |
|
|
sub unpackmsgid { |
sub unpackmsgid { |
my $msgid=&Apache::lonnet::unescape(shift); |
my ($msgid,$folder)=@_; |
|
$msgid=&Apache::lonnet::unescape($msgid); |
|
my $suffix=&foldersuffix($folder); |
my ($sendtime,$shortsubj,$fromname,$fromdomain)=split(/\:/, |
my ($sendtime,$shortsubj,$fromname,$fromdomain)=split(/\:/, |
&Apache::lonnet::unescape($msgid)); |
&Apache::lonnet::unescape($msgid)); |
my %status=&Apache::lonnet::get('email_status',[$msgid]); |
my %status=&Apache::lonnet::get('email_status'.$suffix,[$msgid]); |
if ($status{$msgid}=~/^error\:/) { $status{$msgid}=''; } |
if ($status{$msgid}=~/^error\:/) { $status{$msgid}=''; } |
unless ($status{$msgid}) { $status{$msgid}='new'; } |
unless ($status{$msgid}) { $status{$msgid}='new'; } |
return ($sendtime,$shortsubj,$fromname,$fromdomain,$status{$msgid}); |
return ($sendtime,$shortsubj,$fromname,$fromdomain,$status{$msgid}); |
Line 219 sub sendemail {
|
Line 221 sub sendemail {
|
my $msg = new Mail::Send; |
my $msg = new Mail::Send; |
$msg->to($to); |
$msg->to($to); |
$msg->subject('[LON-CAPA] '.$subject); |
$msg->subject('[LON-CAPA] '.$subject); |
|
my %oldENV=%ENV; |
|
undef(%ENV); |
if (my $fh = $msg->open()) { |
if (my $fh = $msg->open()) { |
print $fh $body; |
print $fh $body; |
$fh->close; |
$fh->close; |
} |
} |
|
%ENV=%oldENV; |
|
undef(%oldENV); |
} |
} |
|
|
# ==================================================== Send notification emails |
# ==================================================== Send notification emails |
Line 494 sub user_normal_msg {
|
Line 500 sub user_normal_msg {
|
} |
} |
|
|
|
|
|
# ============================================================ List all folders |
|
|
|
sub folderlist { |
|
my $folder=shift; |
|
my @allfolders=&Apache::lonnet::getkeys('email_folders'); |
|
if ($allfolders[0]=~/^error:/) { @allfolders=(); } |
|
return '<form method="post" action="/adm/email">'. |
|
'<input type="submit" value="'.&mt('View Folder').'" />'. |
|
&Apache::loncommon::select_form($folder,'folder', |
|
('' => &mt('INBOX'),'trash' => &mt('TRASH'), |
|
'sent' => &mt('Sent Messages'), |
|
map { $_ => $_ } @allfolders)). |
|
'<a href="/adm/email?critical=display">'. |
|
&mt('View Critical Messages').'</a>'. |
|
'</form>'; |
|
} |
|
# =============================================================== Folder suffix |
|
|
|
sub foldersuffix { |
|
my $folder=shift; |
|
unless ($folder) { return ''; } |
|
return '_'.&Apache::lonnet::escape($folder); |
|
} |
|
|
# =============================================================== Status Change |
# =============================================================== Status Change |
|
|
sub statuschange { |
sub statuschange { |
my ($msgid,$newstatus)=@_; |
my ($msgid,$newstatus,$folder)=@_; |
my %status=&Apache::lonnet::get('email_status',[$msgid]); |
my $suffix=&foldersuffix($folder); |
|
my %status=&Apache::lonnet::get('email_status'.$suffix,[$msgid]); |
if ($status{$msgid}=~/^error\:/) { $status{$msgid}=''; } |
if ($status{$msgid}=~/^error\:/) { $status{$msgid}=''; } |
unless ($status{$msgid}) { $status{$msgid}='new'; } |
unless ($status{$msgid}) { $status{$msgid}='new'; } |
unless (($status{$msgid} eq 'replied') || |
unless (($status{$msgid} eq 'replied') || |
($status{$msgid} eq 'forwarded')) { |
($status{$msgid} eq 'forwarded')) { |
&Apache::lonnet::put('email_status',{$msgid => $newstatus}); |
&Apache::lonnet::put('email_status'.$suffix,{$msgid => $newstatus}); |
} |
} |
if (($newstatus eq 'deleted') || ($newstatus eq 'new')) { |
if (($newstatus eq 'deleted') || ($newstatus eq 'new')) { |
&Apache::lonnet::put('email_status',{$msgid => $newstatus}); |
&Apache::lonnet::put('email_status'.$suffix,{$msgid => $newstatus}); |
|
} |
|
} |
|
|
|
# ============================================================= Make new folder |
|
|
|
sub makefolder { |
|
my ($newfolder)=@_; |
|
&Apache::lonnet::put('email_folders',{$newfolder => time}); |
|
} |
|
|
|
# ======================================================== Move between folders |
|
|
|
sub movemsg { |
|
my ($msgid,$srcfolder,$trgfolder)=@_; |
|
my $unmsgid=&Apache::lonnet::unescape($msgid); |
|
my $srcsuffix=&foldersuffix($srcfolder); |
|
my $trgsuffix=&foldersuffix($trgfolder); |
|
|
|
# Copy message |
|
my %message=&Apache::lonnet::get('nohist_email'.$srcsuffix,[$msgid]); |
|
&Apache::lonnet::put('nohist_email'.$trgsuffix,{$msgid => $message{$msgid}}); |
|
|
|
# Copy status |
|
my %status=&Apache::lonnet::get('email_status'.$srcsuffix,[$unmsgid]); |
|
&Apache::lonnet::put('email_status'.$trgsuffix,{$unmsgid => $status{$unmsgid}}); |
|
# See if was deleted -> becomes "read" in trash |
|
my $currentstatus=(&unpackmsgid($status{$unmsgid})); |
|
if ($currentstatus eq 'deleted') { |
|
&statuschange($msgid,'read',$trgfolder); |
} |
} |
|
# Delete orginals |
|
&Apache::lonnet::del('nohist_email'.$srcsuffix,[$msgid]); |
|
&Apache::lonnet::del('email_status'.$srcsuffix,[$unmsgid]); |
} |
} |
|
|
# ======================================================= Display a course list |
# ======================================================= Display a course list |
Line 607 sub discrit {
|
Line 670 sub discrit {
|
my %content=&unpackagemsg($what{$_}); |
my %content=&unpackagemsg($what{$_}); |
next if ($content{'senderdomain'} eq ''); |
next if ($content{'senderdomain'} eq ''); |
$content{'message'}=~s/\n/\<br\>/g; |
$content{'message'}=~s/\n/\<br\>/g; |
$result.='<hr>'.&mt('From').': <b>'. |
$result.='<hr />'.&mt('From').': <b>'. |
&Apache::loncommon::aboutmewrapper( |
&Apache::loncommon::aboutmewrapper( |
&Apache::loncommon::plainname($content{'sendername'},$content{'senderdomain'}),$content{'sendername'},$content{'senderdomain'}).'</b> ('. |
&Apache::loncommon::plainname($content{'sendername'},$content{'senderdomain'}),$content{'sendername'},$content{'senderdomain'}).'</b> ('. |
$content{'sendername'}.'@'. |
$content{'sendername'}.'@'. |
$content{'senderdomain'}.') '.$content{'time'}. |
$content{'senderdomain'}.') '.$content{'time'}. |
'<br>'.&mt('Subject').': '.$content{'subject'}. |
'<br />'.&mt('Subject').': '.$content{'subject'}. |
'<br><blockquote>'. |
'<br /><blockquote>'. |
&Apache::lontexconvert::msgtexconverted($content{'message'}). |
&Apache::lontexconvert::msgtexconverted($content{'message'}). |
'</blockquote><small>'. |
'</blockquote><small>'. |
&mt('You have to confirm that you received this message. After confirmation, this message will be moved to your regular inbox'). |
&mt('You have to confirm that you received this message. After confirmation, this message will be moved to your regular inbox'). |
Line 625 $content{'sendername'}.'@'.
|
Line 688 $content{'sendername'}.'@'.
|
# Check to see if there were any messages. |
# Check to see if there were any messages. |
if ($result eq '') { |
if ($result eq '') { |
$result = "<h2>".&mt('You have no critical messages.')."</h2>". |
$result = "<h2>".&mt('You have no critical messages.')."</h2>". |
'<a href="/adm/roles">'.&mt('Select a course').'</a>'; |
'<a href="/adm/roles">'.&mt('Select a course').'</a><br />'. |
|
'<a href="/adm/email">'.&mt('Communicate').'</a>'; |
} else { |
} else { |
$r->print($header); |
$r->print($header); |
} |
} |
$r->print($result); |
$r->print($result); |
$r->print('<input type=hidden name="displayedcrit" value="true"></form>'); |
$r->print('<input type=hidden name="displayedcrit" value="true" /></form>'); |
} |
} |
|
|
sub sortedmessages { |
sub sortedmessages { |
my ($blocked,$startblock,$endblock,$numblocked) = @_; |
my ($blocked,$startblock,$endblock,$numblocked,$folder) = @_; |
my @messages = &Apache::lonnet::getkeys('nohist_email'); |
my $suffix=&foldersuffix($folder); |
|
my @messages = &Apache::lonnet::getkeys('nohist_email'.$suffix); |
#unpack the varibles and repack into temp for sorting |
#unpack the varibles and repack into temp for sorting |
my @temp; |
my @temp; |
foreach (@messages) { |
foreach (@messages) { |
Line 691 sub sortedmessages {
|
Line 756 sub sortedmessages {
|
# ======================================================== Display all messages |
# ======================================================== Display all messages |
|
|
sub disall { |
sub disall { |
my $r=shift; |
my ($r,$folder)=@_; |
my %blocked = (); |
my %blocked = (); |
my %setters = (); |
my %setters = (); |
my $startblock; |
my $startblock; |
Line 719 sub disall {
|
Line 784 sub disall {
|
} |
} |
</script> |
</script> |
ENDDISHEADER |
ENDDISHEADER |
$r->print('<h1>'.&mt('Display All Messages').'</h1><form method=post name=disall '. |
$r->print('<h2>'.&mt('Display All Messages').'</h2>'. |
'action="/adm/email">'. |
&folderlist($folder). |
'<table border=2><tr><th colspan=2> </th><th>'); |
'<form method="post" name="disall" action="/adm/email">'. |
|
'<table border=2><tr><th colspan="3"> </th><th>'); |
if ($ENV{'form.sortedby'} eq "revdate") { |
if ($ENV{'form.sortedby'} eq "revdate") { |
$r->print('<a href = "?sortedby=date">'.&mt('Date').'</a></th>'); |
$r->print('<a href = "?sortedby=date">'.&mt('Date').'</a></th>'); |
} else { |
} else { |
Line 752 ENDDISHEADER
|
Line 818 ENDDISHEADER
|
$r->print('<a href = "?sortedby=revstatus">'.&mt('Status').'</th>'); |
$r->print('<a href = "?sortedby=revstatus">'.&mt('Status').'</th>'); |
} |
} |
$r->print('</tr>'); |
$r->print('</tr>'); |
my @temp=sortedmessages(\%blocked,$startblock,$endblock,\$numblocked); |
my @temp=sortedmessages(\%blocked,$startblock,$endblock,\$numblocked,$folder); |
foreach (@temp){ |
foreach (@temp){ |
my ($sendtime,$shortsubj,$fromname,$fromdomain,$status,$origID)= @$_; |
my ($sendtime,$shortsubj,$fromname,$fromdomain,$status,$origID)= @$_; |
if (($status ne 'deleted') && defined($sendtime) && $sendtime!~/error/) { |
if (($status ne 'deleted') && defined($sendtime) && $sendtime!~/error/) { |
Line 765 ENDDISHEADER
|
Line 831 ENDDISHEADER
|
} else { |
} else { |
$r->print('<tr bgcolor="#99BBBB">'); |
$r->print('<tr bgcolor="#99BBBB">'); |
} |
} |
$r->print('<td><a href="/adm/email?display='.$origID.$sqs. |
$r->print('<td></a><input type=checkbox name="delmark_'.$origID.'" /></td><td><a href="/adm/email?display='.$origID.$sqs. |
'">'.&mt('Open').'</a></td><td><a href="/adm/email?markdel='.$origID.$sqs. |
'">'.&mt('Open').'</a></td><td>'. |
'">'.&mt('Delete').'</a><input type=checkbox name="delmark_'.$origID.'" /></td>'. |
($folder ne 'trash'?'<a href="/adm/email?markdel='.$origID.$sqs. |
|
'">'.&mt('Delete'):' ').'</td>'. |
'<td>'.&Apache::lonlocal::locallocaltime($sendtime).'</td><td>'. |
'<td>'.&Apache::lonlocal::locallocaltime($sendtime).'</td><td>'. |
$fromname.'</td><td>'.$fromdomain.'</td><td>'. |
$fromname.'</td><td>'.$fromdomain.'</td><td>'. |
&Apache::lonnet::unescape($shortsubj).'</td><td>'. |
&Apache::lonnet::unescape($shortsubj).'</td><td>'. |
$status.'</td></tr>'); |
$status.'</td></tr>'); |
|
} elsif ($status eq 'deleted') { |
|
# purge |
|
&movemsg($origID,$folder,'trash'); |
} |
} |
} |
} |
$r->print('</table><p>'. |
$r->print('</table><p>'. |
'<a href="javascript:checkall()">'.&mt('Check All').'</a> '. |
'<a href="javascript:checkall()">'.&mt('Check All').'</a> '. |
'<a href="javascript:uncheckall()">'.&mt('Uncheck All').'</a><p>'. |
'<a href="javascript:uncheckall()">'.&mt('Uncheck All').'</a></p>'. |
'<input type="hidden" name="sortedby" value="'.$ENV{'form.sortedby'}.'" />'. |
'<input type="hidden" name="sortedby" value="'.$ENV{'form.sortedby'}.'" />'); |
'<input type="submit" name="markeddel" value="'.&mt('Delete Checked').'" />'. |
if ($folder ne 'trash') { |
'</form>'); |
$r->print( |
|
'<p><input type="submit" name="markeddel" value="'.&mt('Delete Checked').'" /></p>'); |
|
} |
|
$r->print('<p><input type="submit" name="markedmove" value="'.&mt('Move Checked to Folder').'" />'); |
|
my @allfolders=&Apache::lonnet::getkeys('email_folders'); |
|
if ($allfolders[0]=~/^error:/) { @allfolders=(); } |
|
$r->print( |
|
&Apache::loncommon::select_form('','movetofolder', |
|
( map { $_ => $_ } @allfolders)) |
|
); |
|
$r->print('<input type="hidden" name="folder" value="'.$folder.'" /></form>'); |
if ($numblocked > 0) { |
if ($numblocked > 0) { |
my $beginblock = &Apache::lonlocal::locallocaltime($startblock); |
my $beginblock = &Apache::lonlocal::locallocaltime($startblock); |
my $finishblock = &Apache::lonlocal::locallocaltime($endblock); |
my $finishblock = &Apache::lonlocal::locallocaltime($endblock); |
Line 787 ENDDISHEADER
|
Line 867 ENDDISHEADER
|
$numblocked.' '.&mt('message(s) is/are not viewable because display of LON-CAPA messages sent to you by other students between').' '.$beginblock.' '.&mt('and').' '.$finishblock.' '.&mt('is currently being blocked because of online exams.')); |
$numblocked.' '.&mt('message(s) is/are not viewable because display of LON-CAPA messages sent to you by other students between').' '.$beginblock.' '.&mt('and').' '.$finishblock.' '.&mt('is currently being blocked because of online exams.')); |
&build_block_table($r,$startblock,$endblock,\%setters); |
&build_block_table($r,$startblock,$endblock,\%setters); |
} |
} |
$r->print('</body></html>'); |
|
} |
} |
|
|
# ============================================================== Compose output |
# ============================================================== Compose output |
Line 857 sub compout {
|
Line 936 sub compout {
|
if ($replying) { |
if ($replying) { |
%message=&Apache::lonnet::get('nohist_email',[$replying]); |
%message=&Apache::lonnet::get('nohist_email',[$replying]); |
%content=&unpackagemsg($message{$replying}); |
%content=&unpackagemsg($message{$replying}); |
$dispcrit.='<input type="hidden" name="forwid" value="'. |
$dispcrit.='<input type="hidden" name="replyid" value="'. |
$forwarding.'" />'; |
$replying.'" />'; |
$func=&mt('Replying to'); |
$func=&mt('Replying to'); |
|
|
$dissub=&mt('Reply').': '.$content{'subject'}; |
$dissub=&mt('Reply').': '.$content{'subject'}; |
Line 945 ENDUPLOAD
|
Line 1024 ENDUPLOAD
|
|
|
# ---------------------------------------------------- Display all face to face |
# ---------------------------------------------------- Display all face to face |
|
|
|
sub retrieve_instructor_comments { |
|
my ($user,$domain)=@_; |
|
my $target=$ENV{'form.grade_target'}; |
|
if (! $ENV{'request.course.id'}) { return; } |
|
if (! &Apache::lonnet::allowed('srm',$ENV{'request.course.id'})) { |
|
return; |
|
} |
|
my %records=&Apache::lonnet::dump('nohist_email', |
|
$ENV{'course.'.$ENV{'request.course.id'}.'.domain'}, |
|
$ENV{'course.'.$ENV{'request.course.id'}.'.num'}, |
|
'%255b'.$user.'%253a'.$domain.'%255d'); |
|
my $result=''; |
|
foreach (sort(keys(%records))) { |
|
my %content=&unpackagemsg($records{$_}); |
|
next if ($content{'senderdomain'} eq ''); |
|
next if ($content{'subject'} !~ /^Record/); |
|
# $content{'message'}=~s/\n/\<br\>/g; |
|
$result.='Recorded by '. |
|
$content{'sendername'}.'@'.$content{'senderdomain'}."\n"; |
|
$result.= |
|
&Apache::lontexconvert::msgtexconverted($content{'message'})."\n"; |
|
} |
|
return $result; |
|
} |
|
|
sub disfacetoface { |
sub disfacetoface { |
my ($r,$user,$domain)=@_; |
my ($r,$user,$domain)=@_; |
my $target=$ENV{'form.grade_target'}; |
my $target=$ENV{'form.grade_target'}; |
Line 1433 END
|
Line 1537 END
|
# ----------------------------------------------------------- Display a message |
# ----------------------------------------------------------- Display a message |
|
|
sub displaymessage { |
sub displaymessage { |
my ($r,$msgid)=@_; |
my ($r,$msgid,$folder)=@_; |
|
my $suffix=&foldersuffix($folder); |
my %blocked = (); |
my %blocked = (); |
my %setters = (); |
my %setters = (); |
my $startblock = 0; |
my $startblock = 0; |
Line 1441 sub displaymessage {
|
Line 1546 sub displaymessage {
|
my $numblocked = 0; |
my $numblocked = 0; |
# info to generate "next" and "previous" buttons and check if message is blocked |
# info to generate "next" and "previous" buttons and check if message is blocked |
&blockcheck(\%setters,\$startblock,\$endblock); |
&blockcheck(\%setters,\$startblock,\$endblock); |
my @messages=&sortedmessages(\%blocked,$startblock,$endblock,\$numblocked); |
my @messages=&sortedmessages(\%blocked,$startblock,$endblock,\$numblocked,$folder); |
if ( $blocked{$msgid} eq 'ON' ) { |
if ( $blocked{$msgid} eq 'ON' ) { |
&printheader($r,'/adm/email',&mt('Display a Message')); |
&printheader($r,'/adm/email',&mt('Display a Message')); |
$r->print(&mt('You attempted to display a message that is currently blocked because you are enrolled in one or more courses for which there is an ongoing online exam.')); |
$r->print(&mt('You attempted to display a message that is currently blocked because you are enrolled in one or more courses for which there is an ongoing online exam.')); |
&build_block_table($r,$startblock,$endblock,\%setters); |
&build_block_table($r,$startblock,$endblock,\%setters); |
return; |
return; |
} |
} |
&statuschange($msgid,'read'); |
&statuschange($msgid,'read',$folder); |
my %message=&Apache::lonnet::get('nohist_email',[$msgid]); |
my %message=&Apache::lonnet::get('nohist_email'.$suffix,[$msgid]); |
my %content=&unpackagemsg($message{$msgid}); |
my %content=&unpackagemsg($message{$msgid}); |
|
|
my $counter=0; |
my $counter=0; |
$r->print('<pre>'); |
$r->print('<pre>'); |
my $escmsgid=&Apache::lonnet::escape($msgid); |
my $escmsgid=&Apache::lonnet::escape($msgid); |
Line 1476 sub displaymessage {
|
Line 1582 sub displaymessage {
|
'<td><a href="/adm/email?markdel='.&Apache::lonnet::escape($msgid).$sqs. |
'<td><a href="/adm/email?markdel='.&Apache::lonnet::escape($msgid).$sqs. |
'"><b>Delete</b></a></td>'. |
'"><b>Delete</b></a></td>'. |
'<td><a href="/adm/email?sortedby='.$ENV{'form.sortedby'}. |
'<td><a href="/adm/email?sortedby='.$ENV{'form.sortedby'}. |
|
'&folder='.&Apache::lonnet::escape($folder). |
'"><b>'.&mt('Display all Messages').'</b></a></td>'); |
'"><b>'.&mt('Display all Messages').'</b></a></td>'); |
if ($counter > 0){ |
if ($counter > 0){ |
$r->print('<td><a href="/adm/email?display='.$messages[$counter-1]->[5].$sqs. |
$r->print('<td><a href="/adm/email?display='.$messages[$counter-1]->[5].$sqs. |
Line 1544 sub handler {
|
Line 1651 sub handler {
|
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
['display','replyto','forward','markread','markdel','markunread', |
['display','replyto','forward','markread','markdel','markunread', |
'sendreply','compose','sendmail','critical','recname','recdom', |
'sendreply','compose','sendmail','critical','recname','recdom', |
'recordftf','sortedby','block']); |
'recordftf','sortedby','block','folder']); |
$sqs='&sortedby='.$ENV{'form.sortedby'}; |
$sqs='&sortedby='.$ENV{'form.sortedby'}; |
# ------------------------------------------------------ They checked for email |
# ------------------------------------------------------ They checked for email |
unless ($ENV{'form.block'}) { |
unless ($ENV{'form.block'}) { |
Line 1559 sub handler {
|
Line 1666 sub handler {
|
text=>"Communication/Messages", |
text=>"Communication/Messages", |
faq=>12,bug=>'Communication Tools',}); |
faq=>12,bug=>'Communication Tools',}); |
|
|
|
# ------------------------------------------------------------------ Get Folder |
|
|
|
my $folder=$ENV{'form.folder'}; |
|
unless ($folder) { |
|
$folder=''; |
|
} else { |
|
$sqs='&folder='.&Apache::lonnet::escape($folder); |
|
} |
|
|
# --------------------------------------------------------------- Render Output |
# --------------------------------------------------------------- Render Output |
|
|
if ($ENV{'form.display'}) { |
if ($ENV{'form.display'}) { |
&displaymessage($r,$ENV{'form.display'}); |
&displaymessage($r,$ENV{'form.display'},$folder); |
} elsif ($ENV{'form.replyto'}) { |
} elsif ($ENV{'form.replyto'}) { |
&compout($r,'',$ENV{'form.replyto'}); |
&compout($r,'',$ENV{'form.replyto'}); |
} elsif ($ENV{'form.confirm'}) { |
} elsif ($ENV{'form.confirm'}) { |
Line 1587 sub handler {
|
Line 1703 sub handler {
|
&compout($r,$ENV{'form.forward'}); |
&compout($r,$ENV{'form.forward'}); |
} elsif ($ENV{'form.markdel'}) { |
} elsif ($ENV{'form.markdel'}) { |
&printheader($r,'','Deleted Message'); |
&printheader($r,'','Deleted Message'); |
&statuschange($ENV{'form.markdel'},'deleted'); |
&statuschange($ENV{'form.markdel'},'deleted',$folder); |
&disall($r); |
&disall($r,$folder); |
|
} elsif ($ENV{'form.markedmove'}) { |
|
my $total=0; |
|
foreach (keys %ENV) { |
|
if ($_=~/^form\.delmark_(.*)$/) { |
|
&movemsg(&Apache::lonnet::unescape($1),$folder, |
|
$ENV{'form.movetofolder'}); |
|
$total++; |
|
} |
|
} |
|
&printheader($r,'','Moved Messages'); |
|
$r->print('Moved '.$total.' message(s)<p>'); |
|
&disall($r,$folder); |
} elsif ($ENV{'form.markeddel'}) { |
} elsif ($ENV{'form.markeddel'}) { |
my $total=0; |
my $total=0; |
foreach (keys %ENV) { |
foreach (keys %ENV) { |
Line 1599 sub handler {
|
Line 1727 sub handler {
|
} |
} |
&printheader($r,'','Deleted Messages'); |
&printheader($r,'','Deleted Messages'); |
$r->print('Deleted '.$total.' message(s)<p>'); |
$r->print('Deleted '.$total.' message(s)<p>'); |
&disall($r); |
&disall($r,$folder); |
} elsif ($ENV{'form.markunread'}) { |
} elsif ($ENV{'form.markunread'}) { |
&printheader($r,'','Marked Message as Unread'); |
&printheader($r,'','Marked Message as Unread'); |
&statuschange($ENV{'form.markunread'},'new'); |
&statuschange($ENV{'form.markunread'},'new'); |
&disall($r); |
&disall($r,$folder); |
} elsif ($ENV{'form.compose'}) { |
} elsif ($ENV{'form.compose'}) { |
&compout($r,'','',$ENV{'form.compose'}); |
&compout($r,'','',$ENV{'form.compose'}); |
} elsif ($ENV{'form.recordftf'}) { |
} elsif ($ENV{'form.recordftf'}) { |
Line 1625 sub handler {
|
Line 1753 sub handler {
|
$ENV{'form.message'}.="\n\n-- Forwarded message --\n\n". |
$ENV{'form.message'}.="\n\n-- Forwarded message --\n\n". |
$content{'message'}; |
$content{'message'}; |
} |
} |
|
if ($ENV{'form.replyid'}) { |
|
my $msgid=$ENV{'form.replyid'}; |
|
my %message=&Apache::lonnet::get('nohist_email',[$msgid]); |
|
%content=&unpackagemsg($message{$msgid},1); |
|
&statuschange($msgid,'replied'); |
|
} |
my %toaddr=(); |
my %toaddr=(); |
undef %toaddr; |
undef %toaddr; |
if ($ENV{'form.sendmode'} eq 'group') { |
if ($ENV{'form.sendmode'} eq 'group') { |
Line 1696 sub handler {
|
Line 1830 sub handler {
|
&mt('Please use the browser "Back" button and correct the recipient addresses') |
&mt('Please use the browser "Back" button and correct the recipient addresses') |
); |
); |
} |
} |
|
} elsif ($ENV{'form.newfolder'}) { |
|
&printheader($r,'','New Folder'); |
|
&makefolder($ENV{'form.newfolder'}); |
|
&disall($r,$ENV{'form.newfolder'}); |
} else { |
} else { |
&printheader($r,'','Display All Messages'); |
&printheader($r,'','Display All Messages'); |
&disall($r); |
&disall($r,$folder); |
} |
} |
$r->print('</body></html>'); |
$r->print('</body></html>'); |
return OK; |
return OK; |