--- loncom/interface/lonmsg.pm 2002/12/27 16:33:36 1.45
+++ 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.45 2002/12/27 16:33:36 www Exp $
+# $Id: lonmsg.pm,v 1.49 2003/02/18 15:47:40 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -47,21 +47,23 @@ package Apache::lonmsg;
use strict;
use Apache::lonnet();
use vars qw($msgcount);
-use HTML::TokeParser;
+use HTML::TokeParser();
use Apache::Constants qw(:common);
-use Apache::loncommon;
-use Apache::lontexconvert;
+use Apache::loncommon();
+use Apache::lontexconvert();
+use HTML::Entities();
# ===================================================================== Package
sub packagemsg {
- my ($subject,$message,$citation)=@_;
- $message=~s/\\<\;/g;
- $message=~s/\>/\>\;/g;
- $citation=~s/\\<\;/g;
- $citation=~s/\>/\>\;/g;
- $subject=~s/\\<\;/g;
- $subject=~s/\>/\>\;/g;
+ 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;
@@ -69,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.''.
''.
@@ -86,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
@@ -102,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;
@@ -236,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).'='.
@@ -262,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);
@@ -272,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;
}
@@ -533,10 +543,11 @@ sub compout {
'
');
unless (($broadcast eq 'group') || ($broadcast eq 'upload')) {
my $domform = &Apache::loncommon::select_dom_form($defdom,'recdomain');
-
+ my $selectlink=&Apache::loncommon::selectstudent_link
+ ('compemail','recuname','recdomain');
$r->print(<<"ENDREC");
-Username: | |
+Username: | | $selectlink |
Domain: |
$domform |
ENDREC
@@ -623,7 +634,7 @@ $content{'sendername'}.'@'.
}
# Check to see if there were any messages.
if ($result eq '') {
- $r->print("No face-to-face records or critical messages in this course.
");
+ $r->print("No notes, face-to-face discussion records, or critical messages in this course.
");
} else {
$r->print($result);
}
@@ -636,16 +647,25 @@ sub facetoface {
unless (&Apache::lonnet::allowed('srm',$ENV{'request.course.id'})) {
return;
}
+# from query string
+ if ($ENV{'form.recname'}) { $ENV{'form.recuname'}=$ENV{'form.recname'}; }
+ if ($ENV{'form.recdom'}) { $ENV{'form.recdomain'}=$ENV{'form.recdom'}; }
+
my $defdom=$ENV{'user.domain'};
+# already filled in
if ($ENV{'form.recdomain'}) { $defdom=$ENV{'form.recdomain'}; }
+# generate output
my $domform = &Apache::loncommon::select_dom_form($defdom,'recdomain');
+ my $stdbrws = &Apache::loncommon::selectstudent_link
+ ('stdselect','recuname','recdomain');
$r->print(<<"ENDTREC");
-User Records of Face-To-Face Discussions and Critical Messages in Course
-