[LON-CAPA-cvs] cvs: loncom /interface lonmsg.pm
www
lon-capa-cvs@mail.lon-capa.org
Tue, 02 Mar 2004 02:51:09 -0000
This is a MIME encoded message
--www1078195869
Content-Type: text/plain
www Mon Mar 1 21:51:09 2004 EDT
Modified files:
/loncom/interface lonmsg.pm
Log:
* Bug #2500: Reply now has "additional recipient"
* Removal of redundant code
--www1078195869
Content-Type: text/plain
Content-Disposition: attachment; filename="www-20040301215109.txt"
Index: loncom/interface/lonmsg.pm
diff -u loncom/interface/lonmsg.pm:1.91 loncom/interface/lonmsg.pm:1.92
--- loncom/interface/lonmsg.pm:1.91 Mon Mar 1 15:57:47 2004
+++ loncom/interface/lonmsg.pm Mon Mar 1 21:51:09 2004
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Routines for messaging
#
-# $Id: lonmsg.pm,v 1.91 2004/03/01 20:57:47 www Exp $
+# $Id: lonmsg.pm,v 1.92 2004/03/02 02:51:09 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -508,7 +508,7 @@
'cfs' => 'Check for Section/Group',
'cfn' => 'Check for None');
$r->print(<<ENDDISHEADER);
-<input type=hidden name=sendmode value=group>
+<input type="hidden" name="sendmode" value="group" />
<script>
function checkall() {
for (i=0; i<document.forms.compemail.elements.length; i++) {
@@ -538,10 +538,10 @@
}
}
</script>
-<input type=button onClick="checkall()" value="$lt{'cfa'}">
-<input type=button onClick="checksec()" value="$lt{'cfs'}">
-<input type=text size=5 name=chksec>
-<input type=button onClick="uncheckall()" value="$lt{'cfn'}">
+<input type="button" onClick="checkall()" value="$lt{'cfa'}" />
+<input type="button" onClick="checksec()" value="$lt{'cfs'}" />
+<input type="text" size="5" name=chksec />
+<input type="button" onClick="uncheckall()" value="$lt{'cfn'}" />
<p>
ENDDISHEADER
my %coursepersonnel=
@@ -618,51 +618,6 @@
$r->print('<input type=hidden name="displayedcrit" value="true"></form>');
}
-# =============================================================== Compose reply
-
-sub comprep {
- my ($r,$msgid)=@_;
- my %message=&Apache::lonnet::get('nohist_email',[$msgid]);
- my %content=&unpackagemsg($message{$msgid},1);
- my $quotemsg='> '.$content{'message'};
- $quotemsg=~s/\r/\n/g;
- $quotemsg=~s/\f/\n/g;
- $quotemsg=~s/\n+/\n\> /g;
- my $torepl=&Apache::loncommon::aboutmewrapper(
- &Apache::loncommon::plainname($content{'sendername'},$content{'senderdomain'}),$content{'sendername'},$content{'senderdomain'}).' ('.
-$content{'sendername'}.'@'.
- $content{'senderdomain'}.')';
- my $subject=&mt('Re').': '.$content{'subject'};
- my $dispcrit='';
- if (&Apache::lonnet::allowed('srm',$ENV{'request.course.id'})) {
- my $crithelp = Apache::loncommon::help_open_topic("Course_Critical_Message");
- $dispcrit=
- '<input type=checkbox name=critmsg> '.&mt('Send as critical message').' ' . $crithelp .
- '<br>'.
- '<input type=checkbox name=sendbck> '.&mt('Send as critical message').' ' .
- &mt('and return receipt') . $crithelp . '<p>';
- }
- my %lt=&Apache::lonlocal::texthash(
- 'to' => 'To',
- 'sb' => 'Subject',
- 'sr' => 'Send Reply',
- 'ca' => 'Cancel'
- );
- $r->print(<<"ENDREPLY");
-<form action="/adm/email" method="post">
-<input type="hidden" name="sendreply" value="$msgid">
-$lt{'to'}: $torepl<br />
-$lt{'sb'}: <input type="text" size=50 name="subject" value="$subject"><p>
-<textarea name="message" cols="84" rows="10" wrap="hard">
-$quotemsg
-</textarea></p><br />
-$dispcrit
-<input type="submit" name="send" value="$lt{'sr'}" />
-<input type="submit" name="cancel" value="$lt{'ca'}"/ >
-</form>
-ENDREPLY
-}
-
sub sortedmessages {
my @messages = &Apache::lonnet::getkeys('nohist_email');
#unpack the varibles and repack into temp for sorting
@@ -783,7 +738,7 @@
}
$r->print('<td><a href="/adm/email?display='.$origID.$sqs.
'">'.&mt('Open').'</a></td><td><a href="/adm/email?markdel='.$origID.$sqs.
- '">'.&mt('Delete').'</a><input type=checkbox name="delmark_'.$origID.'"></td>'.
+ '">'.&mt('Delete').'</a><input type=checkbox name="delmark_'.$origID.'" /></td>'.
'<td>'.&Apache::lonlocal::locallocaltime($sendtime).'</td><td>'.
$fromname.'</td><td>'.$fromdomain.'</td><td>'.
&Apache::lonnet::unescape($shortsubj).'</td><td>'.
@@ -794,16 +749,38 @@
'<a href="javascript:checkall()">'.&mt('Check All').'</a> '.
'<a href="javascript:uncheckall()">'.&mt('Uncheck All').'</a><p>'.
'<input type="hidden" name="sortedby" value="'.$ENV{'form.sortedby'}.'" />'.
- '<input type=submit name="markeddel" value="'.&mt('Delete Checked').'">'.
+ '<input type="submit" name="markeddel" value="'.&mt('Delete Checked').'" />'.
'</form></body></html>');
}
# ============================================================== Compose output
sub compout {
- my ($r,$forwarding,$broadcast)=@_;
- &printheader($r,'/adm/email?compose=upload',
- 'Distribute from uploaded file');
+ my ($r,$forwarding,$replying,$broadcast)=@_;
+
+ if ($broadcast eq 'individual') {
+ &printheader($r,'/adm/email?compose=individual',
+ 'Send a Message');
+ } elsif ($broadcast) {
+ &printheader($r,'/adm/email?compose=group',
+ 'Broadcast Message');
+ } elsif ($forwarding) {
+ &Apache::lonhtmlcommon::add_breadcrumb
+ ({href=>"/adm/email?display=".&Apache::lonnet::escape($forwarding),
+ text=>"Display Message"});
+ &printheader($r,'/adm/email?forward='.&Apache::lonnet::escape($forwarding),
+ 'Forwarding a Message');
+ } elsif ($replying) {
+ &Apache::lonhtmlcommon::add_breadcrumb
+ ({href=>"/adm/email?display=".&Apache::lonnet::escape($replying),
+ text=>"Display Message"});
+ &printheader($r,'/adm/email?replyto='.&Apache::lonnet::escape($replying),
+ 'Replying to a Message');
+ } else {
+ &printheader($r,'/adm/email?compose=upload',
+ 'Distribute from Uploaded File');
+ }
+
my $dispcrit='';
my $dissub='';
my $dismsg='';
@@ -818,39 +795,64 @@
if (&Apache::lonnet::allowed('srm',$ENV{'request.course.id'})) {
my $crithelp = Apache::loncommon::help_open_topic("Course_Critical_Message");
$dispcrit=
- '<input type="checkbox" name="critmsg"> '.&mt('Send as critical message').' ' . $crithelp .
+ '<input type="checkbox" name="critmsg" /> '.&mt('Send as critical message').' ' . $crithelp .
'<br>'.
- '<input type="checkbox" name="sendbck"> '.&mt('Send as critical message').' ' .
+ '<input type="checkbox" name="sendbck" /> '.&mt('Send as critical message').' ' .
&mt('and return receipt') . $crithelp . '<p>';
- }
+ }
+ my %message;
+ my %content;
+ my $defdom=$ENV{'user.domain'};
if ($forwarding) {
- $dispcrit.='<input type="hidden" name="forwid" value="'.
- $forwarding.'">';
- $func=&mt('Forward');
- my %message=&Apache::lonnet::get('nohist_email',[$forwarding]);
- my %content=&unpackagemsg($message{$forwarding});
-
- $dissub=&mt('Forwarding').': '.$content{'subject'};
- $dismsg=&mt('Forwarded message from').' '.
- $content{'sendername'}.' '.&mt('at').' '.$content{'senderdomain'};
+ %message=&Apache::lonnet::get('nohist_email',[$forwarding]);
+ %content=&unpackagemsg($message{$forwarding});
+ $dispcrit.='<input type="hidden" name="forwid" value="'.
+ $forwarding.'" />';
+ $func=&mt('Forward');
+
+ $dissub=&mt('Forwarding').': '.$content{'subject'};
+ $dismsg=&mt('Forwarded message from').' '.
+ $content{'sendername'}.' '.&mt('at').' '.$content{'senderdomain'};
+ }
+ if ($replying) {
+ %message=&Apache::lonnet::get('nohist_email',[$replying]);
+ %content=&unpackagemsg($message{$replying});
+ $dispcrit.='<input type="hidden" name="forwid" value="'.
+ $forwarding.'" />';
+ $func=&mt('Replying to');
+
+ $dissub=&mt('Reply').': '.$content{'subject'};
+ $dismsg='> '.$content{'message'};
+ $dismsg=~s/\r/\n/g;
+ $dismsg=~s/\f/\n/g;
+ $dismsg=~s/\n+/\n\> /g;
}
- my $defdom=$ENV{'user.domain'};
if ($ENV{'form.recdom'}) { $defdom=$ENV{'form.recdom'}; }
$r->print(
'<form action="/adm/email" name="compemail" method="post"'.
' enctype="multipart/form-data">'."\n".
- '<input type="hidden" name="sendmail" value="on">'."\n".
+ '<input type="hidden" name="sendmail" value="on" />'."\n".
'<table>');
unless (($broadcast eq 'group') || ($broadcast eq 'upload')) {
- my $domform = &Apache::loncommon::select_dom_form($defdom,'recdomain');
- my $selectlink=&Apache::loncommon::selectstudent_link
+ if ($replying) {
+ $r->print('<tr><td colspan="2">'.&mt('Replying to').' '.
+ &Apache::loncommon::aboutmewrapper(
+ &Apache::loncommon::plainname($content{'sendername'},$content{'senderdomain'}),$content{'sendername'},$content{'senderdomain'}).' ('.
+ $content{'sendername'}.'@'.
+ $content{'senderdomain'}.')'.
+ '<input type="hidden" name="recuname" value="'.$content{'sendername'}.'" />'.
+ '<input type="hidden" name="recdomain" value="'.$content{'senderdomain'}.'" />'.
+ '</td></tr>');
+ } else {
+ my $domform = &Apache::loncommon::select_dom_form($defdom,'recdomain');
+ my $selectlink=&Apache::loncommon::selectstudent_link
('compemail','recuname','recdomain');
- $r->print(<<"ENDREC");
-<table>
+ $r->print(<<"ENDREC");
<tr><td>$lt{'us'}:</td><td><input type="text" size="12" name="recuname" value="$ENV{'form.recname'}"></td><td rowspan="2">$selectlink</td></tr>
<tr><td>$lt{'do'}:</td>
<td>$domform</td></tr>
ENDREC
+ }
}
my $latexHelp = Apache::loncommon::helpLatexCheatsheet();
if ($broadcast ne 'upload') {
@@ -861,7 +863,7 @@
<tr><td>$lt{'sb'}:</td><td><input type="text" size="50" name="subject" value="$dissub" />
</td></tr></table>
$latexHelp
-<textarea name="message" cols="80" rows="10" wrap="hard">$dismsg
+<textarea name="message" cols="80" rows="15" wrap="hard">$dismsg
</textarea></p><br />
$dispcrit
<input type="submit" name="send" value="$func $lt{'ma'}" />
@@ -892,7 +894,7 @@
<p>
<input type="file" name="upfile" size="40" /></p><p>
$dispcrit
-<input type="submit" value="Upload and send" /></p>
+<input type="submit" value="Upload and Send" /></p>
ENDUPLOAD
}
if ($broadcast eq 'group') {
@@ -924,7 +926,7 @@
$result.='<h3>'.&mt('Sent Message').'</h3>';
%content=&unpackagemsg($content{'message'});
$content{'message'}=
- '<b>Subject: '.$content{'subject'}.'</b><br />'.
+ '<b>'.&mt('Subject').': '.$content{'subject'}.'</b><br />'.
$content{'message'};
}
$result.=&mt('By').': <b>'.
@@ -932,13 +934,13 @@
&Apache::loncommon::plainname($content{'sendername'},$content{'senderdomain'}),$content{'sendername'},$content{'senderdomain'}).'</b> ('.
$content{'sendername'}.'@'.
$content{'senderdomain'}.') '.$content{'time'}.
- '<br><blockquote>'.
+ '<br /><blockquote>'.
&Apache::lontexconvert::msgtexconverted($content{'message'}).
'</blockquote>';
}
# Check to see if there were any messages.
if ($result eq '') {
- $r->print("<p><b>No notes, face-to-face discussion records, or critical messages in this course.</b></p>");
+ $r->print("<p><b>".&mt("No notes, face-to-face discussion records, or critical messages in this course.")."</b></p>");
} else {
$r->print($result);
}
@@ -1017,14 +1019,6 @@
}
}
-# ----------------------------------------------- Generate the text input field
-
-sub textinputarea {
- my ($r,$name,$quote)=@_;
- $r->print('<textarea name="'.$name.
- '" cols="80" rows="12" wrap="hard">'.$quote.'</textarea>');
-}
-
# ----------------------------------------------------------- Display a message
sub displaymessage {
@@ -1046,7 +1040,7 @@
$r->print('</pre>');
my $number_of_messages = scalar(@messages); #subtract 1 for last index
# start output
- &printheader($r,'/adm/email?display='.$msgid,'Display a Message','',$content{'baseurl'});
+ &printheader($r,'/adm/email?display='.&Apache::lonnet::escape($msgid),'Display a Message','',$content{'baseurl'});
my %courseinfo=&Apache::lonnet::coursedescription($content{'courseid'});
# Functions
$r->print('<table border="2" width="100%"><tr bgcolor="#FFFFAA"><td>'.&mt('Functions').':</td>'.
@@ -1145,53 +1139,29 @@
if ($ENV{'form.display'}) {
&displaymessage($r,$ENV{'form.display'});
} elsif ($ENV{'form.replyto'}) {
- &comprep($r,$ENV{'form.replyto'});
- } elsif ($ENV{'form.sendreply'}) {
- if ($ENV{'form.send'}) {
- my $msgid=$ENV{'form.sendreply'};
- my %message=&Apache::lonnet::get('nohist_email',[$msgid]);
- my %content=&unpackagemsg($message{$msgid},1);
- &statuschange($msgid,'replied');
- if ((($ENV{'form.critmsg'}) || ($ENV{'form.sendbck'})) &&
- (&Apache::lonnet::allowed('srm',$ENV{'request.course.id'}))) {
- $r->print(&mt('Sending critical message').': '.
- &user_crit_msg($content{'sendername'},
- $content{'senderdomain'},
- &Apache::lonfeedback::clear_out_html($ENV{'form.subject'}),
- &Apache::lonfeedback::clear_out_html($ENV{'form.message'}),
- $ENV{'form.sendbck'}));
- } else {
- $r->print(&mt('Sending').': '.&user_normal_msg($content{'sendername'},
- $content{'senderdomain'},
- &Apache::lonfeedback::clear_out_html($ENV{'form.subject'}),
- &Apache::lonfeedback::clear_out_html($ENV{'form.message'})));
- }
- }
- if ($ENV{'form.displayedcrit'}) {
- &discrit($r);
- } else {
- &disall($r);
- }
+ &compout($r,'',$ENV{'form.replyto'});
} elsif ($ENV{'form.confirm'}) {
+ &printheader($r,'','Confirmed Receipt');
foreach (keys %ENV) {
if ($_=~/^form\.rec\_(.*)$/) {
- $r->print('<b>Confirming Receipt:</b> '.
+ $r->print('<b>'.&mt('Confirming Receipt').':</b> '.
&user_crit_received($1).'<br>');
}
if ($_=~/^form\.reprec\_(.*)$/) {
my $msgid=$1;
- $r->print('<b>Confirming Receipt:</b> '.
+ $r->print('<b>'.&mt('Confirming Receipt').':</b> '.
&user_crit_received($msgid).'<br>');
&comprep($r,$msgid);
}
}
&discrit($r);
} elsif ($ENV{'form.critical'}) {
+ &printheader($r,'','Displaying Critical Messages');
&discrit($r);
} elsif ($ENV{'form.forward'}) {
&compout($r,$ENV{'form.forward'});
- } elsif ($ENV{'form.markread'}) {
} elsif ($ENV{'form.markdel'}) {
+ &printheader($r,'','Deleted Message');
&statuschange($ENV{'form.markdel'},'deleted');
&disall($r);
} elsif ($ENV{'form.markeddel'}) {
@@ -1202,18 +1172,22 @@
$total++;
}
}
+ &printheader($r,'','Deleted Messages');
$r->print('Deleted '.$total.' message(s)<p>');
&disall($r);
} elsif ($ENV{'form.markunread'}) {
+ &printheader($r,'','Marked Message as Unread');
&statuschange($ENV{'form.markunread'},'new');
&disall($r);
} elsif ($ENV{'form.compose'}) {
- &compout($r,'',$ENV{'form.compose'});
+ &compout($r,'','',$ENV{'form.compose'});
} elsif ($ENV{'form.recordftf'}) {
&facetoface($r,$ENV{'form.recordftf'});
} elsif ($ENV{'form.sendmail'}) {
my $sendstatus='';
if ($ENV{'form.send'}) {
+ &printheader($r,'','Messages being sent.');
+ $r->rflush();
my %content=();
undef %content;
if ($ENV{'form.forwid'}) {
@@ -1249,25 +1223,28 @@
$toaddr{$auname.':'.$audom}='';
}
}
+
foreach (keys %toaddr) {
my ($recuname,$recdomain)=split(/\:/,$_);
my $msgtxt=&Apache::lonfeedback::clear_out_html($ENV{'form.message'});
- if ($toaddr{$_}) { $msgtxt.='<hr>'.$toaddr{$_}; }
+ if ($toaddr{$_}) { $msgtxt.='<hr />'.$toaddr{$_}; }
+ my $thismsg;
if ((($ENV{'form.critmsg'}) || ($ENV{'form.sendbck'})) &&
(&Apache::lonnet::allowed('srm',$ENV{'request.course.id'}))) {
- $r->print(&mt('Sending critical message').' ...');
- $sendstatus.=' '.&user_crit_msg($recuname,$recdomain,
+ $r->print(&mt('Sending critical message').' '.$recuname.'@'.$recdomain.': ');
+ $thismsg=&user_crit_msg($recuname,$recdomain,
&Apache::lonfeedback::clear_out_html($ENV{'form.subject'}),
$msgtxt,
$ENV{'form.sendbck'});
} else {
- $r->print(&mt('Sending').' ...');
- $sendstatus.=' '.&user_normal_msg($recuname,$recdomain,
+ $r->print(&mt('Sending').' '.$recuname.'@'.$recdomain.': ');
+ $thismsg=&user_normal_msg($recuname,$recdomain,
&Apache::lonfeedback::clear_out_html($ENV{'form.subject'}),
$msgtxt,
$content{'citation'});
}
- $r->print('<br />');
+ $r->print($thismsg.'<br />');
+ $sendstatus.=' '.$thismsg;
}
}
if ($sendstatus=~/^(\s*(?:ok|con_delayed)\s*)*$/) {
@@ -1284,6 +1261,7 @@
);
}
} else {
+ &printheader($r,'','Display All Messages');
&disall($r);
}
$r->print('</body></html>');
--www1078195869--