--- loncom/interface/lonmsg.pm 2002/12/27 14:59:42 1.44
+++ loncom/interface/lonmsg.pm 2003/02/17 17:39:53 1.48
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Routines for messaging
#
-# $Id: lonmsg.pm,v 1.44 2002/12/27 14:59:42 www Exp $
+# $Id: lonmsg.pm,v 1.48 2003/02/17 17:39:53 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -47,21 +47,19 @@ 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;
+ $message =&HTML::Entities::encode($message);
+ $citation=&HTML::Entities::encode($citation);
+ $subject =&HTML::Entities::encode($subject);
my $now=time;
$msgcount++;
my $partsubj=$subject;
@@ -166,6 +164,13 @@ sub user_crit_msg_raw {
'put:'.$domain.':'.$user.':critical:'.
&Apache::lonnet::escape($msgid).'='.
&Apache::lonnet::escape($message),$homeserver);
+ if ($ENV{'request.course.id'}) {
+ &user_normal_msg_raw(
+ $ENV{'course.'.$ENV{'request.course.id'}.'.num'},
+ $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},
+ 'Critical ['.$user.':'.$domain.']',
+ $message);
+ }
} else {
$status='no_host';
}
@@ -526,10 +531,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
@@ -579,6 +585,49 @@ ENDUPLOAD
$r->print('');
}
+# ---------------------------------------------------- Display all face to face
+
+sub disfacetoface {
+ my ($r,$user,$domain)=@_;
+ unless ($ENV{'request.course.id'}) { return; }
+ unless (&Apache::lonnet::allowed('srm',$ENV{'request.course.id'})) {
+ return;
+ }
+ my %records=&Apache::lonnet::dump('nohist_email',
+ $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},
+ $ENV{'course.'.$ENV{'request.course.id'}.'.num'},
+ '%255b'.$user.'%253a'.$domain.'%255d');
+ my $result='';
+ foreach (sort keys %records) {
+ my %content=&unpackagemsg($records{$_});
+ next if ($content{'senderdomain'} eq '');
+ $content{'message'}=~s/\n/\
/g;
+ if ($content{'subject'}=~/^Record/) {
+ $result.='Record
';
+ } else {
+ $result.='Sent Message
';
+ %content=&unpackagemsg($content{'message'});
+ $content{'message'}=
+ 'Subject: '.$content{'subject'}.'
'.
+ $content{'message'};
+ }
+ $result.='By: '.
+&Apache::loncommon::aboutmewrapper(
+ &Apache::loncommon::plainname($content{'sendername'},$content{'senderdomain'}),$content{'sendername'},$content{'senderdomain'}).' ('.
+$content{'sendername'}.'@'.
+ $content{'senderdomain'}.') '.$content{'time'}.
+ '
'.
+ &Apache::lontexconvert::msgtexconverted($content{'message'}).
+ '
';
+ }
+ # Check to see if there were any messages.
+ if ($result eq '') {
+ $r->print("No notes, face-to-face discussion records, or critical messages in this course.
");
+ } else {
+ $r->print($result);
+ }
+}
+
# ---------------------------------------------------------------- Face to face
sub facetoface {
@@ -586,16 +635,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 Messages in Course
-