--- loncom/interface/lonmsgdisplay.pm 2020/01/10 05:08:39 1.191
+++ loncom/interface/lonmsgdisplay.pm 2025/03/03 21:42:46 1.203
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Routines for messaging display
#
-# $Id: lonmsgdisplay.pm,v 1.191 2020/01/10 05:08:39 raeburn Exp $
+# $Id: lonmsgdisplay.pm,v 1.203 2025/03/03 21:42:46 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -111,6 +111,7 @@ use Apache::loncommunicate;
use Apache::lonfeedback;
use Apache::lonrss();
use Apache::lonselstudent();
+use Apache::lonenc();
use lib '/home/httpd/lib/perl/';
use LONCAPA qw(:DEFAULT :match);
@@ -228,41 +229,39 @@ function folder_choice(targetform,caller
';
}
sub groupmail_sent {
@@ -908,7 +911,7 @@ sub discrit {
}
sub sortedmessages {
- my ($blocked,$startblock,$endblock,$numblocked,$folder,$msgstatus) = @_;
+ my ($blocked,$startblock,$endblock,$by_ip,$numblocked,$folder,$msgstatus) = @_;
my $suffix=&Apache::lonmsg::foldersuffix($folder);
my @messages = &Apache::lonnet::getkeys('nohist_email'.$suffix);
#unpack the varibles and repack into temp for sorting
@@ -940,7 +943,8 @@ sub sortedmessages {
push(@temp1,$content{'recuser'},$content{'recdomain'});
}
# Check whether message was sent during blocking period.
- if ($sendtime >= $startblock && ($sendtime <= $endblock && $endblock > 0) ) {
+ if (($by_ip) ||
+ (($sendtime >= $startblock) && ($sendtime <= $endblock && $endblock > 0))) {
$$blocked{$msgid} = 'ON';
$$numblocked ++;
} else {
@@ -1067,7 +1071,9 @@ sub disfolder {
my %blocked = ();
my %setters = ();
my $numblocked = 0;
- my ($startblock,$endblock) = &Apache::loncommon::blockcheck(\%setters,'com');
+ my $clientip = &Apache::lonnet::get_requestor_ip($r);
+ my ($startblock,$endblock,$triggerblock,$by_ip,$blockdom) =
+ &Apache::loncommon::blockcheck(\%setters,'com',$clientip);
my %js_lt = &Apache::lonlocal::texthash(
sede => 'Select a destination folder to which the messages will be moved.',
nome => 'No messages have been selected to apply this action to.',
@@ -1111,7 +1117,7 @@ sub disfolder {
ENDDISHEADER
my $fsqs='&folder='.$folder;
- my @temp=&sortedmessages(\%blocked,$startblock,$endblock,\$numblocked,$folder,$msgstatus);
+ my @temp=&sortedmessages(\%blocked,$startblock,$endblock,$by_ip,\$numblocked,$folder,$msgstatus);
my $totalnumber=$#temp+1;
if ($totalnumber < 1) {
$r->print('
');
@@ -1124,9 +1130,10 @@ ENDDISHEADER
}
$r->print('
');
if ($numblocked > 0) {
- $r->print(&blocked_in_folder($numblocked,$startblock,$endblock,
+ $r->print(&blocked_in_folder($numblocked,$startblock,$endblock,$by_ip,$clientip,$blockdom,
\%setters));
}
+ $r->print('');
return;
}
my $interdis = $env{'form.interdis'};
@@ -1144,7 +1151,7 @@ ENDDISHEADER
$r->print('