--- loncom/interface/lonmsg.pm 2001/08/06 11:41:11 1.16 +++ loncom/interface/lonmsg.pm 2001/08/09 15:29:37 1.18 @@ -13,7 +13,7 @@ # 10/19,10/20,10/30, # 02/06/01 Gerd Kortemeyer # 07/27 Guy Albertelli -# 07/27,07/28,07/30,08/03,08/06 Gerd Kortemeyer +# 07/27,07/28,07/30,08/03,08/06,08/08,08/09 Gerd Kortemeyer package Apache::lonmsg; @@ -206,6 +206,59 @@ sub statuschange { } } +# ======================================================= Display a course list + +sub discourse { + my $r=shift; + my %courselist=&Apache::lonnet::dump( + 'classlist', + $ENV{'course.'.$ENV{'request.course.id'}.'.domain'}, + $ENV{'course.'.$ENV{'request.course.id'}.'.num'}); + my $now=time; + $r->print(< + + + +

+ENDDISHEADER + map { + my ($end,$start)=split(/\:/,$courselist{$_}); + my $active=1; + if (($end) && ($now>$end)) { $active=0; } + if ($active) { + my ($sname,$sdom)=split(/\:/,$_); + my %reply=&Apache::lonnet::get('environment', + ['firstname','middlename','lastname','generation'], + $sdom,$sname); + $r->print('
'. + $reply{'firstname'}.' '. + $reply{'middlename'}.' '. + $reply{'lastname'}.' '. + $reply{'generation'}. + ' ('.$_.')'); + } + } sort keys %courselist; +} + # ==================================================== Display Critical Message sub discrit { @@ -293,7 +346,7 @@ sub disall { # ============================================================== Compose output sub compout { - my ($r,$forwarding)=@_; + my ($r,$forwarding,$broadcast)=@_; my $dispcrit=''; my $dissub=''; my $dismsg=''; @@ -314,21 +367,28 @@ sub compout { $content{'sendername'}.' at '.$content{'senderdomain'}; } my $defdom=$ENV{'user.domain'}; - $r->print(<<"ENDCOMP"); -

- + $r->print(''. + ''); + unless ($broadcast eq 'group') { + $r->print(<<"ENDREC");
+ENDREC + } + $r->print(<<"ENDCOMP");
Username:
Domain:
Subject:

$dispcrit -

ENDCOMP + if ($broadcast eq 'group') { + &discourse; + } + $r->print(''); } # ===================================================================== Handler @@ -436,7 +496,7 @@ sub handler { &statuschange($ENV{'form.markunread'},'new'); &disall($r); } elsif ($ENV{'form.compose'}) { - &compout($r); + &compout($r,'',$ENV{'form.compose'}); } elsif ($ENV{'form.sendmail'}) { my %content=(); undef %content; @@ -448,21 +508,34 @@ sub handler { $ENV{'form.message'}.="\n\n-- Forwarded message --\n\n". $content{'message'}; } + my %toaddr=(); + undef %toaddr; + if ($ENV{'form.sendmode'} eq 'group') { + map { + if ($_=~/^form\.send\_to\_(.+)$/) { + $toaddr{$1}=1; + } + } keys %ENV; + } else { + $toaddr{$ENV{'form.recuname'}.':'.$ENV{'form.recdomain'}}=1; + } + map { + my ($recuname,$recdomain)=split(/\:/,$_); if (($ENV{'form.critmsg'}) && (&Apache::lonnet::allowed('srm',$ENV{'request.course.id'}))) { $r->print('Sending critical: '. - &user_crit_msg($ENV{'form.recuname'}, - $ENV{'form.recdomain'}, + &user_crit_msg($recuname,$recdomain, $ENV{'form.subject'}, $ENV{'form.message'}, $content{'citation'})); } else { - $r->print('Sending: '.&user_normal_msg($ENV{'form.recuname'}, - $ENV{'form.recdomain'}, + $r->print('Sending: '.&user_normal_msg($recuname,$recdomain, $ENV{'form.subject'}, $ENV{'form.message'}, $content{'citation'})); } + $r->print('
'); + } keys %toaddr; if ($ENV{'form.displayedcrit'}) { &discrit($r); } else {