--- loncom/interface/lonmsg.pm 2003/12/30 14:57:49 1.73 +++ loncom/interface/lonmsg.pm 2004/02/02 22:27:08 1.85 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Routines for messaging # -# $Id: lonmsg.pm,v 1.73 2003/12/30 14:57:49 www Exp $ +# $Id: lonmsg.pm,v 1.85 2004/02/02 22:27:08 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -25,23 +25,8 @@ # # http://www.lon-capa.org/ # -# -# (Routines to control the menu -# -# (TeX Conversion Module -# -# 05/29/00,05/30 Gerd Kortemeyer) -# -# 10/05 Gerd Kortemeyer) -# -# 10/19,10/20,10/30, -# 02/06/01 Gerd Kortemeyer -# 07/27 Guy Albertelli -# 07/27,07/28,07/30,08/03,08/06,08/08,08/09,08/10,8/13,8/15, -# 10/1,11/5 Gerd Kortemeyer -# YEAR=2002 -# 1/1,3/18 Gerd Kortemeyer -# + + package Apache::lonmsg; =pod @@ -154,6 +139,7 @@ sub packagemsg { '<browsermathml>'.$ENV{'browser.mathml'}.'</browsermathml>'. '<browserraw>'.$ENV{'HTTP_USER_AGENT'}.'</browserraw>'. '<courseid>'.$ENV{'request.course.id'}.'</courseid>'. + '<coursesec>'.$ENV{'request.course.sec'}.'</coursesec>'. '<role>'.$ENV{'request.role'}.'</role>'. '<resource>'.$ENV{'request.filename'}.'</resource>'. '<msgid>'.$msgid.'</msgid>'. @@ -287,15 +273,17 @@ sub author_res_msg { # =========================================== Retrieve author resource messages sub retrieve_author_res_msg { - my ($author,$domain,$url)=@_; + my $url=shift; $url=&Apache::lonnet::declutter($url); - my %errormsgs=&Apache::lonnet::dump('nohist_res_msgs',$1,$2); + my ($domain,$author)=($url=~/^(\w+)\/(\w+)\//); + my %errormsgs=&Apache::lonnet::dump('nohist_res_msgs',$domain,$author); my $msgs=''; foreach (keys %errormsgs) { if ($_=~/^\Q$url\E\_\d+$/) { my %content=&unpackagemsg($errormsgs{$_}); - $msgs.='<b>'.$content{'time'}.'</b>: '.$content{'message'}. - '<br />'; + $msgs.='<p><img src="/adm/lonMisc/bomb.gif" /><b>'. + $content{'time'}.'</b>: '.$content{'message'}. + '<br /></p>'; } } return $msgs; @@ -305,14 +293,28 @@ sub retrieve_author_res_msg { # =============================== Delete all author messages related to one URL sub del_url_author_res_msg { - my ($author,$domain,$url)=@_; + my $url=shift; $url=&Apache::lonnet::declutter($url); + my ($domain,$author)=($url=~/^(\w+)\/(\w+)\//); + my @delmsgs=(); + foreach (&Apache::lonnet::getkeys('nohist_res_msgs',$domain,$author)) { + if ($_=~/^\Q$url\E\_\d+$/) { + push (@delmsgs,$_); + } + } + return &Apache::lonnet::del('nohist_res_msgs',\@delmsgs,$domain,$author); } # ================= Return hash with URLs for which there is a resource message sub all_url_author_res_msg { my ($author,$domain)=@_; + my %returnhash=(); + foreach (&Apache::lonnet::getkeys('nohist_res_msgs',$domain,$author)) { + $_=~/^(.+)\_\d+/; + $returnhash{$1}=1; + } + return %returnhash; } # ================================================== Critical message to a user @@ -395,7 +397,7 @@ sub user_crit_received { my %contents=&unpackagemsg($message{$msgid},1); my $status='rec: '.($contents{'sendback'}? &user_normal_msg($contents{'sendername'},$contents{'senderdomain'}, - &mt('Receipt').': '.$ENV{'user.name'}.' at '.$ENV{'user.domain'}, + &mt('Receipt').': '.$ENV{'user.name'}.' '.&mt('at').' '.$ENV{'user.domain'}.', '.$contents{'subject'}, &mt('User').' '.$ENV{'user.name'}.' '.&mt('at').' '.$ENV{'user.domain'}. ' acknowledged receipt of message'."\n".' "'. $contents{'subject'}.'"'."\n".&mt('dated').' '. @@ -598,7 +600,9 @@ $content{'sendername'}.'@'. '<br>'.&mt('Subject').': '.$content{'subject'}. '<br><blockquote>'. &Apache::lontexconvert::msgtexconverted($content{'message'}). - '</blockquote>'. + '</blockquote><small>'. +&mt('You have to confirm that you received this message. After confirmation, this message will be moved to your regular inbox'). + '</small><br />'. '<input type=submit name="rec_'.$_.'" value="'.&mt('Confirm Receipt').'">'. '<input type=submit name="reprec_'.$_.'" '. 'value="'.&mt('Confirm Receipt and Reply').'">'; @@ -1023,7 +1027,9 @@ sub handler { if (!$ENV{'form.display'}) { $r->print('<html><head><title>EMail and Messaging</title>'. &Apache::loncommon::studentbrowser_javascript().'</head>'. - &Apache::loncommon::bodytag('EMail and Messages')); + &Apache::loncommon::bodytag('EMail and Messages'). + &Apache::loncommon::help_open_faq(12). + &Apache::loncommon::help_open_bug('Communication Tools')); } if ($ENV{'form.display'}) { my $msgid=$ENV{'form.display'}; @@ -1050,15 +1056,21 @@ sub handler { } $r->print(&Apache::loncommon::studentbrowser_javascript(). '</head>'. - &Apache::loncommon::bodytag('EMail and Messages')); - $r->print('<b>'.&mt('Subject').':</b> '.$content{'subject'}. - '<br><b>'.&mt('From').':</b> '. + &Apache::loncommon::bodytag('EMail and Messages'). + &Apache::loncommon::help_open_faq(12). + &Apache::loncommon::help_open_bug('Communication Tools')); + my %courseinfo=&Apache::lonnet::coursedescription($content{'courseid'}); + + $r->print('<br /><b>'.&mt('Subject').':</b> '.$content{'subject'}. + '<br /><b>'.&mt('From').':</b> '. &Apache::loncommon::aboutmewrapper( &Apache::loncommon::plainname($content{'sendername'},$content{'senderdomain'}), $content{'sendername'},$content{'senderdomain'}).' ('. $content{'sendername'}.' at '. $content{'senderdomain'}.') '. - '<br><b>'.&mt('Time').':</b> '.$content{'time'}.'<p>'. + ($content{'courseid'}?'<br /><b>'.&mt('Course').':</b> '.$courseinfo{'description'}. +($content{'coursesec'}?' ('.&mt('Group/Section').': '.$content{'coursesec'}.')':''):''). + '<br /><b>'.&mt('Time').':</b> '.$content{'time'}.'<p>'. '<table border=2><tr bgcolor="#FFFFAA"><td>'.&mt('Functions').':</td>'. '<td><a href="/adm/email?replyto='.&Apache::lonnet::escape($msgid).$sqs. '"><b>'.&mt('Reply').'</b></a></td>'. @@ -1079,7 +1091,7 @@ $content{'sendername'},$content{'senderd '"><b>'.&mt('Next').'</b></a></td>'); } $r->print('</tr></table><p><pre>'. - &Apache::lontexconvert::msgtexconverted($content{'message'}). + &Apache::lontexconvert::msgtexconverted($content{'message'},1). '</pre><hr>'.$content{'citation'}); } elsif ($ENV{'form.replyto'}) { &comprep($r,$ENV{'form.replyto'}); @@ -1208,6 +1220,7 @@ $content{'sendername'},$content{'senderd } } if ($sendstatus=~/^(\s*(?:ok|con_delayed)\s*)*$/) { + $r->print('<br /><font color="green">'.&mt('Completed.').'</font>'); if ($ENV{'form.displayedcrit'}) { &discrit($r); } else {