--- loncom/interface/lonmsg.pm 2005/04/07 06:56:23 1.140
+++ loncom/interface/lonmsg.pm 2005/05/15 01:11:32 1.142
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Routines for messaging
#
-# $Id: lonmsg.pm,v 1.140 2005/04/07 06:56:23 albertel Exp $
+# $Id: lonmsg.pm,v 1.142 2005/05/15 01:11:32 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -141,7 +141,8 @@ sub packagemsg {
$partsubj=&Apache::lonnet::escape($partsubj);
my $msgid=&Apache::lonnet::escape(
$now.':'.$partsubj.':'.$env{'user.name'}.':'.
- $env{'user.domain'}.':'.$msgcount.':'.$$);
+ $env{'user.domain'}.':'.$msgcount.':'.
+ $env{'request.course.id'}.':'.$$);
my $result=''.$env{'user.name'}.''.
''.$env{'user.domain'}.''.
''.$subject.''.
@@ -209,13 +210,13 @@ sub unpackmsgid {
my ($msgid,$folder)=@_;
$msgid=&Apache::lonnet::unescape($msgid);
my $suffix=&foldersuffix($folder);
- my ($sendtime,$shortsubj,$fromname,$fromdomain)=split(/\:/,
+ my ($sendtime,$shortsubj,$fromname,$fromdomain,$count,$fromcid)=split(/\:/,
&Apache::lonnet::unescape($msgid));
my %status=&Apache::lonnet::get('email_status'.$suffix,[$msgid]);
if ($status{$msgid}=~/^error\:/) { $status{$msgid}=''; }
unless ($status{$msgid}) { $status{$msgid}='new'; }
- return ($sendtime,$shortsubj,$fromname,$fromdomain,$status{$msgid});
-}
+ return ($sendtime,$shortsubj,$fromname,$fromdomain,$status{$msgid},$fromcid);
+}
sub sendemail {
@@ -612,6 +613,7 @@ sub makefolder {
sub movemsg {
my ($msgid,$srcfolder,$trgfolder)=@_;
+ if ($srcfolder eq 'new') { $srcfolder=''; }
my $srcsuffix=&foldersuffix($srcfolder);
my $trgsuffix=&foldersuffix($trgfolder);
@@ -762,7 +764,7 @@ sub sortedmessages {
my @temp;
foreach (@messages) {
my $msgid=&Apache::lonnet::escape($_);
- my ($sendtime,$shortsubj,$fromname,$fromdomain,$status)=
+ my ($sendtime,$shortsubj,$fromname,$fromdomain,$status,$fromcid)=
&Apache::lonmsg::unpackmsgid($msgid,$folder);
my @temp1 = ($sendtime,$shortsubj,$fromname,$fromdomain,$status,
$msgid);
@@ -836,7 +838,7 @@ sub disnew {
# Check for blocking of display because of scheduled online exams.
&blockcheck(\%setters,\$startblock,\$endblock);
foreach (@msgids) {
- my ($sendtime,$shortsubj,$fromname,$fromdom,$status)=
+ my ($sendtime,$shortsubj,$fromname,$fromdom,$status,$fromcid)=
&Apache::lonmsg::unpackmsgid($_);
if (defined($sendtime) && $sendtime!~/error/) {
my $numsendtime = $sendtime;
@@ -1042,7 +1044,7 @@ ENDDISHEADER
# ============================================================== Compose output
sub compout {
- my ($r,$forwarding,$replying,$broadcast,$replycrit,$folder)=@_;
+ my ($r,$forwarding,$replying,$broadcast,$replycrit,$folder,$dismode)=@_;
my $suffix=&foldersuffix($folder);
if ($broadcast eq 'individual') {
@@ -1173,6 +1175,8 @@ $latexHelp
$dispcrit
$disbase
+
+
$citation
@@ -2047,6 +2051,14 @@ sub handler {
} else {
$sqs.='&folder='.&Apache::lonnet::escape($folder);
}
+# ------------------------------------------------------------ Get Display Mode
+
+ my $dismode=$env{'form.dismode'};
+ unless ($dismode) {
+ $dismode='';
+ } else {
+ $sqs.='&dismode='.&Apache::lonnet::escape($dismode);
+ }
# --------------------------------------------------------------------- Display
@@ -2078,7 +2090,7 @@ sub handler {
if ($env{'form.display'}) {
&displaymessage($r,$env{'form.display'},$folder);
} elsif ($env{'form.replyto'}) {
- &compout($r,'',$env{'form.replyto'},undef,undef,$folder);
+ &compout($r,'',$env{'form.replyto'},undef,undef,$folder,$dismode);
} elsif ($env{'form.confirm'}) {
&printheader($r,'','Confirmed Receipt');
foreach (keys %env) {
@@ -2103,7 +2115,7 @@ sub handler {
&printheader($r,'','Deleted Message');
&statuschange($env{'form.markdel'},'deleted',$folder);
&Apache::loncommunicate::menu($r);
- &disall($r,$folder);
+ &disall($r,($folder?$folder:$dismode));
} elsif ($env{'form.markedmove'}) {
my $total=0;
foreach (keys %env) {
@@ -2116,7 +2128,7 @@ sub handler {
&printheader($r,'','Moved Messages');
$r->print('Moved '.$total.' message(s)');
&Apache::loncommunicate::menu($r);
- &disall($r,$folder);
+ &disall($r,($folder?$folder:$dismode));
} elsif ($env{'form.markeddel'}) {
my $total=0;
foreach (keys %env) {
@@ -2128,12 +2140,12 @@ sub handler {
&printheader($r,'','Deleted Messages');
$r->print('Deleted '.$total.' message(s)
');
&Apache::loncommunicate::menu($r);
- &disall($r,$folder);
+ &disall($r,($folder?$folder:$dismode));
} elsif ($env{'form.markunread'}) {
&printheader($r,'','Marked Message as Unread');
&statuschange($env{'form.markunread'},'new');
&Apache::loncommunicate::menu($r);
- &disall($r,$folder);
+ &disall($r,($folder?$folder:$dismode));
} elsif ($env{'form.compose'}) {
&compout($r,'','',$env{'form.compose'});
} elsif ($env{'form.recordftf'}) {
@@ -2145,7 +2157,7 @@ sub handler {
if ($env{'form.storebasecomment'}) {
&storecomment($r);
}
- &disall($r,$folder);
+ &disall($r,($folder?$folder:$dismode));
} elsif ($env{'form.newfolder'}) {
&printheader($r,'','New Folder');
&makefolder($env{'form.newfolder'});
@@ -2155,8 +2167,8 @@ sub handler {
&storedcommentlisting($r);
} else {
&printheader($r,'','Display All Messages');
- &Apache::loncommunicate::menu($r);
- &disall($r,$folder);
+ &Apache::loncommunicate::menu($r);
+ &disall($r,($folder?$folder:$dismode));
}
$r->print(&Apache::loncommon::endbodytag().'