+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);
+ my $section=&Apache::lonnet::usection
+ ($sdom,$sname,$ENV{'request.course.id'});
+ $r->print(
+ '
'.
+ $reply{'firstname'}.' '.
+ $reply{'middlename'}.' '.
+ $reply{'lastname'}.' '.
+ $reply{'generation'}.
+ ' ('.$_.') '.$section);
+ }
+ } sort keys %courselist;
+}
+
+# ==================================================== Display Critical Message
sub discrit {
my $r=shift;
@@ -216,11 +313,161 @@ sub discrit {
$r->print('
'.$content{'message'}.''. - ''); + ''. + ''); } sort keys %what; - $r->print(''); + $r->print( + ''); +} + +# =============================================================== Compose reply + +sub comprep { + my ($r,$msgid)=@_; + my %message=&Apache::lonnet::get('nohist_email',[$msgid]); + my %content=&unpackagemsg($message{$msgid}); + my $quotemsg='> '.$content{'message'}; + $quotemsg=~s/\r/\n/g; + $quotemsg=~s/\f/\n/g; + $quotemsg=~s/\n+/\n\> /g; + my $subject='Re: '.$content{'subject'}; + my $dispcrit=''; + if (&Apache::lonnet::allowed('srm',$ENV{'request.course.id'})) { + $dispcrit= + ' Send as critical message
'; + } + $r->print(<<"ENDREPLY"); +
+ENDREPLY +} + +# ======================================================== Display all messages + +sub disall { + my $r=shift; + $r->print( + '