version 1.71, 2007/05/01 18:40:57
|
version 1.78, 2007/05/05 03:14:21
|
Line 390 sub renamefolder {
|
Line 390 sub renamefolder {
|
if ($env{'form.renamed'} eq '') { |
if ($env{'form.renamed'} eq '') { |
return &mt('The folder "[_1]" may not be renamed to "[_2]" as the new name you requested is an invalid name.',$folder,$newname); |
return &mt('The folder "[_1]" may not be renamed to "[_2]" as the new name you requested is an invalid name.',$folder,$newname); |
} |
} |
|
if (defined($permfolders{$folder})) { |
|
return &mt('The folder "[_1]" may not be renamed as it is a folder provided by the system.',$folder); |
|
} |
if (defined($permfolders{$newname})) { |
if (defined($permfolders{$newname})) { |
return &mt('The folder "[_1]" may not be renamed to "[_2]" as the new name you requested is reserved for folders provided automatically by the system.',$folder,$newname); |
return &mt('The folder "[_1]" may not be renamed to "[_2]" as the new name you requested is reserved for folders provided automatically by the system.',$folder,$newname); |
} |
} |
Line 734 $content{'sendername'}.':'.
|
Line 737 $content{'sendername'}.':'.
|
'<br />'.&mt('Subject').': '.$content{'subject'}. |
'<br />'.&mt('Subject').': '.$content{'subject'}. |
'<br /><pre>'. |
'<br /><pre>'. |
&Apache::lontexconvert::msgtexconverted($content{'message'}). |
&Apache::lontexconvert::msgtexconverted($content{'message'}). |
'</pre><small>'. |
'</pre><small>'; |
&mt('You have to confirm that you received this message. After confirmation, this message will be moved to your regular inbox'). |
my ($rec_button,$reprec_button); |
'</small><br />'. |
$rec_button = &mt('Move to Inbox'); |
'<input type="submit" name="rec_'.$key.'" value="'.&mt('Confirm Receipt').'" />'. |
if (!$content{'noreplies'}) { |
'<input type="submit" name="reprec_'.$key.'" '. |
$reprec_button = &mt('Move to Inbox/Compose reply'); |
'value="'.&mt('Confirm Receipt and Reply').'" />'; |
} |
|
if ($content{'sendback'}) { |
|
$rec_button = &mt('Confirm Receipt'); |
|
if (!$content{'noreplies'}) { |
|
$reprec_button = &mt('Confirm Receipt and Reply'); |
|
} |
|
$result .= &mt('You have to confirm that you have received this message before you can view other pages. After confirmation, this message will be moved to your regular inbox'); |
|
} else { |
|
$result .= &mt('Access to other pages will be prevented until you have moved the message to your inbox.'); |
|
} |
|
$result .= '</small><br />'. |
|
'<input type="submit" name="rec_'.$key.'" value="'.$rec_button.'" />'; |
|
if (!$content{'noreplies'}) { |
|
$result .= '<input type="submit" name="reprec_'.$key.'" '. |
|
'value="'.$reprec_button.'" />'; |
|
} |
} |
} |
# Check to see if there were any messages. |
# Check to see if there were any messages. |
if ($result eq '') { |
if ($result eq '') { |
Line 1206 will be forwarded to the recipient(s) yo
|
Line 1224 will be forwarded to the recipient(s) yo
|
my %lt=&Apache::lonlocal::texthash('us' => 'Username', |
my %lt=&Apache::lonlocal::texthash('us' => 'Username', |
'do' => 'Domain', |
'do' => 'Domain', |
'ad' => 'Additional Recipients', |
'ad' => 'Additional Recipients', |
|
'rt' => 'Reply to', |
|
'ar' => 'Allow replies', |
'sb' => 'Subject', |
'sb' => 'Subject', |
'ca' => 'Cancel', |
'ca' => 'Cancel', |
'ma' => 'Mail', |
'ma' => 'Mail', |
Line 1273 will be forwarded to the recipient(s) yo
|
Line 1293 will be forwarded to the recipient(s) yo
|
if ($content{'baseurl'}) { |
if ($content{'baseurl'}) { |
$disbase='<input type="hidden" name="baseurl" value="'.&escape($content{'baseurl'}).'" />'; |
$disbase='<input type="hidden" name="baseurl" value="'.&escape($content{'baseurl'}).'" />'; |
if ($env{'user.adv'}) { |
if ($env{'user.adv'}) { |
$disbase.='<label><input type="checkbox" name="storebasecomment" />'.&mt('Store message for re-use'). |
$disbase.='<label><input type="checkbox" name="storebasecomment" />'.&mt('Save message for re-use'). |
'</label> <a href="/adm/email?showcommentbaseurl='. |
'</label> <a href="/adm/email?showcommentbaseurl='. |
&escape($content{'baseurl'}).'" target="comments">'. |
&escape($content{'baseurl'}).'" target="comments">'. |
&mt('Show re-usable messages').'</a><br />'; |
&mt('Show re-usable messages').'</a><br />'; |
} |
} |
} |
} |
|
my $jscript = &Apache::loncommon::check_uncheck_jscript(); |
|
$r->print(<<"ENDREPSCRIPT"); |
|
<script type="text/javascript"> |
|
$jscript |
|
</script> |
|
ENDREPSCRIPT |
} |
} |
my $citation=&displayresource(%content); |
my $citation=&displayresource(%content); |
my ($can_grp_broadcast,$viewgrps,$editgrps); |
my ($can_grp_broadcast,$viewgrps,$editgrps); |
Line 1310 will be forwarded to the recipient(s) yo
|
Line 1336 will be forwarded to the recipient(s) yo
|
} |
} |
if (($broadcast ne 'group') && ($broadcast ne 'upload')) { |
if (($broadcast ne 'group') && ($broadcast ne 'upload')) { |
if ($replying) { |
if ($replying) { |
$r->print('<tr><td colspan="2">'.&mt('Replying to').' '. |
if ($content{'noreplies'}) { |
&Apache::loncommon::aboutmewrapper( |
$r->print('<tr><td>'.&mt('This message was designated by the sender not to allow replies.').'</td></tr></table></form>'); |
|
return; |
|
} |
|
$r->print('<tr><td colspan="2">'.&mt('Replying to').' '); |
|
if ($content{'replytoaddr'}) { |
|
my ($replytoname,$replytodom) = split(/:/,$content{'replytoaddr'}); |
|
if ($replytoname ne '' && $replytodom ne '') { |
|
$r->print(&Apache::loncommon::plainname($replytoname, |
|
$replytodom).' ('.$replytoname.':'. |
|
$replytodom.')'); |
|
$r->print('<input type="hidden" name="recuname" value="'. |
|
$replytoname.'" />'. |
|
'<input type="hidden" name="recdomain" value="'. |
|
$replytodom.'" /></td></tr>'); |
|
|
|
} else { |
|
$r->print(&mt('The sender did not designate a reply to address for this message.').'</td></tr></table>'); |
|
return; |
|
} |
|
} else { |
|
$r->print(&Apache::loncommon::aboutmewrapper( |
&Apache::loncommon::plainname($content{'sendername'},$content{'senderdomain'}),$content{'sendername'},$content{'senderdomain'}).' ('. |
&Apache::loncommon::plainname($content{'sendername'},$content{'senderdomain'}),$content{'sendername'},$content{'senderdomain'}).' ('. |
$content{'sendername'}.':'. |
$content{'sendername'}.':'. |
$content{'senderdomain'}.')'. |
$content{'senderdomain'}.')'); |
'<input type="hidden" name="recuname" value="'.$content{'sendername'}.'" />'. |
$r->print('<input type="hidden" name="recuname" value="'. |
'<input type="hidden" name="recdomain" value="'.$content{'senderdomain'}.'" />'. |
$content{'sendername'}.'" />'. |
'</td></tr>'); |
'<input type="hidden" name="recdomain" value="'. |
|
$content{'senderdomain'}.'" /></td></tr>'); |
|
} |
|
if ($content{'recipid'}) { |
|
my @ccs = &retrieve_cc_recips('replying',%content); |
|
if (@ccs > 0) { |
|
my $replyall = qq| |
|
<span class="LC_nobreak"> |
|
<input type="button" value="check all" |
|
onclick="javascript:checkAll(document.compemail.replying_cc)" /> |
|
|
|
<input type="button" value="uncheck all" |
|
onclick="javascript:uncheckAll(document.compemail.replying_cc)" /> |
|
</span> |
|
|; |
|
my $cclist = join(' ',@ccs); |
|
$r->print('<tr><td>'.&mt('Reply to other recipients').':<br />'.$replyall.'</td><td>'.$cclist.'</td></tr>'); |
|
} |
|
} |
} else { |
} else { |
$r->print(&recipient_input_row($defdom,%lt)); |
$r->print(&recipient_input_row($defdom,%lt)); |
} |
} |
Line 1354 $latexHelp.
|
Line 1418 $latexHelp.
|
} elsif ($broadcast ne 'upload') { |
} elsif ($broadcast ne 'upload') { |
$subj_size = '50'; |
$subj_size = '50'; |
$r->print(&additional_rec_row(\%lt)); |
$r->print(&additional_rec_row(\%lt)); |
|
if (&Apache::lonnet::allowed('srm',$env{'request.course.id'}) |
|
|| &Apache::lonnet::allowed('srm',$env{'request.course.id'}. |
|
'/'.$env{'request.course.sec'})) { |
|
$r->print(&reply_to_row(\%lt)); |
|
} |
$r->print(&msg_subject_row($dissub,\%lt,$subj_size)); |
$r->print(&msg_subject_row($dissub,\%lt,$subj_size)); |
$r->print(<<"ENDCOMP"); |
$r->print(<<"ENDCOMP"); |
</table> |
</table> |
Line 1428 sub recipient_input_row {
|
Line 1497 sub recipient_input_row {
|
&Apache::loncommon::selectstudent_link('compemail','recuname', |
&Apache::loncommon::selectstudent_link('compemail','recuname', |
'recdomain'); |
'recdomain'); |
my $output = <<"ENDREC"; |
my $output = <<"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 colspan="2"><span class="LC_nobreak">$lt{'us'}: <input type="text" size="12" name="recuname" value="$env{'form.recname'}" /> $lt{'do'}: $domform $selectlink</span></td></tr> |
<tr><td>$lt{'do'}:</td> |
|
<td>$domform</td></tr> |
|
ENDREC |
ENDREC |
return $output; |
return $output; |
} |
} |
|
|
|
sub reply_to_row { |
|
my ($lt) = @_; |
|
my $radioyes = &mt('Yes'); |
|
my $radiono = &mt('No'); |
|
my $output = <<"ENDREP"; |
|
<tr><td colspan="2"><span class="LC_nobreak">$lt->{'ar'}:<label><input type="radio" name="can_reply" value="Y" checked="checked" />$radioyes</label> <label><input type="radio" name="can_reply" value="N" />$radiono</label></span> <span class="LC_nobreak">$lt->{'rt'}: <input type="text" size="25" name="reply_to_addr" value="$env{'user.name'}:$env{'user.domain'}" /></span></td></tr> |
|
ENDREP |
|
return $output; |
|
} |
|
|
sub additional_rec_row { |
sub additional_rec_row { |
my ($lt) = @_; |
my ($lt) = @_; |
|
my $cc = &mt('Cc:'); |
|
my $bcc = &mt('Bcc:'); |
my $output = <<"ENDADD"; |
my $output = <<"ENDADD"; |
<tr><td>$lt->{'ad'}:<br /><tt>username:domain,username:domain, ... |
<tr><td>$lt->{'ad'} :<br /><tt>username:domain,username:domain, ... |
</tt></td><td> |
</tt></td><td> <span class="span.LC_nobreak">$cc |
<input type="text" size="50" name="additionalrec" /></td></tr> |
<input type="text" size="50" name="additionalrec_cc" /></span><br /> |
|
<span class="span.LC_nobreak">$bcc <input type="text" size="50" name="additionalrec_bcc" /></span></td></tr> |
ENDADD |
ENDADD |
return $output; |
return $output; |
} |
} |
Line 1458 sub submit_button_row {
|
Line 1538 sub submit_button_row {
|
|
|
sub msg_subject_row { |
sub msg_subject_row { |
my ($dissub,$lt,$subj_size,$extra) = @_; |
my ($dissub,$lt,$subj_size,$extra) = @_; |
my $output = '<tr><td>'.$lt->{'sb'}.':</td><td><input type="text" size="'. |
my $output = '<tr><td colspan="2">'.$lt->{'sb'}.': <input type="text" size="'. |
$subj_size.'" name="subject" value="'.$dissub.'" />'.$extra. |
$subj_size.'" name="subject" value="'.$dissub.'" />'.$extra. |
'</td></tr>'; |
'</td></tr>'; |
return $output; |
return $output; |
Line 1680 sub examblock {
|
Line 1760 sub examblock {
|
'cbds' => 'Communication blocking during scheduled exams', |
'cbds' => 'Communication blocking during scheduled exams', |
'desc' => "You can use communication blocking to prevent $usertype enrolled in this course from displaying LON-CAPA messages sent by other $usertype during an online exam. As blocking of communication could potentially interrupt legitimate communication between $usertype who are also both enrolled in a different LON-CAPA course, please be careful that you select the correct start and end times for your scheduled exam when setting or modifying these parameters.", |
'desc' => "You can use communication blocking to prevent $usertype enrolled in this course from displaying LON-CAPA messages sent by other $usertype during an online exam. As blocking of communication could potentially interrupt legitimate communication between $usertype who are also both enrolled in a different LON-CAPA course, please be careful that you select the correct start and end times for your scheduled exam when setting or modifying these parameters.", |
'mecb' => 'Modify existing communication blocking periods', |
'mecb' => 'Modify existing communication blocking periods', |
'ncbc' => 'No communication blocks currently stored', |
'ncbc' => 'No communication blocks currently saved', |
'stor' => 'Store', |
'stor' => 'Save', |
); |
); |
|
|
my %ltext = &Apache::lonlocal::texthash( |
my %ltext = &Apache::lonlocal::texthash( |
Line 1984 sub displaymessage {
|
Line 2064 sub displaymessage {
|
} |
} |
my %message=&Apache::lonnet::get('nohist_email'.$suffix,[$msgid]); |
my %message=&Apache::lonnet::get('nohist_email'.$suffix,[$msgid]); |
my %content=&Apache::lonmsg::unpackagemsg($message{$msgid}); |
my %content=&Apache::lonmsg::unpackagemsg($message{$msgid}); |
|
|
my $counter=0; |
my $counter=0; |
$r->print('<pre>'); |
$r->print('<pre>'); |
my $escmsgid=&escape($msgid); |
my $escmsgid=&escape($msgid); |
Line 2000 sub displaymessage {
|
Line 2079 sub displaymessage {
|
&printheader($r,'/adm/email?display='.&escape($msgid),'Display a Message','',$content{'baseurl'}); |
&printheader($r,'/adm/email?display='.&escape($msgid),'Display a Message','',$content{'baseurl'}); |
my %courseinfo=&Apache::lonnet::coursedescription($content{'courseid'}); |
my %courseinfo=&Apache::lonnet::coursedescription($content{'courseid'}); |
# Functions |
# Functions |
$r->print('<table border="2" width="100%"><tr bgcolor="#FFFFAA"><td>'.&mt('Functions').':</td>'. |
$r->print('<table border="2" width="100%"><tr bgcolor="#FFFFAA"><td>'.&mt('Functions').':</td>'); |
'<td><a href="/adm/email?replyto='.&escape($msgid).$sqs. |
if (!$content{'noreplies'}) { |
'"><b>'.&mt('Reply').'</b></a></td>'. |
$r->print('<td><a href="/adm/email?replyto='.&escape($msgid).$sqs. |
'<td><a href="/adm/email?forward='.&escape($msgid).$sqs. |
'"><b>'.&mt('Reply').'</b></a></td>'); |
|
} |
|
$r->print('<td><a href="/adm/email?forward='.&escape($msgid).$sqs. |
'"><b>'.&mt('Forward').'</b></a></td>'. |
'"><b>'.&mt('Forward').'</b></a></td>'. |
'<td><a href="/adm/email?markunread='.&escape($msgid).$sqs. |
'<td><a href="/adm/email?markunread='.&escape($msgid).$sqs. |
'"><b>'.&mt('Mark Unread').'</b></a></td>'. |
'"><b>'.&mt('Mark Unread').'</b></a></td>'. |
Line 2039 sub displaymessage {
|
Line 2120 sub displaymessage {
|
} |
} |
$r->print('</tr></table>'); |
$r->print('</tr></table>'); |
} |
} |
my $tolist; |
my ($tolist,$cclist); |
my @recipients = (); |
my (@recipients,@ccs); |
for (my $i=0; $i<@{$content{'recuser'}}; $i++) { |
if (ref($content{'recuser'}) eq 'ARRAY') { |
$recipients[$i] = &Apache::loncommon::aboutmewrapper( |
for (my $i=0; $i<@{$content{'recuser'}}; $i++) { |
&Apache::loncommon::plainname($content{'recuser'}[$i], |
$recipients[$i] = &Apache::loncommon::aboutmewrapper( |
|
&Apache::loncommon::plainname($content{'recuser'}[$i], |
$content{'recdomain'}[$i]), |
$content{'recdomain'}[$i]), |
$content{'recuser'}[$i],$content{'recdomain'}[$i]). |
$content{'recuser'}[$i],$content{'recdomain'}[$i]). |
' ('.$content{'recuser'}[$i].' at '.$content{'recdomain'}[$i].') '; |
' ('.$content{'recuser'}[$i].' '.&mt('at').' '.$content{'recdomain'}[$i].') '; |
|
} |
} |
} |
$tolist = join(', ',@recipients); |
$tolist = join(', ',@recipients); |
|
if ($content{'recipid'}) { |
|
@ccs = &retrieve_cc_recips('display',%content); |
|
$cclist = join(', ',@ccs); |
|
} |
my ($restitle,$baseurl,$refers_to); |
my ($restitle,$baseurl,$refers_to); |
if (defined($content{'resource_title'})) { |
if (defined($content{'resource_title'})) { |
$restitle = $content{'resource_title'}; |
$restitle = $content{'resource_title'}; |
Line 2061 sub displaymessage {
|
Line 2148 sub displaymessage {
|
$baseurl = &Apache::lonenc::check_encrypt($content{'baseurl'}); |
$baseurl = &Apache::lonenc::check_encrypt($content{'baseurl'}); |
} |
} |
$r->print(&Apache::loncommon::student_image_tag($content{'senderdomain'},$content{'sendername'})); |
$r->print(&Apache::loncommon::student_image_tag($content{'senderdomain'},$content{'sendername'})); |
$r->print('<br /><b>'.&mt('Subject').':</b> '.$content{'subject'}. |
$r->print('<br /><b>'.&mt('Subject').':</b> '.$content{'subject'}); |
($folder ne 'sent'?'<br /><b>'.&mt('From').':</b> '. |
if ($folder eq 'sent') { |
|
$r->print('<br /><b>'.&mt('To').':</b> '.$tolist); |
|
if ($content{'replytoaddr'}) { |
|
my ($replytoname,$replytodom) = split(/:/,$content{'replytoaddr'}); |
|
if ($replytoname ne '' && $replytodom ne '') { |
|
$r->print('<br /><b>'.&mt('Reply To').':</b> '. |
|
$replytoname.' '.&mt('at').' '.$replytodom); |
|
} |
|
} |
|
} else { |
|
$r->print('<br /><b>'.&mt('From').':</b> '. |
&Apache::loncommon::aboutmewrapper( |
&Apache::loncommon::aboutmewrapper( |
&Apache::loncommon::plainname($content{'sendername'},$content{'senderdomain'}), |
&Apache::loncommon::plainname($content{'sendername'},$content{'senderdomain'}), |
$content{'sendername'},$content{'senderdomain'}).' ('. |
$content{'sendername'},$content{'senderdomain'})); |
$content{'sendername'}.' at '. |
if ($content{'noreplies'}) { |
$content{'senderdomain'}.') ':'<br /><b>'.&mt('To').':</b> '. |
$r->print(' ('.&mt('No replies to sender').')'); |
$tolist). |
} else { |
($content{'courseid'}?'<br /><b>'.&mt($crstype).':</b> '.$courseinfo{'description'}. |
if ($content{'replytoaddr'}) { |
($content{'coursesec'}?' ('.&mt('Section').': '.$content{'coursesec'}.')':''):''). |
my ($replytoname,$replytodom) = split(/:/,$content{'replytoaddr'}); |
'<br /><b>'.&mt('Time').':</b> '.$content{'time'}); |
if ($replytoname ne '' && $replytodom ne '') { |
|
$r->print('<br /><b>'.&mt('Reply To').':</b> '. |
|
$replytoname.' '.&mt('at').' '.$replytodom); |
|
} |
|
} else { |
|
$r->print(' ('.$content{'sendername'}.' '&mt('at').' '. |
|
$content{'senderdomain'}.') '); |
|
} |
|
if ($cclist) { |
|
$r->print('<br /><b>'.&mt('Cc').':</b> '.$cclist); |
|
} |
|
} |
|
} |
|
if ($content{'courseid'}) { |
|
$r->print('<br /><b>'.&mt($crstype).':</b> '.$courseinfo{'description'}); |
|
if ($content{'coursesec'}) { |
|
$r->print(' ('.&mt('Section').': '.$content{'coursesec'}.')'); |
|
} |
|
} |
|
$r->print('<br /><b>'.&mt('Time').':</b> '.$content{'time'}); |
if ($baseurl) { |
if ($baseurl) { |
if (defined($content{'courseid'}) && defined($env{'request.course.id'})) { |
if (defined($content{'courseid'}) && defined($env{'request.course.id'})) { |
if ($content{'courseid'} eq $env{'request.course.id'}) { |
if ($content{'courseid'} eq $env{'request.course.id'}) { |
Line 2124 sub displaymessage {
|
Line 2240 sub displaymessage {
|
return; |
return; |
} |
} |
|
|
|
sub retrieve_cc_recips { |
|
my ($context,%content) = @_; |
|
my %reciphash = |
|
&Apache::lonnet::get('nohist_emailrecip',[$content{'recipid'}], |
|
$content{'senderdomain'},$content{'sendername'}); |
|
my $recipinfo = $reciphash{$content{'recipid'}}; |
|
my @ccs; |
|
if (ref($recipinfo) eq 'HASH') { |
|
if (ref($recipinfo->{'cc'}) eq 'HASH') { |
|
foreach my $cc (sort(keys(%{$recipinfo->{'cc'}}))) { |
|
my ($ccname,$ccdom) = split(/:/,$cc); |
|
if (!(($ccname eq $env{'user.name'}) && |
|
($ccdom eq $env{'user.domain'}))) { |
|
my $showcc ='<span class="LC_nobreak">'; |
|
if ($context eq 'replying') { |
|
$showcc = '<label><input type="checkbox" name="replying_cc" value="'.$cc.'" />'; |
|
} |
|
$showcc .= &Apache::loncommon::aboutmewrapper( |
|
&Apache::loncommon::plainname($ccname, |
|
$ccdom),$ccname,$ccdom); |
|
if ($context eq 'replying') { |
|
$showcc .='</label>'; |
|
} |
|
$showcc .= '</span>'; |
|
push(@ccs,$showcc); |
|
} |
|
} |
|
} |
|
} |
|
return @ccs; |
|
} |
|
|
# =========================================================== Show the citation |
# =========================================================== Show the citation |
|
|
sub displayresource { |
sub displayresource { |
Line 2208 sub storedcommentlisting {
|
Line 2356 sub storedcommentlisting {
|
my ($r)=@_; |
my ($r)=@_; |
my %msgs=&Apache::lonnet::dump('nohist_stored_comments',undef,undef, |
my %msgs=&Apache::lonnet::dump('nohist_stored_comments',undef,undef, |
'^'.&escape(&escape($env{'form.showcommentbaseurl'}))); |
'^'.&escape(&escape($env{'form.showcommentbaseurl'}))); |
$r->print(&Apache::loncommon::start_page('Stored Comment Listing',undef, |
$r->print(&Apache::loncommon::start_page('Saved Comment Listing',undef, |
{'onlybody' => 1})); |
{'onlybody' => 1})); |
if ((keys %msgs)[0]=~/^error\:/) { |
if ((keys %msgs)[0]=~/^error\:/) { |
$r->print(&mt('No stored comments yet.')); |
$r->print(&mt('No saved comments yet.')); |
} else { |
} else { |
my $found=0; |
my $found=0; |
foreach my $key (sort(keys(%msgs))) { |
foreach my $key (sort(keys(%msgs))) { |
Line 2219 sub storedcommentlisting {
|
Line 2367 sub storedcommentlisting {
|
$found=1; |
$found=1; |
} |
} |
unless ($found) { |
unless ($found) { |
$r->print(&mt('No stored comments yet for this resource.')); |
$r->print(&mt('No saved comments yet for this resource.')); |
} |
} |
} |
} |
} |
} |
Line 2271 sub sendoffmail {
|
Line 2419 sub sendoffmail {
|
&Apache::loncommon::get_env_multiple('form.selectedusers_forminput'); |
&Apache::loncommon::get_env_multiple('form.selectedusers_forminput'); |
my $mode = $env{'form.sendmode'}; |
my $mode = $env{'form.sendmode'}; |
|
|
my %toaddr; |
my (%toaddr,$cc,$bcc); |
if (@to) { |
if (@to) { |
foreach my $dest (@to) { |
foreach my $dest (@to) { |
my ($user,$domain) = split(/:/, $dest); |
my ($user,$domain) = split(/:/, $dest); |
Line 2301 sub sendoffmail {
|
Line 2449 sub sendoffmail {
|
} else { |
} else { |
if (($env{'form.recuname'} ne '') && ($env{'form.recdomain'} ne '')) { |
if (($env{'form.recuname'} ne '') && ($env{'form.recdomain'} ne '')) { |
$toaddr{$env{'form.recuname'}.':'.$env{'form.recdomain'}}=''; |
$toaddr{$env{'form.recuname'}.':'.$env{'form.recdomain'}}=''; |
|
$cc->{$env{'form.recuname'}.':'.$env{'form.recdomain'}}=''; |
} |
} |
} |
} |
if ($env{'form.additionalrec'}) { |
if ($env{'form.additionalrec_cc'}) { |
foreach my $rec (split(/\s*,\s*/,$env{'form.additionalrec'})) { |
foreach my $rec (split(/\s*,\s*/,$env{'form.additionalrec_cc'})) { |
my ($auname,$audom)=split(/:/,$rec); |
my ($auname,$audom)=split(/:/,$rec); |
if (($auname ne "") && ($audom ne "")) { |
if (($auname ne "") && ($audom ne "")) { |
$toaddr{$auname.':'.$audom}=''; |
$toaddr{$auname.':'.$audom}=''; |
|
$cc->{$auname.':'.$audom}=''; |
} |
} |
} |
} |
} |
} |
|
if ($env{'form.additionalrec_bcc'}) { |
|
foreach my $rec (split(/\s*,\s*/,$env{'form.additionalrec_bcc'})) { |
|
my ($auname,$audom)=split(/:/,$rec); |
|
if (($auname ne "") && ($audom ne "")) { |
|
$toaddr{$auname.':'.$audom}=''; |
|
$bcc->{$auname.':'.$audom}=''; |
|
} |
|
} |
|
} |
|
if ($env{'form.replying_cc'}) { |
|
my @ccreplies = |
|
&Apache::loncommon::get_env_multiple('form.replying_cc'); |
|
foreach my $rec (@ccreplies) { |
|
my ($auname,$audom)=split(/:/,$rec); |
|
if (($auname ne "") && ($audom ne "")) { |
|
$toaddr{$auname.':'.$audom}=''; |
|
$cc->{$auname.':'.$audom}=''; |
|
} |
|
} |
|
} |
my $savemsg; |
my $savemsg; |
my $msgtype; |
my $msgtype; |
my %sentmessage; |
my %sentmessage; |
Line 2327 sub sendoffmail {
|
Line 2496 sub sendoffmail {
|
} else { |
} else { |
$savemsg=&Apache::lonfeedback::clear_out_html($env{'form.message'}); |
$savemsg=&Apache::lonfeedback::clear_out_html($env{'form.message'}); |
} |
} |
|
my %reciphash = ( |
|
cc => $cc, |
|
bcc => $bcc, |
|
); |
|
my ($recipid,$recipstatus) = |
|
&Apache::lonmsg::store_recipients($msgsubj,$env{'user.name'}, |
|
$env{'user.domain'},\%reciphash); |
|
if ($recipstatus ne 'ok') { |
|
&Apache::lonnet::logthis('Failed to store Bcc and Cc recipients for '.$env{'user.name'}.':'.$env{'user.domain'}); |
|
} |
my @recusers; |
my @recusers; |
my @recudoms; |
my @recudoms; |
foreach my $address (sort(keys(%toaddr))) { |
foreach my $address (sort(keys(%toaddr))) { |
my ($recuname,$recdomain)=split(/\:/,$address); |
my ($recuname,$recdomain)=split(/\:/,$address); |
my $msgtxt = $savemsg; |
my $msgtxt = $savemsg; |
if ($toaddr{$address}) { $msgtxt.='<hr />'.$toaddr{$address}; } |
if ($toaddr{$address}) { |
|
$msgtxt.='<hr />'.$toaddr{$address}; |
|
} |
my @thismsg; |
my @thismsg; |
if ($msgtype eq 'critical') { |
if ($msgtype eq 'critical') { |
$r->print(&mt('Sending critical message').' '. |
$r->print(&mt('Sending critical message').' '. |
Line 2343 sub sendoffmail {
|
Line 2524 sub sendoffmail {
|
$env{'form.sendbck'}, |
$env{'form.sendbck'}, |
$env{'form.permanent'}, |
$env{'form.permanent'}, |
\$sentmessage{$address}, |
\$sentmessage{$address}, |
$nosentstore); |
$nosentstore,$recipid); |
} else { |
} else { |
$r->print(&mt('Sending').' '.$recuname.':'.$recdomain.': '); |
$r->print(&mt('Sending').' '.$recuname.':'.$recdomain.': '); |
@thismsg= |
@thismsg= |
Line 2354 sub sendoffmail {
|
Line 2535 sub sendoffmail {
|
$env{'form.permanent'}, |
$env{'form.permanent'}, |
\$sentmessage{$address}, |
\$sentmessage{$address}, |
undef,undef,undef, |
undef,undef,undef, |
$nosentstore); |
$nosentstore,$recipid); |
} |
} |
$msg_status{$recuname.':'.$recdomain}=join(' ',@thismsg); |
$msg_status{$recuname.':'.$recdomain}=join(' ',@thismsg); |
if ($msg_status{$recuname.':'.$recdomain} =~ /(ok|con_delayed)/) { |
if ($msg_status{$recuname.':'.$recdomain} =~ /(ok|con_delayed)/) { |
Line 2411 sub sendoffmail {
|
Line 2592 sub sendoffmail {
|
\@recudoms); |
\@recudoms); |
} |
} |
} else { |
} else { |
&Apache::lonnet::logthis('Failed to create record of critical, broadcast or archived message in '.$env{'course.'.$env{'request.course.id'}.'.num'}.' at '.$env{'course.'.$env{'request.course.id'}.'.domain'}.' - no msgid generated'); |
&Apache::lonnet::logthis('Failed to create record of critical, broadcast or archived message in '.$env{'course.'.$env{'request.course.id'}.'.num'}.' '&mt('at').' '.$env{'course.'.$env{'request.course.id'}.'.domain'}.' - no msgid generated'); |
} |
} |
} else { |
} else { |
my $stamp = time; |
my $stamp = time; |
Line 2528 sub handler {
|
Line 2709 sub handler {
|
&printheader($r,'','Confirmed Receipt'); |
&printheader($r,'','Confirmed Receipt'); |
my $replying = 0; |
my $replying = 0; |
foreach my $envkey (keys(%env)) { |
foreach my $envkey (keys(%env)) { |
if ($envkey=~/^form\.rec\_(.*)$/) { |
if ($envkey=~/^form\.(rep)?rec\_(.*)$/) { |
$r->print('<b>'.&mt('Confirming Receipt').':</b> '. |
my $repchk = $1; |
&Apache::lonmsg::user_crit_received($1).'<br>'); |
my $msgid = $2; |
} |
$r->print('<b>'.&mt('Confirming Receipt').':</b> '); |
if ($envkey=~/^form\.reprec\_(.*)$/) { |
my $result = &Apache::lonmsg::user_crit_received($msgid); |
my $msgid=$1; |
if ($result =~ /trans:\s+ok/) { |
$r->print('<b>'.&mt('Confirming Receipt').':</b> '. |
&statuschange($msgid,'read'); |
&Apache::lonmsg::user_crit_received($msgid).'<br>'); |
} |
&compout($r,'','','',$msgid); |
$r->print($result.'<br />'); |
$replying = 1; |
if ($repchk eq 'rep') { |
|
&compout($r,'','','',$msgid); |
|
$replying = 1; |
|
} |
} |
} |
} |
} |
if (!$replying) { |
if (!$replying) { |