version 1.5, 2005/04/07 06:56:23
|
version 1.10, 2005/04/11 21:51:43
|
Line 45 use Time::Local;
|
Line 45 use Time::Local;
|
|
|
sub handler { |
sub handler { |
my $r = shift; |
my $r = shift; |
|
if ($r->header_only) { |
|
&Apache::loncommon::content_type($r,'text/html'); |
|
$r->send_http_header; |
|
return OK; |
|
} |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['command']); |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['command']); |
|
|
my $command = $env{'form.command'}; |
my $command = $env{'form.command'}; |
Line 53 sub handler {
|
Line 58 sub handler {
|
$command = "info"; |
$command = "info"; |
} |
} |
|
|
|
&Apache::loncommon::content_type($r,'text/html'); |
|
$r->send_http_header; |
$r->print(&display_header()); |
$r->print(&display_header()); |
if (! (($env{'request.course.fn'}) && (&Apache::lonnet::allowed('vsa',$env{'request.course.id'})))) { |
if (! (($env{'request.course.fn'}) && (&Apache::lonnet::allowed('vsa',$env{'request.course.id'})))) { |
# Not in a course, or not allowed to modify parms |
# Not in a course, or not allowed to modify parms |
Line 60 sub handler {
|
Line 67 sub handler {
|
return HTTP_NOT_ACCEPTABLE; |
return HTTP_NOT_ACCEPTABLE; |
} |
} |
|
|
|
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
|
if ($command eq 'config') { |
|
&Apache::lonhtmlcommon::add_breadcrumb |
|
({href=>'/adm/whatsnew?command=config', |
|
text=>"Configure display"}); |
|
$r->print(&Apache::lonhtmlcommon::breadcrumbs |
|
(undef,'Course Action Items','Course_Action_Items_Config')); |
|
} else { |
|
&Apache::lonhtmlcommon::add_breadcrumb |
|
({href=>'/adm/whatsnew?command=info', |
|
text=>"Display Action Items"}); |
|
$r->print(&Apache::lonhtmlcommon::breadcrumbs |
|
(undef,'Course Action Items','Course_Action_Items_Display')); |
|
} |
&display_main_box($r,$command); |
&display_main_box($r,$command); |
} |
} |
|
|
Line 73 sub display_main_box {
|
Line 94 sub display_main_box {
|
my ($r,$command) = @_; |
my ($r,$command) = @_; |
my $domain=&Apache::loncommon::determinedomain(); |
my $domain=&Apache::loncommon::determinedomain(); |
my $tabbg=&Apache::loncommon::designparm('coordinator.tabbg',$domain); |
my $tabbg=&Apache::loncommon::designparm('coordinator.tabbg',$domain); |
$r->print(<<END_OF_BLOCK); |
my $selconfig; |
<br /> |
my $selinfo; |
<br /> |
if ($command eq 'config') { |
<table width="100%" border="0" cellpadding="0" cellspacing="0"> |
$selinfo = 'selected="selected"'; |
<tr> |
} else { |
<td width="100%" bgcolor="#000000"> |
$selconfig = 'selected="selected"'; |
<table width="100%" border="0" cellpadding="1" cellspacing="0"> |
} |
<tr> |
my $picker = (' |
<td width="100%" bgcolor="#000000"> |
<form> |
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#ffffff"> |
<nobr> |
<tr> |
<input type="submit" value="'.&mt('Change page to:').'" /> |
<td colspan="2" width="100%" bgcolor="$tabbg"> |
<select name="command"> |
<table width="100%" border="0" cellpadding="5" cellspacing="0"> |
<option value="info" '.$selinfo.'">'.&mt('Display Action Items').'</option> |
<tr> |
<option value="" '.$selconfig.'">'.&mt('Configure Settings').'</option> |
<td width="100%"> |
</select> |
<table width="100%" border="0" cellpadding="0" cellspacing="0"> |
</nobr> |
<tr> |
</form>'); |
<td> |
|
<font face="arial,verdana" size="3"><b>Course Action Items</b></font></td> |
$r->print('<table width="100%" border="0" cellpadding="5" cellspacing="0"><tr><td width="100%">'); |
</td> |
|
<td align="right"> |
|
</td> |
|
</tr> |
|
</table> |
|
</td> |
|
</tr> |
|
</table> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td width="100" valign="top" bgcolor="#dddddd" height="100%"> |
|
<table width="100" border="0" cellpadding="0" cellspacing="0" height="100%"> |
|
<tr> |
|
<td valign="top" height="100%"> |
|
END_OF_BLOCK |
|
&display_nav_box($r,$command); |
|
$r->print('</td></tr></table></td>'); |
|
$r->print('<td width="100%" bgcolor="#ffffff"><table width="100%" border="0" cellpadding="5" cellspacing="0"><tr><td width="100%">'); |
|
|
|
if ($command eq 'config') { |
if ($command eq 'config') { |
&display_config_box($r); |
&display_config_box($r,$picker); |
} else { |
} else { |
&display_actions_box($r); |
&display_actions_box($r,$picker); |
} |
} |
$r->print(<<END_OF_BLOCK); |
$r->print(<<END_OF_BLOCK); |
</td> |
|
</tr> |
|
</table> |
|
</td> |
|
</tr> |
|
</table> |
|
</td> |
|
</tr> |
|
</table> |
|
</td> |
|
</tr> |
|
</table> |
|
</td> |
</td> |
</tr> |
</tr> |
</table><br /> |
</table><br /> |
Line 138 END_OF_BLOCK
|
Line 128 END_OF_BLOCK
|
END_OF_BLOCK |
END_OF_BLOCK |
} |
} |
|
|
#------------------------------ |
|
# display_nav_box |
|
# |
|
# Display the navigation box |
|
#------------------------------ |
|
|
|
sub display_nav_box { |
|
my ($r,$command) = @_; |
|
$r->print('<table width="100" border="0" cellpadding="3" cellspacing="0">'."\n"); |
|
if ($command eq "info") { |
|
$r->print('<tr><td bgcolor="#ffffff">'); |
|
$r->print('<small><b>Action Items</b></small><br />'); |
|
$r->print('</td></tr>'); |
|
} else { |
|
$r->print('<tr><td>'); |
|
$r->print('<small><a href="/adm/whatsnew?command=info">Current Action Items</a></small><br />'); |
|
$r->print('</td></tr>'); |
|
} |
|
$r->print('<tr><td> </td></tr>'); |
|
if ($command eq "config") { |
|
$r->print('<tr><td bgcolor="#ffffff">'); |
|
$r->print('<small><b>Display options</b></small><br />'); |
|
$r->print('</td></tr>'); |
|
} else { |
|
$r->print('<tr><td>'); |
|
$r->print('<small><a href="/adm/whatsnew?command=config">Display options</a></small><br />'); |
|
$r->print('</td></tr>'); |
|
} |
|
$r->print('</table>'); |
|
} |
|
|
|
#------------------------------- |
#------------------------------- |
# display_header |
# display_header |
# |
# |
Line 196 ENDHEAD
|
Line 155 ENDHEAD
|
#------------------------------- |
#------------------------------- |
|
|
sub display_actions_box() { |
sub display_actions_box() { |
my $r = shift; |
my ($r,$picker) = @_; |
|
|
my $rowColor1 = "#ffffff"; |
my $rowColor1 = "#ffffff"; |
my $rowColor2 = "#eeeeee"; |
my $rowColor2 = "#eeeeee"; |
Line 231 sub display_actions_box() {
|
Line 190 sub display_actions_box() {
|
return; |
return; |
} |
} |
|
|
$r->print('<b>Course Action Items</b><br /><hr width="100%" /><table border="0" width="100%" cellpadding="2" cellspacing="4" bgcolor="#ffffff"><tr><td align="left" valign="top" width="45%">'); |
$r->print('<b>'.$picker.'</b><br /><hr width="100%" /><table border="0" width="100%" cellpadding="2" cellspacing="4"><tr><td align="left" valign="top" width="45%">'); |
|
|
## UNREAD COURSE DISCUSSION POSTS ## |
## UNREAD COURSE DISCUSSION POSTS ## |
$r->print(<<"END"); |
$r->print(<<"END"); |
Line 247 sub display_actions_box() {
|
Line 206 sub display_actions_box() {
|
END |
END |
|
|
if (@newdiscussions > 0) { |
if (@newdiscussions > 0) { |
|
$r->print('<tr bgcolor="#cccccc"><td><b><small>Location</small></b></td><td><b><small>Type</small></b><td align="right"><b><small>Number of new posts</small></b></td></tr>'); |
# @newdiscussions = sort { &cmp_title($a,$b) } @newdiscussions; |
# @newdiscussions = sort { &cmp_title($a,$b) } @newdiscussions; |
my $rowNum = 0; |
my $rowNum = 0; |
foreach my $ressymb (@newdiscussions) { |
foreach my $ressymb (@newdiscussions) { |
my $forum_title = $unread{$ressymb}{'title'}; |
my $forum_title = $unread{$ressymb}{'title'}; |
|
my $type = 'Resource'; |
my $feedurl=&Apache::lonfeedback::get_feedurl($ressymb); |
my $feedurl=&Apache::lonfeedback::get_feedurl($ressymb); |
|
if ($feedurl =~ /bulletinboard/) { |
|
$type = 'Bulletin Board'; |
|
} |
my $unreadnum = keys(%{$unread{$ressymb}}); |
my $unreadnum = keys(%{$unread{$ressymb}}); |
$unreadnum = $unreadnum - 2; |
$unreadnum = $unreadnum - 2; |
if ($unreadnum > 0) { |
if ($unreadnum > 0) { |
Line 260 END
|
Line 224 END
|
} else { |
} else { |
$rowColor = $rowColor2; |
$rowColor = $rowColor2; |
} |
} |
$r->print('<tr><td bgcolor="'.$rowColor.'"><small><a href="'.$feedurl.'?symb='.$unread{$ressymb}{symb}.'">'.$forum_title.':</a> </td><td bgcolor="'.$rowColor.'" align="right">'.$unreadnum.' </td></tr>'); |
$r->print('<tr bgcolor="'.$rowColor.'"><td><small><a href="'.$feedurl.'?symb='.$unread{$ressymb}{symb}.'">'.$forum_title.':</a> </td><td><small>'.$type.'</small></td><td align="right">'.$unreadnum.' </td></tr>'); |
$rowNum ++; |
$rowNum ++; |
} |
} |
} |
} |
Line 282 END
|
Line 246 END
|
END |
END |
|
|
if (@tograde > 0) { |
if (@tograde > 0) { |
$r->print('<tr><th bgcolor="#cccccc">Problem Name</th><th>Number ungraded</th></tr>'); |
$r->print('<tr bgcolor="#cccccc"><td><b><small>Problem Name</small></b></td><td align="right"><b><small>Number ungraded</small></b></td></tr>'); |
my $rowNum = 0; |
my $rowNum = 0; |
foreach my $res (@tograde) { |
foreach my $res (@tograde) { |
if ($rowNum %2 == 1) { |
if ($rowNum %2 == 1) { |
Line 290 END
|
Line 254 END
|
} else { |
} else { |
$rowColor = $rowColor2; |
$rowColor = $rowColor2; |
} |
} |
|
my ($map,$id,$url)=&Apache::lonnet::decode_symb($res); |
$r->print('<tr bgcolor="'.$rowColor.'"><td>'.$ungraded{$res}{title}.'</td><td>'.$ungraded{$res}{count}.'</td></tr>'); |
my $linkurl=&Apache::lonnet::clutter($url); |
|
$linkurl .= '?symb='.&Apache::lonnet::escape($res); |
|
|
|
$r->print('<tr bgcolor="'.$rowColor.'"><td><a href="'.$linkurl.'"><small>'.$ungraded{$res}{title}.'</small></a></td><td align="right"><small>'.$ungraded{$res}{count}.'</small></td></tr>'); |
$rowNum ++; |
$rowNum ++; |
} |
} |
} else { |
} else { |
$r->print('<tr><td bgcolor="#ffffff"><br><center><i><b><small> No problems require handgrading </small><br><br></b></i></td></tr>'); |
$r->print('<tr><td bgcolor="#ffffff"><br><center><i><b><small> No problems require handgrading </small><br><br></b></i></td></tr>'); |
} |
} |
$r->print('</table></td></tr></table></td></tr></table><br />'); |
$r->print('</table></td></tr></table></td></tr></table><br />'); |
|
|
|
## BOMBS ## |
|
$r->print(<<"END"); |
|
<table border="0" cellpadding="0" cellspacing="0" bgcolor="#000000" width="100%"> |
|
<tr> |
|
<td> |
|
<table border="0" cellpadding="1" cellspacing="1" bgcolor="#000000" width="100%"> |
|
<tr> |
|
<td bgcolor="$tabbg"><b>Problems with errors</b></td> |
|
</tr> |
|
<tr> |
|
<td bgcolor="#ffffff"> |
|
<table width="100%" cellspacing="0" cellpadding="0" border="0"> |
|
END |
|
my $bombnum = 0; |
|
if (@bombs > 0) { |
|
# @bombs = sort { &cmp_title($a,$b) } @bombs; |
|
foreach my $bomb (@bombs) { |
|
if ($bombnum %2 == 1) { |
|
$rowColor = $rowColor1; |
|
} else { |
|
$rowColor = $rowColor2; |
|
} |
|
$r->print('<tr bgcolor="'.$rowColor.'"><td>'.$bombed{$bomb}{errorlink}.'</td></tr>'); |
|
$bombnum ++; |
|
} |
|
} else { |
|
$r->print('<tr><td bgcolor="#ffffff"><br /><center><b><i><small>No problems with errors</small></i></b></center><br /></td></tr>'); |
|
} |
|
$r->print('</table></td></tr></table></td></tr></table><br />'); |
|
|
$r->print('</td><td width="5%"> </td><td align="left" valign="top" width-"50%">'); |
$r->print('</td><td width="5%"> </td><td align="left" valign="top" width-"50%">'); |
|
|
## MESSAGES ## |
## MESSAGES ## |
Line 314 END
|
Line 312 END
|
<table width="100%" cellspacing="0" cellpadding="0" border="0"> |
<table width="100%" cellspacing="0" cellpadding="0" border="0"> |
END |
END |
if ($msgcount > 0) { |
if ($msgcount > 0) { |
|
$r->print('<tr bgcolor="#cccccc"><td><b><small>'.&mt('Number').'</small></b></td><td><b><small>'.&mt('Subject').'</small></b></td><td><b><small>'.&mt('Sender').'</small></b></td><td><b><small>'.&mt('Date/Time').'</small></b></td></tr>'); |
my $rowNum = 0; |
my $rowNum = 0; |
my $mailcount = 1; |
my $mailcount = 1; |
foreach my $msg (@newmsgs) { |
foreach my $msg (@newmsgs) { |
Line 322 END
|
Line 321 END
|
} else { |
} else { |
$rowColor = $rowColor2; |
$rowColor = $rowColor2; |
} |
} |
$r->print('<tr><td bgcolor="'.$rowColor.'" valign="top"><small>'.$mailcount.'. <small></td><td valign="top"><small><a href="/adm/mail?">'.$msg->{'shortsub'}.'</a> </small></td><td valign="top"><small> '.$msg->{'from'}.'@'.$msg->{'fromdom'}.' </small></td><td valign="top"><small>'.$msg->{'sendtime'}.'</small></td></tr>'); |
$r->print('<tr bgcolor="'.$rowColor.'"><td valign="top"><small>'.$mailcount.'. <small></td><td valign="top"><small><a href="/adm/mail?">'.$msg->{'shortsub'}.'</a> </small></td><td valign="top"><small> '.$msg->{'from'}.'@'.$msg->{'fromdom'}.' </small></td><td valign="top"><small>'.$msg->{'sendtime'}.'</small></td></tr>'); |
$rowNum ++; |
$rowNum ++; |
$mailcount ++; |
$mailcount ++; |
} |
} |
Line 345 END
|
Line 344 END
|
END |
END |
|
|
if ($critmsgcount > 0) { |
if ($critmsgcount > 0) { |
|
$r->print('<tr bgcolor="#cccccc"><td><b><small>Number</small></b></td><td><b><small>Subject</small></b></td><td><b><small>Sender</small></b></td><td><b><small>Date/Time</small></b></td></tr>'); |
my $rowNum = 0; |
my $rowNum = 0; |
my $mailcount = 1; |
my $mailcount = 1; |
foreach my $msg (@critmsgs) { |
foreach my $msg (@critmsgs) { |
Line 353 END
|
Line 353 END
|
} else { |
} else { |
$rowColor = $rowColor2; |
$rowColor = $rowColor2; |
} |
} |
$r->print('<tr><td bgcolor="'.$rowColor.'" valign="top"><small>'.$mailcount.'. <small></td><td valign="top"><small><a href="/adm/mail?">'.$msg->{'shortsub'}.'</a> </small></td><td valign="top"><small> '.$msg->{'from'}.'@'.$msg->{'fromdom'}.' </small></td><td valign="top"><small>'.$msg->{'sendtime'}.'</small></td></tr>'); |
$r->print('<tr bgcolor="'.$rowColor.'"><td valign="top"><small>'.$mailcount.'. <small></td><td valign="top"><small><a href="/adm/mail?">'.$msg->{'shortsub'}.'</a> </small></td><td valign="top"><small> '.$msg->{'from'}.'@'.$msg->{'fromdom'}.' </small></td><td valign="top"><small>'.$msg->{'sendtime'}.'</small></td></tr>'); |
$rowNum ++; |
$rowNum ++; |
$mailcount ++; |
$mailcount ++; |
} |
} |
Line 363 END
|
Line 363 END
|
|
|
$r->print('</table></td></tr></table></td></tr></table><br />'); |
$r->print('</table></td></tr></table></td></tr></table><br />'); |
|
|
## BOMBS ## |
|
$r->print(<<END); |
|
<table border="0" cellpadding="0" cellspacing="0" bgcolor="#000000" width="100%"> |
|
<tr> |
|
<td> |
|
<table border="0" cellpadding="1" cellspacing="1" bgcolor="#000000" width="100%"> |
|
<tr> |
|
<td bgcolor="$tabbg"><b>Problems with errors</b></td> |
|
</tr> |
|
<tr> |
|
<td bgcolor="#ffffff"> |
|
<table width="100%" cellspacing="0" cellpadding="0" border="0"> |
|
END |
|
my $bombnum = 0; |
|
if (@bombs > 0) { |
|
# @bombs = sort { &cmp_title($a,$b) } @bombs; |
|
foreach my $bomb (@bombs) { |
|
if ($bombnum %2 == 1) { |
|
$rowColor = $rowColor1; |
|
} else { |
|
$rowColor = $rowColor2; |
|
} |
|
$r->print('<tr bgcolor="'.$rowColor.'"><td>'.$bombed{$bomb}{errorlink}.'</td></tr>'); |
|
$bombnum ++; |
|
} |
|
} else { |
|
$r->print('<tr><td bgcolor="#ffffff"><br /><center><b><i><small>No problems with errors</small></i></b></center><br /></td></tr>'); |
|
} |
|
$r->print('</table></td></tr></td></tr></table>'); |
|
$r->print(' |
$r->print(' |
</table> |
</table> |
</td> |
</td> |
Line 424 sub getitems {
|
Line 395 sub getitems {
|
%{$$bombed{$symb}} = (); |
%{$$bombed{$symb}} = (); |
%{$$ungraded{$symb}} = (); |
%{$$ungraded{$symb}} = (); |
my $title = $resource->compTitle(); |
my $title = $resource->compTitle(); |
my $ressymb = $symb; |
my $ressymb = $resource->wrap_symb(); |
if ($ressymb =~ m-(___adm/\w+/\w+)/(\d+)/bulletinboard$-) { |
|
$ressymb = &Apache::lonfeedback::wrap_symb('bulletin___'.$2.$1.'/'. |
|
$2.'/bulletinboard'); |
|
} |
|
|
|
# Check for unread discussion postings |
# Check for unread discussion postings |
if (defined($discussiontime{$ressymb})) { |
if (defined($discussiontime{$ressymb})) { |
push(@discussions,$ressymb); |
push(@discussions,$ressymb); |
Line 450 sub getitems {
|
Line 416 sub getitems {
|
if ($prevread <$contrib{$id.':timestamp'}) { |
if ($prevread <$contrib{$id.':timestamp'}) { |
$$unread{$ressymb}{$unreadcount} = $id.': '.$contrib{$id.':subject'}; |
$$unread{$ressymb}{$unreadcount} = $id.': '.$contrib{$id.':subject'}; |
$unreadcount ++; |
$unreadcount ++; |
push(@{$newdiscussions}, $ressymb); |
|
} |
} |
} |
} |
} |
} |
} |
} |
} |
if ($unreadcount) { push(@{$newdiscussions}, $ressymb); } |
|
} |
|
|
# Check for ungraded problems |
# Check for ungraded problems |
if ($resource->is_problem()) { |
if ($resource->is_problem()) { |
Line 466 sub getitems {
|
Line 432 sub getitems {
|
my ($uname,$udom) = split(/:/,$student); |
my ($uname,$udom) = split(/:/,$student); |
my %status=&Apache::grades::student_gradeStatus($url,$symb,$udom,$uname,$partlist); |
my %status=&Apache::grades::student_gradeStatus($url,$symb,$udom,$uname,$partlist); |
my $submitted = 0; |
my $submitted = 0; |
my $graded = 0; |
my $ungraded = 0; |
foreach (keys(%status)) { |
foreach (keys(%status)) { |
$submitted = 1 if ($status{$_} ne 'nothing'); |
$submitted = 1 if ($status{$_} ne 'nothing'); |
$graded = 1 if ($status{$_} !~ /^correct/); |
$ungraded = 1 if ($status{$_} =~ /^ungraded/); |
my ($foo,$partid,$foo1) = split(/\./,$_); |
my ($foo,$partid,$foo1) = split(/\./,$_); |
if ($status{'resource.'.$partid.'.submitted_by'} ne '') { |
if ($status{'resource.'.$partid.'.submitted_by'} ne '') { |
$submitted = 0; |
$submitted = 0; |
} |
} |
} |
} |
next if (!$submitted || !$graded); |
next if (!$submitted || !$ungraded); |
$ctr ++; |
$ctr ++; |
} |
} |
if ($ctr) { |
if ($ctr) { |
Line 505 sub getmail {
|
Line 471 sub getmail {
|
# Check for unread mail in course |
# Check for unread mail in course |
my $msgcount = 0; |
my $msgcount = 0; |
|
|
my @messages = &Apache::lonnet::getkeys('nohist_email'); |
my @messages = sort(&Apache::lonnet::getkeys('nohist_email')); |
foreach my $message (@messages) { |
foreach my $message (@messages) { |
my $msgid=&Apache::lonnet::escape($message); |
my $msgid=&Apache::lonnet::escape($message); |
my ($sendtime,$shortsubj,$fromname,$fromdom,$fromcid,$status)= |
my ($sendtime,$shortsubj,$fromname,$fromdom,$status,$fromcid)= |
&Apache::lonmsg::unpackmsgid($msgid); |
&Apache::lonmsg::unpackmsgid($msgid); |
if ($fromcid eq $env{'request.course.id'}) { |
if (($fromcid) && ($fromcid eq $env{'request.course.id'})) { |
if (defined($sendtime) && $sendtime!~/error/) { |
if (defined($sendtime) && $sendtime!~/error/) { |
my $numsendtime = $sendtime; |
my $numsendtime = $sendtime; |
$sendtime = &Apache::lonlocal::locallocaltime($sendtime); |
$sendtime = &Apache::lonlocal::locallocaltime($sendtime); |
if ($status eq 'new') { |
if ($status eq 'new') { |
$$msgcount ++; |
$msgcount ++; |
|
if ($shortsubj eq '') { |
|
$shortsubj = &mt('No subject'); |
|
} |
|
$shortsubj = &Apache::lonnet::unescape($shortsubj); |
push(@{$newmsgs}, { |
push(@{$newmsgs}, { |
msgid => $msgid, |
msgid => $msgid, |
sendtime => $sendtime, |
sendtime => $sendtime, |
shortsub => &Apache::lonnet::unescape($shortsubj), |
shortsub => $shortsubj, |
from => $fromname, |
from => $fromname, |
fromdom => $fromdom |
fromdom => $fromdom |
}); |
}); |
Line 533 sub getmail {
|
Line 503 sub getmail {
|
my $result = ''; |
my $result = ''; |
my $critmsgcount = 0; |
my $critmsgcount = 0; |
foreach my $msgid (sort(keys(%what))) { |
foreach my $msgid (sort(keys(%what))) { |
my ($sendtime,$shortsubj,$fromname,$fromdom,$fromcid,$status)= |
my ($sendtime,$shortsubj,$fromname,$fromdom,$status,$fromcid)= |
&Apache::lonmsg::unpackmsgid($_); |
&Apache::lonmsg::unpackmsgid($msgid); |
if ($fromcid eq $env{'request.course.id'}) { |
if (($fromcid) && ($fromcid eq $env{'request.course.id'})) { |
if (defined($sendtime) && $sendtime!~/error/) { |
if (defined($sendtime) && $sendtime!~/error/) { |
my $numsendtime = $sendtime; |
my $numsendtime = $sendtime; |
$sendtime = &Apache::lonlocal::locallocaltime($sendtime); |
$sendtime = &Apache::lonlocal::locallocaltime($sendtime); |
$critmsgcount ++; |
$critmsgcount ++; |
|
if ($shortsubj eq '') { |
|
$shortsubj = &mt('No subject'); |
|
} |
|
$shortsubj = &Apache::lonnet::unescape($shortsubj); |
push(@{$critmsgs}, { |
push(@{$critmsgs}, { |
msgid => $msgid, |
msgid => $msgid, |
sendtime => $sendtime, |
sendtime => $sendtime, |
shortsub => &Apache::lonnet::unescape($shortsubj), |
shortsub => $shortsubj, |
from => $fromname, |
from => $fromname, |
fromdom => $fromdom |
fromdom => $fromdom |
}); |
}); |
Line 560 sub cmp_title {
|
Line 534 sub cmp_title {
|
return $atitle cmp $btitle; |
return $atitle cmp $btitle; |
} |
} |
|
|
|
1; |