--- loncom/interface/lonmsgdisplay.pm 2008/06/06 05:24:28 1.86 +++ loncom/interface/lonmsgdisplay.pm 2008/08/27 08:57:15 1.92 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Routines for messaging display # -# $Id: lonmsgdisplay.pm,v 1.86 2008/06/06 05:24:28 raeburn Exp $ +# $Id: lonmsgdisplay.pm,v 1.92 2008/08/27 08:57:15 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -513,22 +513,34 @@ sub discourse { $result .= '<input type="hidden" name="sendmode" value="group" />'."\n"; - $result .= &Apache::lonselstudent::render_student_list($current_members, - "compemail", - "current", - \%defaultUsers, - 1,"selectedusers",1); - - $result .= &Apache::lonselstudent::render_student_list($expired_members, - "compemail", - "expired", - \%defaultUsers, - 1, "selectedusers",0); - $result .= &Apache::lonselstudent::render_student_list($future_members, - "compemail", - "future", - \%defaultUsers, - 1, "selectedusers", 0); + my $tmptext; + if ($tmptext = &Apache::lonselstudent::render_student_list($current_members, + "compemail", + "current", + \%defaultUsers, + 1,"selectedusers",1) + ) { + $result .= '<h2>'.&mt('Course members with current access').'</h2>'; + $result .= $tmptext; + } + if ($tmptext = &Apache::lonselstudent::render_student_list($expired_members, + "compemail", + "expired", + \%defaultUsers, + 1, "selectedusers",0) + ) { + $result .= '<h2>'.&mt('Course members with expired access').'</h2>'; + $result .= $tmptext; + } + if ($tmptext = &Apache::lonselstudent::render_student_list($future_members, + "compemail", + "future", + \%defaultUsers, + 1, "selectedusers", 0) + ) { + $result .= '<h2>'.&mt('Course members with future access').'</h2>'; + $result .= $tmptext; + } return $result; } @@ -721,23 +733,34 @@ sub groupmail_sent { sub discrit { my $r=shift; - my $header = '<h1><font color="red">'.&mt('Critical Messages').'</font></h1>'. - '<form action="/adm/email" method="POST">'. - '<input type="hidden" name="confirm" value="true" />'; + my $header = '<h1>'.&mt('Critical Messages').'</h1>' + .'<div class="LC_warning">' + .&mt('Access to other pages will be prevented until you have moved all critical messages to your inbox.') + .'</div><br />' + .'<form action="/adm/email" method="POST">' + .'<input type="hidden" name="confirm" value="true" />'; my %what=&Apache::lonnet::dump('critical'); my $result = ''; foreach my $key (sort(keys(%what))) { my %content=&Apache::lonmsg::unpackagemsg($what{$key}); next if ($content{'senderdomain'} eq ''); - $result.='<hr />'.&mt('From').': <b>'. -&Apache::loncommon::aboutmewrapper( - &Apache::loncommon::plainname($content{'sendername'},$content{'senderdomain'}),$content{'sendername'},$content{'senderdomain'}).'</b> ('. -$content{'sendername'}.':'. - $content{'senderdomain'}.') '.$content{'time'}. - '<br />'.&mt('Subject').': '.$content{'subject'}. - '<br /><pre>'. - &Apache::lontexconvert::msgtexconverted($content{'message'}). - '</pre><div class="LC_error">'; + $result .= &Apache::lonhtmlcommon::start_pick_box() + .&Apache::lonhtmlcommon::row_title(&mt('From'),undef,'LC_oddrow_value') + .'<b>'.&Apache::loncommon::aboutmewrapper( + &Apache::loncommon::plainname($content{'sendername'},$content{'senderdomain'}),$content{'sendername'},$content{'senderdomain'}).'</b>' + .' ('.$content{'sendername'}.':'.$content{'senderdomain'}.')' + .&Apache::lonhtmlcommon::row_closure(1) + .&Apache::lonhtmlcommon::row_title(&mt('Date'),undef,'LC_evenrow_value') + .$content{'time'} + .&Apache::lonhtmlcommon::row_closure(1) + .&Apache::lonhtmlcommon::row_title(&mt('Subject'),undef,'LC_oddrow_value') + .$content{'subject'} + .&Apache::lonhtmlcommon::row_closure(1) + .&Apache::lonhtmlcommon::row_title(&mt('Message'),undef,'LC_evenrow_value') + .'<pre>'.&Apache::lontexconvert::msgtexconverted($content{'message'}).'</pre>' + .&Apache::lonhtmlcommon::row_closure() + .&Apache::lonhtmlcommon::row_title('',undef,'LC_oddrow_value') + .'<div class="LC_warning">'; my ($rec_button,$reprec_button); $rec_button = &mt('Move to Inbox'); if (!$content{'noreplies'}) { @@ -752,12 +775,17 @@ $content{'sendername'}.':'. } else { $result .= &mt('Access to other pages will be prevented until you have moved the message to your inbox.'); } - $result .= '</div><br />'. - '<input type="submit" name="rec_'.$key.'" value="'.$rec_button.'" />'; + $result .= '</div>' + .&Apache::lonhtmlcommon::row_closure(1) + .&Apache::lonhtmlcommon::row_title('',undef,'LC_evenrow_value') + .'<input type="submit" name="rec_'.$key.'" value="'.$rec_button.'" />'; if (!$content{'noreplies'}) { - $result .= '<input type="submit" name="reprec_'.$key.'" '. - 'value="'.$reprec_button.'" />'; + $result .= '<input type="submit" name="reprec_'.$key.'" ' + .'value="'.$reprec_button.'" />' } + $result .= &Apache::lonhtmlcommon::row_closure(1) + .&Apache::lonhtmlcommon::end_pick_box() + .'<br />'; } # Check to see if there were any messages. if ($result eq '') { @@ -2068,7 +2096,6 @@ sub displaymessage { my %message=&Apache::lonnet::get('nohist_email'.$suffix,[$msgid]); my %content=&Apache::lonmsg::unpackagemsg($message{$msgid}); my $counter=0; - $r->print('<pre>'); my $escmsgid=&escape($msgid); foreach (@messages) { if ($_->[5] eq $escmsgid){ @@ -2076,7 +2103,6 @@ sub displaymessage { } $counter++; } - $r->print('</pre>'); my $see_anonymous; my $from_student = 0; @@ -2127,18 +2153,33 @@ sub displaymessage { $symb=&Apache::lonnet::symbread($content{'baseurl'}); } if ($env{'user.adv'}) { - my $adv_actions; - $r->print('<table border="2" width="100%"><tr bgcolor="#FFAAAA"><td>'.&mt('Currently available actions (will open extra window)').':</td>'); + my $actionlist=''; if (&Apache::lonnet::allowed('vgr',$env{'request.course.id'})) { - $r->print('<td><b>'.&Apache::loncommon::track_student_link(&mt('View recent activity'),$content{'sendername'},$content{'senderdomain'},'check').'</b></td>'); - } + $actionlist.='<td><b>' + .&Apache::loncommon::track_student_link( + &mt('View recent activity'),$content{'sendername'},$content{'senderdomain'},'check') + .'</b></td>'; + } if (&Apache::lonnet::allowed('opa',$env{'request.course.id'}) && $symb) { - $r->print('<td><b>'.&Apache::loncommon::pprmlink(&mt('Set/Change parameters'),$content{'sendername'},$content{'senderdomain'},$symb,'check').'</b></td>'); + $actionlist.='<td><b>' + .&Apache::loncommon::pprmlink( + &mt('Set/Change parameters'),$content{'sendername'},$content{'senderdomain'},$symb,'check') + .'</b></td>'; } if (&Apache::lonnet::allowed('mgr',$env{'request.course.id'}) && $symb) { - $r->print('<td><b>'.&Apache::loncommon::pgrdlink(&mt('Set/Change grades'),$content{'sendername'},$content{'senderdomain'},$symb,'check').'</b></td>'); + $actionlist.='<td><b>' + .&Apache::loncommon::pgrdlink( + &mt('Set/Change grades'),$content{'sendername'},$content{'senderdomain'},$symb,'check') + .'</b></td>'; } - $r->print('</tr></table>'); + if ($actionlist) { + $r->print('<table border="2" width="100%">' + .'<tr bgcolor="#FFAAAA"><td>' + .&mt('Currently available actions (will open extra window):') + .'</td>' + .$actionlist + .'</tr></table>'); + } } my ($tolist,$cclist); my (@recipients,@ccs); @@ -2171,46 +2212,83 @@ sub displaymessage { $r->print(&Apache::loncommon::student_image_tag($content{'senderdomain'},$content{'sendername'})); } - $r->print('<br /><b>'.&mt('Subject').':</b> '.$content{'subject'}); + # Display LON-CAPA Message (Start) + # Subject + $r->print('<br />' + .&Apache::lonhtmlcommon::start_pick_box() + .&Apache::lonhtmlcommon::row_title(&mt('Subject')) + .$content{'subject'} + .&Apache::lonhtmlcommon::row_closure() + ); if ($folder eq 'sent') { - $r->print('<br /><b>'.&mt('To').':</b> '.$tolist); + # To + $r->print(&Apache::lonhtmlcommon::row_title(&mt('To')) + .$tolist + .&Apache::lonhtmlcommon::row_closure() + ); if ($content{'replytoaddr'}) { my ($replytoname,$replytodom) = split(/:/,$content{'replytoaddr'}); if ($replytoname ne '' && $replytodom ne '') { - $r->print('<br /><b>'.&mt('Reply To').':</b> '. - $replytoname.' '.&mt('at').' '.$replytodom); + $r->print(&Apache::lonhtmlcommon::row_title(&mt('Reply To')) + .&mt('[_1] at [_2]',$replytoname,$replytodom) + .&Apache::lonhtmlcommon::row_closure() + ); } } } else { - $r->print('<br /><b>'.&mt('From').':</b> '. - &Apache::loncommon::aboutmewrapper( - &Apache::loncommon::plainname($content{'sendername'},$content{'senderdomain'}), - $content{'sendername'},$content{'senderdomain'})); + # From, Reply + $r->print(&Apache::lonhtmlcommon::row_title(&mt('From')) + .&Apache::loncommon::aboutmewrapper( + &Apache::loncommon::plainname($content{'sendername'},$content{'senderdomain'}), + $content{'sendername'},$content{'senderdomain'}) + ); if ($content{'noreplies'}) { - $r->print(' ('.&mt('No replies to sender').')'); + $r->print(' ('.&mt('No replies to sender').')' + .&Apache::lonhtmlcommon::row_closure() + ); } else { if ($content{'replytoaddr'}) { my ($replytoname,$replytodom) = split(/:/,$content{'replytoaddr'}); if ($replytoname ne '' && $replytodom ne '') { - $r->print('<br /><b>'.&mt('Reply To').':</b> '. - $replytoname.' '.&mt('at').' '.$replytodom); + $r->print(&Apache::lonhtmlcommon::row_closure() + .&Apache::lonhtmlcommon::row_title(&mt('Reply To')) + .&mt('[_1] at [_2]',$replytoname,$replytodom) + .&Apache::lonhtmlcommon::row_closure() + ); + } else { + $r->print(&Apache::lonhtmlcommon::row_closure()); } } else { - $r->print(' ('.$content{'sendername'}.' '.&mt('at').' '. - $content{'senderdomain'}.') '); + $r->print(' ('.&mt('[_1] at [_2]',$content{'sendername'},$content{'senderdomain'}).') ' + .&Apache::lonhtmlcommon::row_closure() + ); } if ($cclist) { - $r->print('<br /><b>'.&mt('Cc').':</b> '.$cclist); + $r->print(&Apache::lonhtmlcommon::row_title(&mt('Cc')) + .$cclist + .&Apache::lonhtmlcommon::row_closure() + ); + } - } + } } + + # Course if ($content{'courseid'}) { - $r->print('<br /><b>'.&mt($crstype).':</b> '.$courseinfo{'description'}); + $r->print(&Apache::lonhtmlcommon::row_title(&mt($crstype)) + .$courseinfo{'description'} + ); if ($content{'coursesec'}) { $r->print(' ('.&mt('Section').': '.$content{'coursesec'}.')'); } + $r->print(&Apache::lonhtmlcommon::row_closure()); } - $r->print('<br /><b>'.&mt('Time').':</b> '.$content{'time'}); + $r->print(&Apache::lonhtmlcommon::row_title(&mt('Time')) + .$content{'time'} + .&Apache::lonhtmlcommon::row_closure() + ); + + # Refers to if ($baseurl) { if (defined($content{'courseid'}) && defined($env{'request.course.id'})) { if ($content{'courseid'} eq $env{'request.course.id'}) { @@ -2228,7 +2306,10 @@ sub displaymessage { if ($encrypturl =~ /^yes$/i && !$env{'request.role.adv'}) { $showurl = $baseurl; } - $r->print('<br /><b>'.&mt('Refers to').':</b> <a href="'.$showurl.$symblink.'">'.$restitle.'</a>'); + $r->print(&Apache::lonhtmlcommon::row_title(&mt('Refers to')) + .'<a href="'.$showurl.$symblink.'">'.$restitle.'</a>' + .&Apache::lonhtmlcommon::row_closure() + ); $refers_to = 1; } } @@ -2241,25 +2322,41 @@ sub displaymessage { $content{'courseid'}); if ($unencurl ne '') { if (&Apache::lonnet::allowed('bre',$unencurl)) { - $r->print('<br /><b>'.&mt('Refers to'). - ':</b> <a href="'.$unencurl.'">'. - $restitle.'</a>'); + $r->print(&Apache::lonhtmlcommon::row_title(&mt('Refers to')) + .'<a href="'.$unencurl.'">'.$restitle.'</a>' + .&Apache::lonhtmlcommon::row_closure() + ); } } } } } else { if (&Apache::lonnet::allowed('bre',$baseurl)) { - $r->print('<br /><b>'.&mt('Refers to'). - ':</b> <a href="'.$baseurl. - '">'.$restitle.'</a>'); + $r->print(&Apache::lonhtmlcommon::row_title(&mt('Refers to')) + .'<a href="'.$baseurl.'">'.$restitle.'</a>' + .&Apache::lonhtmlcommon::row_closure() + ); + } } } } - $r->print('<p><pre>'. - &Apache::lontexconvert::msgtexconverted($content{'message'},1). - '</pre><hr />'.&displayresource(%content).'</p>'); + + # Message + $r->print(&Apache::lonhtmlcommon::row_title(&mt('Message')) + .'<pre>' + .&Apache::lontexconvert::msgtexconverted($content{'message'},1) + .'</pre>' + ); + if (&displayresource(%content)) { + $r->print(&Apache::lonhtmlcommon::row_closure() + .&Apache::lonhtmlcommon::row_title(&mt('Resource Details')) + .&displayresource(%content) + ); + } + $r->print(&Apache::lonhtmlcommon::row_closure(1). + &Apache::lonhtmlcommon::end_pick_box()); + # Display LON-CAPA Message (End) return; }