--- loncom/interface/lonmsg.pm 2001/02/06 18:17:34 1.7 +++ loncom/interface/lonmsg.pm 2001/07/28 04:16:29 1.11 @@ -12,6 +12,8 @@ # # 10/19,10/20,10/30, # 02/06/01 Gerd Kortemeyer +# 07/27 Guy Albertelli +# 07/27 Gerd Kortemeyer package Apache::lonmsg; @@ -83,7 +85,7 @@ sub unpackmsgid { my $msgid=&Apache::lonnet::unescape(shift); my ($sendtime,$shortsubj,$fromname,$fromdomain)=split(/\:/, &Apache::lonnet::unescape($msgid)); - my %status=&Apache::lonnet::get('email_status',$msgid); + my %status=&Apache::lonnet::get('email_status',[$msgid]); if ($status{$msgid}=~/^error\:/) { $status{$msgid}=''; } unless ($status{$msgid}) { $status{$msgid}='new'; } return ($sendtime,$shortsubj,$fromname,$fromdomain,$status{$msgid}); @@ -151,9 +153,9 @@ sub user_crit_received { $contents{'subject'}.'" dated '.$contents{'time'}.".\n\n" .'Message ID: '.$contents{'msgid'}); $status.=' trans: '. - &Apache::lonnet::put('nohist_email',$contents{'msgid'} => $message); + &Apache::lonnet::put('nohist_email',{$contents{'msgid'} => $message}); $status.=' del: '. - &Apache::lonnet::del('critical',$contents{'msgid'}); + &Apache::lonnet::del('critical',[$contents{'msgid'}]); &Apache::lonnet::log($ENV{'user.domain'},$ENV{'user.name'}, $ENV{'user.home'},'Received critical message '. $contents{'msgid'}. @@ -189,12 +191,12 @@ sub user_normal_msg { sub statuschange { my ($msgid,$newstatus)=@_; - my %status=&Apache::lonnet::get('email_status',$msgid); + my %status=&Apache::lonnet::get('email_status',[$msgid]); if ($status{$msgid}=~/^error\:/) { $status{$msgid}=''; } unless ($status{$msgid}) { $status{$msgid}='new'; } unless (($status{$msgid} eq 'replied') || ($status{$msgid} eq 'forwarded')) { - &Apache::lonnet::put('email_status',($msgid => $newstatus)); + &Apache::lonnet::put('email_status',{$msgid => $newstatus}); } } # ===================================================================== Handler @@ -217,7 +219,7 @@ sub handler { $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 'mark') || - ($name eq 'sendreply')) { + ($name eq 'sendreply') || ($name eq 'compose')) { unless ($ENV{'form.'.$name}) { $ENV{'form.'.$name}=$value; } @@ -233,7 +235,7 @@ sub handler { if ($ENV{'form.display'}) { my $msgid=$ENV{'form.display'}; &statuschange($msgid,'read'); - my %message=&Apache::lonnet::get('nohist_email',$msgid); + my %message=&Apache::lonnet::get('nohist_email',[$msgid]); my %content=&unpackagemsg($message{$msgid}); $r->print('Subject: '.$content{'subject'}. '
From: '.$content{'sendername'}.' at '. @@ -244,13 +246,18 @@ sub handler { $content{'message'}.'
'.$content{'citation'}); } elsif ($ENV{'form.replyto'}) { my $msgid=$ENV{'form.replyto'}; - my %message=&Apache::lonnet::get('nohist_email',$msgid); + my %message=&Apache::lonnet::get('nohist_email',[$msgid]); my %content=&unpackagemsg($message{$msgid}); my $quotemsg='> '.$content{'message'}; $quotemsg=~s/\r/\n/g; $quotemsg=~s/\f/\n/g; $quotemsg=~s/\n+/\n\> /g; my $subject='Re: '.$content{'subject'}; + my $dispcrit=''; + if (&Apache::lonnet::allowed('srm',$ENV{'request.course.id'})) { + $dispcrit= + ' Send as critical message

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

@@ -258,12 +265,13 @@ Subject: $quotemsg

+$dispcrit

ENDREPLY } elsif ($ENV{'form.sendreply'}) { my $msgid=$ENV{'form.sendreply'}; - my %message=&Apache::lonnet::get('nohist_email',$msgid); + my %message=&Apache::lonnet::get('nohist_email',[$msgid]); my %content=&unpackagemsg($message{$msgid}); &statuschange($msgid,'replied'); $r->print('Sending: '.&user_normal_msg($content{'sendername'}, @@ -272,6 +280,23 @@ ENDREPLY $ENV{'form.message'})); } elsif ($ENV{'form.forward'}) { } elsif ($ENV{'form.mark'}) { + } elsif ($ENV{'form.compose'}) { + my $dispcrit=''; + if (&Apache::lonnet::allowed('srm',$ENV{'request.course.id'})) { + $dispcrit= + ' Send as critical message

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

+ +Subject:

+

+$dispcrit + +

+ENDCOMP + } elsif ($ENV{'form.sendmail'}) { } else { $r->print(''. '');
 DateUsernameDomainSubjectStatus