--- 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().''); return OK;