--- loncom/interface/lonmsg.pm 2003/02/17 17:39:53 1.48
+++ loncom/interface/lonmsg.pm 2003/03/17 17:02:38 1.50
@@ -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.50 2003/03/17 17:02:38 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -56,10 +56,13 @@ use HTML::Entities();
# ===================================================================== Package
sub packagemsg {
- my ($subject,$message,$citation)=@_;
+ my ($subject,$message,$citation,$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 +70,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 +86,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
@@ -234,14 +242,14 @@ 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);
+ ($msgid,$message)=&packagemsg($subject,$message,$citation,$baseurl);
$status=&Apache::lonnet::critical(
'put:'.$domain.':'.$user.':nohist_email:'.
&Apache::lonnet::escape($msgid).'='.
@@ -260,7 +268,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 +278,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 +719,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(