Diff for /loncom/interface/lonmsgdisplay.pm between versions 1.193 and 1.194

version 1.193, 2020/11/11 01:27:04 version 1.194, 2021/11/30 15:55:37
Line 912  sub discrit { Line 912  sub discrit {
 }  }
   
 sub sortedmessages {  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 $suffix=&Apache::lonmsg::foldersuffix($folder);
     my @messages = &Apache::lonnet::getkeys('nohist_email'.$suffix);      my @messages = &Apache::lonnet::getkeys('nohist_email'.$suffix);
     #unpack the varibles and repack into temp for sorting      #unpack the varibles and repack into temp for sorting
Line 944  sub sortedmessages { Line 944  sub sortedmessages {
     push(@temp1,$content{'recuser'},$content{'recdomain'});      push(@temp1,$content{'recuser'},$content{'recdomain'});
  }   }
         # Check whether message was sent during blocking period.          # 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';              $$blocked{$msgid} = 'ON';
             $$numblocked ++;              $$numblocked ++;
         } else {           } else { 
Line 1071  sub disfolder { Line 1072  sub disfolder {
     my %blocked = ();      my %blocked = ();
     my %setters = ();      my %setters = ();
     my $numblocked = 0;      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(      my %js_lt = &Apache::lonlocal::texthash(
                       sede => 'Select a destination folder to which the messages will be moved.',                        sede => 'Select a destination folder to which the messages will be moved.',
                       nome => 'No messages have been selected to apply this action to.',                        nome => 'No messages have been selected to apply this action to.',
Line 1115  sub disfolder { Line 1118  sub disfolder {
 ENDDISHEADER  ENDDISHEADER
   
     my $fsqs='&amp;folder='.$folder;      my $fsqs='&amp;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;      my $totalnumber=$#temp+1;
     if ($totalnumber < 1) {      if ($totalnumber < 1) {
         $r->print('<p class="LC_info">');          $r->print('<p class="LC_info">');
Line 1128  ENDDISHEADER Line 1131  ENDDISHEADER
         }          }
         $r->print('</p>');          $r->print('</p>');
         if ($numblocked > 0) {          if ($numblocked > 0) {
             $r->print(&blocked_in_folder($numblocked,$startblock,$endblock,              $r->print(&blocked_in_folder($numblocked,$startblock,$endblock,$by_ip,$clientip,$blockdom,
                                          \%setters));                                           \%setters));
         }          }
         return;          return;
Line 1323  ENDDISHEADER Line 1326  ENDDISHEADER
 }  }
   
 sub blocked_in_folder {  sub blocked_in_folder {
     my ($numblocked,$startblock,$endblock,$setters) = @_;      my ($numblocked,$startblock,$endblock,$by_ip,$clientip,$blockdom,$setters) = @_;
     my $beginblock = &Apache::lonlocal::locallocaltime($startblock);      my $output;
     my $finishblock = &Apache::lonlocal::locallocaltime($endblock);      if ($by_ip) {
     my $output = '<br /><br />'.          $output = '<br /><br />'.
                     &mt('[quant,_1,message is, messages are] not viewable because display of LON-CAPA messages is blocked for your current IP address: [_2].',$numblocked,$clientip).'<br />'.
                     &mt('Note: communication is being blocked for certain IP address(es).');
       } else {
           my $beginblock = &Apache::lonlocal::locallocaltime($startblock);
           my $finishblock = &Apache::lonlocal::locallocaltime($endblock);
           $output = '<br /><br />'.
                   &mt('[quant,_1,message is, messages are] not viewable because display of LON-CAPA messages sent to you by other students between [_2] and [_3] is currently being blocked because of online exams.',$numblocked,$beginblock,$finishblock);                    &mt('[quant,_1,message is, messages are] not viewable because display of LON-CAPA messages sent to you by other students between [_2] and [_3] is currently being blocked because of online exams.',$numblocked,$beginblock,$finishblock);
       }
     #$output .= &Apache::loncommon::build_block_table($startblock,$endblock,      #$output .= &Apache::loncommon::build_block_table($startblock,$endblock,
     #                                                 $setters);      #                                                 $setters);
           
     my ($blocked, $blocktext) = &Apache::loncommon::blocking_status("com");      my ($blocked, $blocktext) = &Apache::loncommon::blocking_status("com",$clientip);
     $output .="<br /><br />".$blocktext;      $output .="<br /><br />".$blocktext;
   
     return $output;      return $output;
Line 2106  sub displaymessage { Line 2116  sub displaymessage {
     my %setters = ();      my %setters = ();
     my $numblocked = 0;      my $numblocked = 0;
     my $crstype = &Apache::loncommon::course_type();      my $crstype = &Apache::loncommon::course_type();
       my $clientip = &Apache::lonnet::get_requestor_ip($r);
   
 # info to generate "next" and "previous" buttons and check if message is blocked  # info to generate "next" and "previous" buttons and check if message is blocked
     my ($startblock,$endblock) = &Apache::loncommon::blockcheck(\%setters,'com');      my ($startblock,$endblock,$triggerblock,$by_ip,$blockdom) = 
     my @messages=&sortedmessages(\%blocked,$startblock,$endblock,\$numblocked,$folder,$msgstatus);          &Apache::loncommon::blockcheck(\%setters,'com',$clientip);
       my @messages=&sortedmessages(\%blocked,$startblock,$endblock,$by_ip,\$numblocked,$folder,$msgstatus);
     if ( $blocked{$msgid} eq 'ON' ) {      if ( $blocked{$msgid} eq 'ON' ) {
         &printheader($r,'/adm/email',&mt('Display a Message'));          &printheader($r,'/adm/email',&mt('Display a Message'));
         #$r->print(&mt('You attempted to display a message that is currently blocked because you are enrolled in one or more courses for which there is an ongoing online exam.'));          #$r->print(&mt('You attempted to display a message that is currently blocked because you are enrolled in one or more courses for which there is an ongoing online exam.'));
         my($blocked, $blocktext) = &Apache::loncommon::blocking_status("com");          my($blocked, $blocktext) = &Apache::loncommon::blocking_status("com",$clientip);
         $r->print("<br />".$blocktext);          $r->print("<br />".$blocktext);
         return;          return;
     }      }

Removed from v.1.193  
changed lines
  Added in v.1.194


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>