--- loncom/interface/lonmsgdisplay.pm 2006/04/23 05:34:45 1.9 +++ loncom/interface/lonmsgdisplay.pm 2006/04/25 23:12:34 1.16 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Routines for messaging display # -# $Id: lonmsgdisplay.pm,v 1.9 2006/04/23 05:34:45 albertel Exp $ +# $Id: lonmsgdisplay.pm,v 1.16 2006/04/25 23:12:34 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -338,7 +338,7 @@ ENDDISHEADER if (! defined($fullname) || $fullname eq '') { $fullname = $sname; } $r->print(''.$sname.'@'.$sdom.''.$section. + $fullname.''.$sname.':'.$sdom.''.$section. ''); } $r->print(''); @@ -359,7 +359,7 @@ sub discrit { $result.='
'.&mt('From').': '. &Apache::loncommon::aboutmewrapper( &Apache::loncommon::plainname($content{'sendername'},$content{'senderdomain'}),$content{'sendername'},$content{'senderdomain'}).' ('. -$content{'sendername'}.'@'. +$content{'sendername'}.':'. $content{'senderdomain'}.') '.$content{'time'}. '
'.&mt('Subject').': '.$content{'subject'}. '
'.
@@ -392,18 +392,30 @@ sub sortedmessages {
     my %descriptions;
     my %status_cache = 
 	&Apache::lonnet::get('email_status'.&Apache::lonmsg::foldersuffix($folder),\@messages);
-    foreach (@messages) {
-	my $msgid=&Apache::lonnet::escape($_);
+
+    my $get_received;
+    if ($folder eq 'sent' 
+	&& ($env{'form.sortedby'} =~ m/^(rev)?(user|domain)$/)) {
+	$get_received = 1;
+    }
+
+    foreach my $msgid (@messages) {
+	my $esc_msgid=&Apache::lonnet::escape($msgid);
 	my ($sendtime,$shortsubj,$fromname,$fromdomain,$status,$fromcid)=
-	    &Apache::lonmsg::unpackmsgid($msgid,$folder,undef,
+	    &Apache::lonmsg::unpackmsgid($esc_msgid,$folder,undef,
 					 \%status_cache);
         my $description = &get_course_desc($fromcid,\%descriptions);
 	my @temp1 = ($sendtime,$shortsubj,$fromname,$fromdomain,$status,
-		     $msgid,$description);
+		     $esc_msgid,$description);
+	if ($get_received) {
+	    my %message = &Apache::lonnet::get('nohist_email'.$suffix,
+					       [$msgid]);
+	    my %content = &Apache::lonmsg::unpackagemsg($message{$msgid});
+	    push(@temp1,$content{'recuser'},$content{'recdomain'});
+	}
         # Check whether message was sent during blocking period.
         if ($sendtime >= $startblock && ($sendtime <= $endblock && $endblock > 0) ) {
-            my $escid = &Apache::lonnet::unescape($msgid);
-            $$blocked{$escid} = 'ON';
+            $$blocked{$msgid} = 'ON';
             $$numblocked ++;
         } else { 
             push @temp ,\@temp1;
@@ -418,16 +430,32 @@ sub sortedmessages {
     	@temp = sort  {$b->[0] <=> $a->[0]} @temp; 
     }
     if ($env{'form.sortedby'} eq "user"){
-	@temp = sort  {lc($a->[2]) cmp lc($b->[2])} @temp;
+	if ($get_received) {
+	    @temp = sort  {lc($a->[7][0]) cmp lc($b->[7][0])} @temp;
+	} else {
+	    @temp = sort  {lc($a->[2])    cmp lc($b->[2])}    @temp;
+	}
     }
     if ($env{'form.sortedby'} eq "revuser"){
-	@temp = sort  {lc($b->[2]) cmp lc($a->[2])} @temp;
+	if ($get_received) {
+	    @temp = sort  {lc($b->[7][0]) cmp lc($a->[7][0])} @temp;
+	} else {
+	    @temp = sort  {lc($b->[2])    cmp lc($a->[2])}    @temp;
+	}
     }
     if ($env{'form.sortedby'} eq "domain"){
-        @temp = sort  {$a->[3] cmp $b->[3]} @temp;
+	if ($get_received) {
+	    @temp = sort  {$a->[8][0] cmp $b->[8][0]} @temp;
+	} else {
+	    @temp = sort  {$a->[3]    cmp $b->[3]}    @temp;
+	}
     }
     if ($env{'form.sortedby'} eq "revdomain"){
-        @temp = sort  {$b->[3] cmp $a->[3]} @temp;
+	if ($get_received) {
+	    @temp = sort  {$b->[8][0] cmp $a->[8][0]} @temp;
+	} else {
+	    @temp = sort  {$b->[3]    cmp $a->[3]}    @temp;
+	}
     }
     if ($env{'form.sortedby'} eq "subject"){
         @temp = sort  {lc($a->[1]) cmp lc($b->[1])} @temp;
@@ -584,7 +612,7 @@ sub disfolder {
     my $numblocked = 0;
     &blockcheck(\%setters,\$startblock,\$endblock);
     $r->print(<
+