--- loncom/interface/lonmsg.pm 2001/11/05 19:44:23 1.24 +++ loncom/interface/lonmsg.pm 2002/09/16 20:06:12 1.39 @@ -1,7 +1,31 @@ # The LearningOnline Network with CAPA -# # Routines for messaging # +# $Id: lonmsg.pm,v 1.39 2002/09/16 20:06:12 albertel Exp $ +# +# Copyright Michigan State University Board of Trustees +# +# This file is part of the LearningOnline Network with CAPA (LON-CAPA). +# +# LON-CAPA is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# LON-CAPA is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with LON-CAPA; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# /home/httpd/html/adm/gpl.txt +# +# http://www.lon-capa.org/ +# +# # (Routines to control the menu # # (TeX Conversion Module @@ -15,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; @@ -23,6 +49,8 @@ use Apache::lonnet(); use vars qw($msgcount); use HTML::TokeParser; use Apache::Constants qw(:common); +use Apache::loncommon; +use Apache::lontexconvert; # ===================================================================== Package @@ -38,7 +66,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.':'.$$); @@ -114,7 +141,7 @@ sub author_res_msg { # ================================================== Critical message to a user -sub user_crit_msg { +sub user_crit_msg_raw { my ($user,$domain,$subject,$message,$sendback)=@_; # Check if allowed missing my $status=''; @@ -141,6 +168,27 @@ sub user_crit_msg { return $status; } +# New routine that respects "forward" and calls old routine + +sub user_crit_msg { + my ($user,$domain,$subject,$message,$sendback)=@_; + my $status=''; + my %userenv = &Apache::lonnet::get('environment',['msgforward'], + $domain,$user); + my $msgforward=$userenv{'msgforward'}; + if ($msgforward) { + foreach (split(/\,/,$msgforward)) { + my ($forwuser,$forwdomain)=split(/\:/,$_); + $status.= + &user_crit_msg_raw($forwuser,$forwdomain,$subject,$message, + $sendback).' '; + } + } else { + $status=&user_crit_msg_raw($user,$domain,$subject,$message,$sendback); + } + return $status; +} + # =================================================== Critical message received sub user_crit_received { @@ -168,7 +216,7 @@ sub user_crit_received { # ======================================================== Normal communication -sub user_normal_msg { +sub user_normal_msg_raw { my ($user,$domain,$subject,$message,$citation)=@_; # Check if allowed missing my $status=''; @@ -190,6 +238,29 @@ sub user_normal_msg { return $status; } +# New routine that respects "forward" and calls old routine + +sub user_normal_msg { + my ($user,$domain,$subject,$message,$citation)=@_; + my $status=''; + my %userenv = &Apache::lonnet::get('environment',['msgforward'], + $domain,$user); + my $msgforward=$userenv{'msgforward'}; + if ($msgforward) { + foreach (split(/\,/,$msgforward)) { + my ($forwuser,$forwdomain)=split(/\:/,$_); + $status.= + &user_normal_msg_raw($forwuser,$forwdomain,$subject,$message, + $citation).' '; + } + } else { + $status= + &user_normal_msg_raw($user,$domain,$subject,$message,$citation); + } + return $status; +} + + # =============================================================== Status Change sub statuschange { @@ -252,7 +323,7 @@ sub discourse {
ENDDISHEADER - map { + foreach (sort keys %courselist) { my ($end,$start)=split(/\:/,$courselist{$_}); my $active=1; if (($end) && ($now>$end)) { $active=0; } @@ -271,28 +342,43 @@ ENDDISHEADER $reply{'generation'}. ' ('.$_.') '.$section); } - } sort keys %courselist; + } } # ==================================================== Display Critical Message sub discrit { my $r=shift; - $r->print('
';
+ ' Send as critical message ' . $crithelp .
+ '
'.
+ ' Send as critical message ' .
+ ' and return receipt' . $crithelp . '
'; } $r->print(<<"ENDREPLY");