');
while (my ($student,$info) = each(%$classlist)) {
my ($sname,$sdom,$status,$fullname,$section) =
(@{$info}[&Apache::loncoursedata::CL_SNAME(),
@@ -663,7 +676,7 @@ ENDDISHEADER
&Apache::loncoursedata::CL_STATUS(),
&Apache::loncoursedata::CL_FULLNAME(),
&Apache::loncoursedata::CL_SECTION()]);
- # next if ($status ne 'Active');
+ next if ($status ne 'Active');
my $key = 'send_to_&&&'.$section.'&&&'.$student;
if (! defined($fullname) || $fullname eq '') { $fullname = $sname; }
$r->print('
'.$sname.'@'.$sdom.'
'.$section.
'
');
}
- $r->print('
');
+ $r->print('');
}
# ==================================================== Display Critical Message
@@ -686,7 +699,6 @@ sub discrit {
foreach (sort keys %what) {
my %content=&unpackagemsg($what{$_});
next if ($content{'senderdomain'} eq '');
- $content{'message'}=~s/\n/\ /g;
$result.=''.&mt('From').': '.
&Apache::loncommon::aboutmewrapper(
&Apache::loncommon::plainname($content{'sendername'},$content{'senderdomain'}),$content{'sendername'},$content{'senderdomain'}).' ('.
@@ -770,10 +782,108 @@ sub sortedmessages {
return @temp;
}
+# ======================================================== Display new messages
+
+
+sub disnew {
+ my $r=shift;
+ my %lt=&Apache::lonlocal::texthash(
+ 'nm' => 'New Messages',
+ 'su' => 'Subject',
+ 'da' => 'Date',
+ 'us' => 'Username',
+ 'op' => 'Open',
+ 'do' => 'Domain'
+ );
+ my @msgids = sort split(/\&/,&Apache::lonnet::reply
+ ('keys:'.$ENV{'user.domain'}.':'.
+ $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.
+ &blockcheck(\%setters,\$startblock,\$endblock);
+ foreach (@msgids) {
+ my ($sendtime,$shortsubj,$fromname,$fromdom,$status)=
+ &Apache::lonmsg::unpackmsgid($_);
+ 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(<$lt{'nm'}
+
 
+
$lt{'da'}
$lt{'us'}
$lt{'do'}
$lt{'su'}
+TABLEHEAD
+ foreach my $msg (@newmsgs) {
+ $r->print(<<"ENDLINK");
+