--- loncom/interface/lonmsg.pm 2001/07/26 21:40:27 1.9 +++ loncom/interface/lonmsg.pm 2001/08/06 11:41:11 1.16 @@ -12,6 +12,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 Gerd Kortemeyer package Apache::lonmsg; @@ -141,8 +143,9 @@ sub user_crit_msg { # =================================================== Critical message received sub user_crit_received { - my $message=shift; - my %contents=&unpackagemsg($message); + my $msgid=shift; + my %message=&Apache::lonnet::get('critical',[$msgid]); + my %contents=&unpackagemsg($message{$msgid}); my $status='rec: '. &user_normal_msg($contents{'sendername'},$contents{'senderdomain'}, 'Receipt: '.$ENV{'user.name'}.' at '.$ENV{'user.domain'}, @@ -151,13 +154,15 @@ 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{$msgid}}); $status.=' del: '. &Apache::lonnet::del('critical',[$contents{'msgid'}]); &Apache::lonnet::log($ENV{'user.domain'},$ENV{'user.name'}, $ENV{'user.home'},'Received critical message '. $contents{'msgid'}. ', '.$status); + return $status; } # ======================================================== Normal communication @@ -194,9 +199,138 @@ sub statuschange { 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}); } + if (($newstatus eq 'deleted') || ($newstatus eq 'new')) { + &Apache::lonnet::put('email_status',{$msgid => $newstatus}); + } +} + +# ==================================================== Display Critical Message + +sub discrit { + my $r=shift; + $r->print('
'; + } + $r->print(<<"ENDREPLY"); +
+ENDREPLY +} + +# ======================================================== Display all messages + +sub disall { + my $r=shift; + $r->print('  | Date | '. + 'Username | Domain | Subject | Status | |
---|---|---|---|---|---|---|
Open | Delete | '.localtime($sendtime).' | '. + $fromname.' | '.$fromdomain.' | '. + &Apache::lonnet::unescape($shortsubj).' | '. + $status.' |