--- loncom/interface/lonmsg.pm 2003/03/17 16:55:06 1.42.2.1
+++ 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.42.2.1 2003/03/17 16:55:06 albertel Exp $
+# $Id: lonmsg.pm,v 1.48 2003/02/17 17:39:53 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -57,13 +57,9 @@ use HTML::Entities();
sub packagemsg {
my ($subject,$message,$citation)=@_;
-# $message=~s/\\<\;/g;
-# $message=~s/\>/\>\;/g;
$message =&HTML::Entities::encode($message);
$citation=&HTML::Entities::encode($citation);
$subject =&HTML::Entities::encode($subject);
-# $subject=~s/\\<\;/g;
-# $subject=~s/\>/\>\;/g;
my $now=time;
$msgcount++;
my $partsubj=$subject;
@@ -168,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';
}
@@ -528,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
@@ -581,6 +585,111 @@ 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 {
+ my ($r,$stage)=@_;
+ 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 Notes, Records of Face-To-Face Discussions, and Critical Messages in Course
+
+ENDTREC
+ if (($stage ne 'query') &&
+ ($ENV{'form.recdomain'}) && ($ENV{'form.recuname'})) {
+ chomp($ENV{'form.newrecord'});
+ if ($ENV{'form.newrecord'}) {
+ &user_normal_msg_raw(
+ $ENV{'course.'.$ENV{'request.course.id'}.'.num'},
+ $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},
+ 'Record ['.$ENV{'form.recuname'}.':'.$ENV{'form.recdomain'}.']',
+ $ENV{'form.newrecord'});
+ }
+ $r->print(''.&Apache::loncommon::plainname($ENV{'form.recuname'},
+ $ENV{'form.recdomain'}).'
');
+ &disfacetoface($r,$ENV{'form.recuname'},$ENV{'form.recdomain'});
+ $r->print(<
+
+
+ENDRHEAD
+ $r->print(<New Record (record is visible to course faculty and staff)
+
+
+
+
+
+ENDBFORM
+ }
+}
+
# ===================================================================== Handler
sub handler {
@@ -596,13 +705,15 @@ sub handler {
# --------------------------- Get query string for limited number of parameters
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
['display','replyto','forward','markread','markdel','markunread',
- 'sendreply','compose','sendmail','critical','recname','recdom']);
+ 'sendreply','compose','sendmail','critical','recname','recdom',
+ 'recordftf']);
# ------------------------------------------------------ They checked for email
&Apache::lonnet::put('email_status',{'recnewemail'=>0});
# --------------------------------------------------------------- Render Output
- $r->print('EMail and Messaging'.
+ $r->print('EMail and Messaging'.
+ &Apache::loncommon::studentbrowser_javascript().''.
&Apache::loncommon::bodytag('EMail and Messages'));
if ($ENV{'form.display'}) {
my $msgid=$ENV{'form.display'};
@@ -624,6 +735,8 @@ $content{'sendername'},$content{'senderd
'">Forward'.
'Mark Unread | '.
+ 'Delete | '.
'Display all Messages | '.
'
'.
&Apache::lontexconvert::msgtexconverted($content{'message'}).
@@ -691,6 +804,8 @@ $content{'sendername'},$content{'senderd
&disall($r);
} elsif ($ENV{'form.compose'}) {
&compout($r,'',$ENV{'form.compose'});
+ } elsif ($ENV{'form.recordftf'}) {
+ &facetoface($r,$ENV{'form.recordftf'});
} elsif ($ENV{'form.sendmail'}) {
my %content=();
undef %content;