--- loncom/interface/loncommunicate.pm 2004/03/26 19:35:59 1.21 +++ loncom/interface/loncommunicate.pm 2004/05/17 19:00:46 1.22 @@ -1,7 +1,7 @@ # The LearningOnline Network # Communicate # -# $Id: loncommunicate.pm,v 1.21 2004/03/26 19:35:59 www Exp $ +# $Id: loncommunicate.pm,v 1.22 2004/05/17 19:00:46 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -50,7 +50,9 @@ sub menu { 'da' => 'Date', 'us' => 'Username', 'op' => 'Open', -'do' => 'Domain' +'do' => 'Domain', +'cbs' => 'Configure blocking of student communication during exams' + ); my %help=(); foreach ('Course_Face_To_Face_Records,Course_Critical_Message', @@ -82,7 +84,9 @@ END $lt{'unr'}$help{'Course_Face_To_Face_Records,Course_Critical_Message'} - + + $lt{'cbs'} + END } $r->print(''); @@ -91,21 +95,34 @@ END $ENV{'user.name'}.':nohist_email', $ENV{'user.home'})); my @newmsgs; + my %setters = (); + my $startblock = 0; + my $endblock = 0; + my %blocked = (); + my $numblocked = 0; + # Check for blocking of display because of scheduled online exams. + &Apache::lonmsg::blockcheck(\%setters,\$startblock,\$endblock); foreach (@msgids) { my ($sendtime,$shortsubj,$fromname,$fromdom,$status)= &Apache::lonmsg::unpackmsgid($_); - if (defined($sendtime) && $sendtime!~/error/) { - $sendtime = &Apache::lonlocal::locallocaltime($sendtime); - if ($status eq 'new') { - push @newmsgs, { - msgid => $_, - sendtime => $sendtime, - shortsub => &Apache::lonnet::unescape($shortsubj), - from => $fromname, - fromdom => $fromdom + if (defined($sendtime) && $sendtime!~/error/) { + my $numsendtime = $sendtime; + $sendtime = &Apache::lonlocal::locallocaltime($sendtime); + if ($status eq 'new') { + if ($numsendtime >= $startblock && ($numsendtime <= $endblock && $endblock > 0) ) { + $blocked{$_} = 'ON'; + $numblocked ++; + } else { + push @newmsgs, { + msgid => $_, + sendtime => $sendtime, + shortsub => &Apache::lonnet::unescape($shortsubj), + from => $fromname, + fromdom => $fromdom + } } + } } - } } if ($#newmsgs >= 0) { $r->print(<print(""); } $r->print(''); - } else { + } elsif ($numblocked == 0) { $r->print("

".&mt('You have no unread messages')."

"); } + if ($numblocked > 0) { + my $beginblock = &Apache::lonlocal::locallocaltime($startblock); + my $finishblock = &Apache::lonlocal::locallocaltime($endblock); + if ($numblocked == 1) { + $r->print("

".&mt('You have').' '.$numblocked.' '.&mt('blocked unread message').".

"); + $r->print(&mt('This message is not viewable because').' '); + } else { + $r->print("

".&mt('You have').' '.$numblocked.' '.&mt('blocked unread messages').".

"); + $r->print(&mt('These').' '.$numblocked.' '.&mt('messages are not viewable because ')); + } + $r->print( +&mt('display of LON-CAPA messages sent to you by other students between').' '.$beginblock.' '.&mt('and').' '.$finishblock.' '.&mt('is currently being blocked because of online exams').'.'); + &Apache::lonmsg::build_block_table($r,$startblock,$endblock,\%setters); + } } sub handler {