--- loncom/interface/lonmsg.pm 2003/02/17 17:39:53 1.48 +++ loncom/interface/lonmsg.pm 2003/02/18 15:47:40 1.49 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Routines for messaging # -# $Id: lonmsg.pm,v 1.48 2003/02/17 17:39:53 albertel Exp $ +# $Id: lonmsg.pm,v 1.49 2003/02/18 15:47:40 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -56,10 +56,14 @@ use HTML::Entities(); # ===================================================================== Package sub packagemsg { - my ($subject,$message,$citation)=@_; + my ($subject,$message,$citation,$baseurl)=@_; + &Apache::lonnet::logthis("base is $baseurl"); $message =&HTML::Entities::encode($message); $citation=&HTML::Entities::encode($citation); $subject =&HTML::Entities::encode($subject); + #remove machine specification + $baseurl =~ s|^http://[^/]+/|/|; + $baseurl =&HTML::Entities::encode($baseurl); my $now=time; $msgcount++; my $partsubj=$subject; @@ -67,8 +71,7 @@ sub packagemsg { my $msgid=&Apache::lonnet::escape( $now.':'.$partsubj.':'.$ENV{'user.name'}.':'. $ENV{'user.domain'}.':'.$msgcount.':'.$$); - return $msgid, - ''.$ENV{'user.name'}.''. + my $result=''.$ENV{'user.name'}.''. ''.$ENV{'user.domain'}.''. ''.$subject.''. ''. @@ -84,8 +87,14 @@ sub packagemsg { ''.$ENV{'request.role'}.''. ''.$ENV{'request.filename'}.''. ''.$msgid.''. - ''.$message.''. - ''.$citation.''; + ''.$message.''; + if (defined($citation)) { + $result.=''.$citation.''; + } + if (defined($baseurl)) { + $result.= ''.$baseurl.''; + } + return $msgid,$result; } # ================================================== Unpack message into a hash @@ -100,6 +109,8 @@ sub unpackagemsg { my $entry=$token->[1]; my $value=$parser->get_text('/'.$entry); $content{$entry}=$value; + &Apache::lonnet::logthis("setting $entry to $value"); + } } return %content; @@ -234,14 +245,15 @@ sub user_crit_received { # ======================================================== Normal communication sub user_normal_msg_raw { - my ($user,$domain,$subject,$message,$citation)=@_; + my ($user,$domain,$subject,$message,$citation,$baseurl)=@_; # Check if allowed missing my $status=''; my $msgid='undefined'; unless (($message)&&($user)&&($domain)) { $status='empty'; }; my $homeserver=&Apache::lonnet::homeserver($user,$domain); if ($homeserver ne 'no_host') { - ($msgid,$message)=&packagemsg($subject,$message,$citation); + &Apache::lonnet::logthis("baseraw is $baseurl"); + ($msgid,$message)=&packagemsg($subject,$message,$citation,$baseurl); $status=&Apache::lonnet::critical( 'put:'.$domain.':'.$user.':nohist_email:'. &Apache::lonnet::escape($msgid).'='. @@ -260,7 +272,7 @@ sub user_normal_msg_raw { # New routine that respects "forward" and calls old routine sub user_normal_msg { - my ($user,$domain,$subject,$message,$citation)=@_; + my ($user,$domain,$subject,$message,$citation,$baseurl)=@_; my $status=''; my %userenv = &Apache::lonnet::get('environment',['msgforward'], $domain,$user); @@ -270,11 +282,11 @@ sub user_normal_msg { my ($forwuser,$forwdomain)=split(/\:/,$_); $status.= &user_normal_msg_raw($forwuser,$forwdomain,$subject,$message, - $citation).' '; + $citation,$baseurl).' '; } } else { - $status= - &user_normal_msg_raw($user,$domain,$subject,$message,$citation); + $status=&user_normal_msg_raw($user,$domain,$subject,$message, + $citation,$baseurl); } return $status; } @@ -711,15 +723,23 @@ sub handler { # ------------------------------------------------------ They checked for email &Apache::lonnet::put('email_status',{'recnewemail'=>0}); # --------------------------------------------------------------- Render Output - - $r->print('EMail and Messaging'. - &Apache::loncommon::studentbrowser_javascript().''. - &Apache::loncommon::bodytag('EMail and Messages')); + if (!$ENV{'form.display'}) { + $r->print('EMail and Messaging'. + &Apache::loncommon::studentbrowser_javascript().''. + &Apache::loncommon::bodytag('EMail and Messages')); + } if ($ENV{'form.display'}) { my $msgid=$ENV{'form.display'}; &statuschange($msgid,'read'); my %message=&Apache::lonnet::get('nohist_email',[$msgid]); my %content=&unpackagemsg($message{$msgid}); + $r->print('EMail and Messaging'); + if (defined($content{'baseurl'})) { + $r->print(""); + } + $r->print(&Apache::loncommon::studentbrowser_javascript(). + ''. + &Apache::loncommon::bodytag('EMail and Messages')); $r->print('Subject: '.$content{'subject'}. '
From: '. &Apache::loncommon::aboutmewrapper(