--- loncom/interface/lonmsg.pm 2001/08/16 01:42:07 1.22 +++ loncom/interface/lonmsg.pm 2001/11/05 21:01:54 1.25 @@ -13,7 +13,8 @@ # 10/19,10/20,10/30, # 02/06/01 Gerd Kortemeyer # 07/27 Guy Albertelli -# 07/27,07/28,07/30,08/03,08/06,08/08,08/09,08/10,8/13,8/15 Gerd Kortemeyer +# 07/27,07/28,07/30,08/03,08/06,08/08,08/09,08/10,8/13,8/15, +# 10/1,11/5 Gerd Kortemeyer package Apache::lonmsg; @@ -114,7 +115,7 @@ sub author_res_msg { # ================================================== Critical message to a user sub user_crit_msg { - my ($user,$domain,$subject,$message)=@_; + my ($user,$domain,$subject,$message,$sendback)=@_; # Check if allowed missing my $status=''; my $msgid='undefined'; @@ -122,6 +123,7 @@ sub user_crit_msg { my $homeserver=&Apache::lonnet::homeserver($user,$domain); if ($homeserver ne 'no_host') { ($msgid,$message)=&packagemsg($subject,$message); + if ($sendback) { $message.='true'; } $status=&Apache::lonnet::critical( 'put:'.$domain.':'.$user.':critical:'. &Apache::lonnet::escape($msgid).'='. @@ -145,13 +147,13 @@ sub user_crit_received { my $msgid=shift; my %message=&Apache::lonnet::get('critical',[$msgid]); my %contents=&unpackagemsg($message{$msgid}); - my $status='rec: '. + my $status='rec: '.($contents{'sendback'}? &user_normal_msg($contents{'sendername'},$contents{'senderdomain'}, 'Receipt: '.$ENV{'user.name'}.' at '.$ENV{'user.domain'}, 'User '.$ENV{'user.name'}.' at '.$ENV{'user.domain'}. ' acknowledged receipt of message "'. $contents{'subject'}.'" dated '.$contents{'time'}.".\n\n" - .'Message ID: '.$contents{'msgid'}); + .'Message ID: '.$contents{'msgid'}):'no msg req'); $status.=' trans: '. &Apache::lonnet::put( 'nohist_email',{$contents{'msgid'} => $message{$msgid}}); @@ -307,13 +309,15 @@ sub comprep { my $dispcrit=''; if (&Apache::lonnet::allowed('srm',$ENV{'request.course.id'})) { $dispcrit= - ' Send as critical message

'; + ' Send as critical message
'. + ' Send as critical message'. + ' and return receipt

'; } $r->print(<<"ENDREPLY");

Subject:

-

$dispcrit @@ -326,7 +330,8 @@ ENDREPLY sub disall { my $r=shift; - $r->print('

Display All Messages

'. + $r->print( + '

Display All Messages

'. ''. ''); map { @@ -344,7 +349,8 @@ sub disall { } $r->print(''. + ''); @@ -353,7 +359,9 @@ sub disall { $ENV{'user.domain'}.':'. $ENV{'user.name'}.':nohist_email', $ENV{'user.home'})); - $r->print('
 DateUsernameDomainSubjectStatus
OpenDelete'.localtime($sendtime).''. + '">Delete'.localtime($sendtime).''. $fromname.''.$fromdomain.''. &Apache::lonnet::unescape($shortsubj).''. $status.'
'); + $r->print('

'. + ''. + '

'); } # ============================================================== Compose output @@ -366,7 +374,9 @@ sub compout { my $func='Send New'; if (&Apache::lonnet::allowed('srm',$ENV{'request.course.id'})) { $dispcrit= - ' Send as critical message

'; + ' Send as critical message
'. + ' Send as critical message'. + ' and return receipt

'; } if ($forwarding) { $dispcrit.=' -

$dispcrit @@ -419,7 +429,7 @@ The messages will be assembled from all username\@domain, and appended to the general message text.

General message text:

-

$dispcrit @@ -492,13 +502,14 @@ sub handler { my %message=&Apache::lonnet::get('nohist_email',[$msgid]); my %content=&unpackagemsg($message{$msgid}); &statuschange($msgid,'replied'); - if (($ENV{'form.critmsg'}) && + if ((($ENV{'form.critmsg'}) || ($ENV{'form.sendbck'})) && (&Apache::lonnet::allowed('srm',$ENV{'request.course.id'}))) { $r->print('Sending critical: '. &user_crit_msg($content{'sendername'}, $content{'senderdomain'}, $ENV{'form.subject'}, - $ENV{'form.message'})); + $ENV{'form.message'}, + $ENV{'form.sendbck'})); } else { $r->print('Sending: '.&user_normal_msg($content{'sendername'}, $content{'senderdomain'}, @@ -532,6 +543,16 @@ sub handler { } elsif ($ENV{'form.markdel'}) { &statuschange($ENV{'form.markdel'},'deleted'); &disall($r); + } elsif ($ENV{'form.markeddel'}) { + my $total=0; + map { + if ($_=~/^form\.delmark_(.*)$/) { + &statuschange(&Apache::lonnet::unescape($1),'deleted'); + $total++; + } + } keys %ENV; + $r->print('Deleted '.$total.' message(s)

'); + &disall($r); } elsif ($ENV{'form.markunread'}) { &statuschange($ENV{'form.markunread'},'new'); &disall($r); @@ -577,13 +598,13 @@ sub handler { my ($recuname,$recdomain)=split(/\:/,$_); my $msgtxt=$ENV{'form.message'}; if ($toaddr{$_}) { $msgtxt.='


'.$toaddr{$_}; } - if (($ENV{'form.critmsg'}) && + if ((($ENV{'form.critmsg'}) || ($ENV{'form.sendbck'})) && (&Apache::lonnet::allowed('srm',$ENV{'request.course.id'}))) { $r->print('Sending critical: '. &user_crit_msg($recuname,$recdomain, $ENV{'form.subject'}, $msgtxt, - $content{'citation'})); + $ENV{'form.sendbck'})); } else { $r->print('Sending: '.&user_normal_msg($recuname,$recdomain, $ENV{'form.subject'},