--- loncom/interface/lonmsg.pm 2001/12/19 17:17:46 1.26 +++ loncom/interface/lonmsg.pm 2002/03/18 18:38:04 1.29 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Routines for messaging # -# $Id: lonmsg.pm,v 1.26 2001/12/19 17:17:46 albertel Exp $ +# $Id: lonmsg.pm,v 1.29 2002/03/18 18:38:04 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -39,7 +39,9 @@ # 07/27 Guy Albertelli # 07/27,07/28,07/30,08/03,08/06,08/08,08/09,08/10,8/13,8/15, # 10/1,11/5 Gerd Kortemeyer - +# YEAR=2002 +# 1/1,3/18 Gerd Kortemeyer +# package Apache::lonmsg; use strict; @@ -62,7 +64,6 @@ sub packagemsg { $msgcount++; my $partsubj=$subject; $partsubj=&Apache::lonnet::escape($partsubj); - $partsubj=substr($partsubj,0,50); my $msgid=&Apache::lonnet::escape( $now.':'.$partsubj.':'.$ENV{'user.name'}.':'. $ENV{'user.domain'}.':'.$msgcount.':'.$$); @@ -276,7 +277,7 @@ sub discourse {

ENDDISHEADER - map { + foreach (sort keys %courselist) { my ($end,$start)=split(/\:/,$courselist{$_}); my $active=1; if (($end) && ($now>$end)) { $active=0; } @@ -295,7 +296,7 @@ ENDDISHEADER $reply{'generation'}. ' ('.$_.') '.$section); } - } sort keys %courselist; + } } # ==================================================== Display Critical Message @@ -306,7 +307,7 @@ sub discrit { '

'. ''); my %what=&Apache::lonnet::dump('critical'); - map { + foreach (sort keys %what) { my %content=&unpackagemsg($what{$_}); $content{'message'}=~s/\n/\/g; $r->print('
From: '.$content{'sendername'}.'@'. @@ -314,7 +315,7 @@ sub discrit { ')
'.$content{'message'}.'
'. ''. ''); - } sort keys %what; + } $r->print( ''); } @@ -354,11 +355,36 @@ ENDREPLY sub disall { my $r=shift; - $r->print( - '

Display All Messages

'. + $r->print(< + function checkall() { + for (i=0; i +ENDDISHEADER + $r->print( + '

Display All Messages

'. ''. ''); - map { + foreach (sort split(/\&/,&Apache::lonnet::reply('keys:'. + $ENV{'user.domain'}.':'. + $ENV{'user.name'}.':nohist_email', + $ENV{'user.home'}))) { my ($sendtime,$shortsubj,$fromname,$fromdomain,$status)= &Apache::lonmsg::unpackmsgid($_); unless ($status eq 'deleted') { @@ -379,11 +405,10 @@ sub disall { &Apache::lonnet::unescape($shortsubj).''); } - } sort split(/\&/,&Apache::lonnet::reply('keys:'. - $ENV{'user.domain'}.':'. - $ENV{'user.name'}.':nohist_email', - $ENV{'user.home'})); + } $r->print('
 DateUsernameDomainSubjectStatus
'. $status.'

'. + 'Check All '. + 'Uncheck All

'. ''. '

'); } @@ -479,7 +504,7 @@ sub handler { # --------------------------- Get query string for limited number of parameters - map { + foreach (split(/&/,$ENV{'QUERY_STRING'})) { my ($name, $value) = split(/=/,$_); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; @@ -492,7 +517,7 @@ sub handler { $ENV{'form.'.$name}=$value; } } - } (split(/&/,$ENV{'QUERY_STRING'})); + } # --------------------------------------------------------------- Render Output @@ -546,7 +571,7 @@ sub handler { &disall($r); } } elsif ($ENV{'form.confirm'}) { - map { + foreach (keys %ENV) { if ($_=~/^form\.rec\_(.*)$/) { $r->print('Confirming Receipt: '. &user_crit_received($1).'
'); @@ -557,7 +582,7 @@ sub handler { &user_crit_received($msgid).'
'); &comprep($r,$msgid); } - } keys %ENV; + } &discrit($r); } elsif ($ENV{'form.critical'}) { &discrit($r); @@ -569,12 +594,12 @@ sub handler { &disall($r); } elsif ($ENV{'form.markeddel'}) { my $total=0; - map { + foreach (keys %ENV) { if ($_=~/^form\.delmark_(.*)$/) { &statuschange(&Apache::lonnet::unescape($1),'deleted'); $total++; } - } keys %ENV; + } $r->print('Deleted '.$total.' message(s)

'); &disall($r); } elsif ($ENV{'form.markunread'}) { @@ -596,29 +621,29 @@ sub handler { my %toaddr=(); undef %toaddr; if ($ENV{'form.sendmode'} eq 'group') { - map { + foreach (keys %ENV) { if ($_=~/^form\.send\_to\_\&\&\&[^\&]*\&\&\&\_(.+)$/) { $toaddr{$1}=''; } - } keys %ENV; + } } elsif ($ENV{'form.sendmode'} eq 'upload') { - map { + foreach (split(/[\n\r\f]+/,$ENV{'form.upfile'})) { my ($rec,$txt)=split(/\s*\:\s*/,$_); if ($txt) { $rec=~s/\@/\:/; $toaddr{$rec}.=$txt."\n"; } - } split(/[\n\r\f]+/,$ENV{'form.upfile'}); + } } else { $toaddr{$ENV{'form.recuname'}.':'.$ENV{'form.recdomain'}}=''; } if ($ENV{'form.additionalrec'}) { - map { + foreach (split(/\,/,$ENV{'form.additionalrec'})) { my ($auname,$audom)=split(/\@/,$_); $toaddr{$auname.':'.$audom}=''; - } split(/\,/,$ENV{'form.additionalrec'}); + } } - map { + foreach (keys %toaddr) { my ($recuname,$recdomain)=split(/\:/,$_); my $msgtxt=$ENV{'form.message'}; if ($toaddr{$_}) { $msgtxt.='


'.$toaddr{$_}; } @@ -636,7 +661,7 @@ sub handler { $content{'citation'})); } $r->print('
'); - } keys %toaddr; + } if ($ENV{'form.displayedcrit'}) { &discrit($r); } else { @@ -651,7 +676,7 @@ sub handler { } # ================================================= Main program, reset counter -sub BEGIN { +BEGIN { $msgcount=0; }