--- loncom/interface/lonmsg.pm 2015/02/12 21:22:07 1.238 +++ loncom/interface/lonmsg.pm 2016/08/04 22:53:55 1.239.2.1 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Routines for messaging # -# $Id: lonmsg.pm,v 1.238 2015/02/12 21:22:07 raeburn Exp $ +# $Id: lonmsg.pm,v 1.239.2.1 2016/08/04 22:53:55 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -397,10 +397,14 @@ sub buildmsgid { } sub unpackmsgid { - my ($msgid,$folder,$skipstatus,$status_cache)=@_; + my ($msgid,$folder,$skipstatus,$status_cache,$onlycid)=@_; $msgid=&unescape($msgid); my ($sendtime,$shortsubj,$fromname,$fromdomain,$count,$fromcid, $processid,$symb,$error) = split(/\:/,&unescape($msgid)); + if (!defined($processid)) { $fromcid = ''; } + if (($onlycid) && ($onlycid ne $fromcid)) { + return ($sendtime,'',$fromname,$fromdomain,'',$fromcid,'',$error); + } $shortsubj = &unescape($shortsubj); $shortsubj = &HTML::Entities::decode($shortsubj); $symb = &unescape($symb); @@ -634,9 +638,9 @@ sub retrieve_author_res_msg { my ($domain,$author)=($url=~/^($match_domain)\/($match_username)\//); my %errormsgs=&Apache::lonnet::dump('nohist_res_msgs',$domain,$author); my $msgs=''; - foreach (keys(%errormsgs)) { - if ($_=~/^\Q$url\E\_\d+$/) { - my %content=&unpackagemsg($errormsgs{$_}); + foreach my $msg (keys(%errormsgs)) { + if ($msg =~ /^\Q$url\E\_\d+$/) { + my %content=&unpackagemsg($errormsgs{$msg}); $msgs.='

'. $content{'time'}.': '.$content{'message'}. '

'; @@ -654,9 +658,9 @@ sub del_url_author_res_msg { $url=&Apache::lonnet::declutter($url); my ($domain,$author)=($url=~/^($match_domain)\/($match_username)\//); my @delmsgs=(); - foreach (&Apache::lonnet::getkeys('nohist_res_msgs',$domain,$author)) { - if ($_=~/^\Q$url\E\_\d+$/) { - push (@delmsgs,$_); + foreach my $msg (&Apache::lonnet::getkeys('nohist_res_msgs',$domain,$author)) { + if ($msg =~ /^\Q$url\E\_\d+$/) { + push (@delmsgs,$msg); } } return &Apache::lonnet::del('nohist_res_msgs',\@delmsgs,$domain,$author); @@ -668,9 +672,9 @@ sub clear_author_res_msg { $url=&Apache::lonnet::declutter($url); my ($domain,$author)=($url=~/^($match_domain)\/($match_username)\//); my @delmsgs=(); - foreach (&Apache::lonnet::getkeys('nohist_res_msgs',$domain,$author)) { - if ($_=~/^\Q$url\E/) { - push (@delmsgs,$_); + foreach my $msg (&Apache::lonnet::getkeys('nohist_res_msgs',$domain,$author)) { + if ($msg =~ /^\Q$url\E/) { + push (@delmsgs,$msg); } } return &Apache::lonnet::del('nohist_res_msgs',\@delmsgs,$domain,$author); @@ -681,8 +685,8 @@ sub clear_author_res_msg { sub all_url_author_res_msg { my ($author,$domain)=@_; my %returnhash=(); - foreach (&Apache::lonnet::getkeys('nohist_res_msgs',$domain,$author)) { - $_=~/^(.+)\_\d+/; + foreach my $msg (&Apache::lonnet::getkeys('nohist_res_msgs',$domain,$author)) { + $msg =~ /^(.+)\_\d+/; $returnhash{$1}=1; } return %returnhash; @@ -926,8 +930,8 @@ sub user_normal_msg { $domain,$user); my $msgforward=$userenv{'msgforward'}; if ($msgforward) { - foreach (split(/\,/,$msgforward)) { - my ($forwuser,$forwdomain)=split(/\:/,$_); + foreach my $fwd (split(/\,/,$msgforward)) { + my ($forwuser,$forwdomain)=split(/\:/,$fwd); push(@status, &user_normal_msg_raw($forwuser,$forwdomain,$subject,$message, $citation,$baseurl,$attachmenturl,$toperm,