version 1.178, 2014/12/11 01:52:30
|
version 1.190, 2019/08/12 15:15:56
|
Line 102 use HTML::TokeParser();
|
Line 102 use HTML::TokeParser();
|
use Apache::Constants qw(:common); |
use Apache::Constants qw(:common); |
use Apache::loncommon(); |
use Apache::loncommon(); |
use Apache::lonhtmlcommon(); |
use Apache::lonhtmlcommon(); |
|
use Apache::longroup; |
|
use Apache::lonnavmaps; |
use Apache::lontexconvert(); |
use Apache::lontexconvert(); |
use HTML::Entities(); |
use HTML::Entities(); |
use Apache::lonlocal; |
use Apache::lonlocal; |
Line 120 my $startdis='';
|
Line 122 my $startdis='';
|
|
|
sub folderlist { |
sub folderlist { |
my ($folder,$msgstatus) = @_; |
my ($folder,$msgstatus) = @_; |
my %lt = &Apache::lonlocal::texthash( |
my %html_lt = &Apache::lonlocal::texthash( |
actn => 'Action', |
actn => 'Action', |
fold => 'Folder', |
fold => 'Folder', |
show => 'Show', |
show => 'Show', |
status => 'Message Status', |
status => 'Message Status', |
go => 'Go', |
go => 'Go', |
|
|
|
); |
|
&html_escape(\%html_lt); |
|
my %js_lt = &Apache::lonlocal::texthash( |
nnff => 'New Name for Folder', |
nnff => 'New Name for Folder', |
newn => 'New Name', |
newn => 'New Name', |
fmnb => 'Folder may not be renamed as it is a folder provided by the system.', |
fmnb => 'Folder may not be renamed as it is a folder provided by the system.', |
asth => 'Requested name already in use for a system-provided or user-defined folder.', |
asth => 'Requested name already in use for a system-provided or user-defined folder.', |
|
|
); |
); |
|
&js_escape(\%js_lt); |
|
|
# set se lastvisit for the new mail check in the toplevel menu |
# set se lastvisit for the new mail check in the toplevel menu |
&Apache::lonnet::appenv({'user.mailcheck.lastvisit'=>time}); |
&Apache::lonnet::appenv({'user.mailcheck.lastvisit'=>time}); |
Line 179 function folder_choice(targetform,caller
|
Line 186 function folder_choice(targetform,caller
|
if (targetform.folderaction.options[targetform.folderaction.selectedIndex].value == 'rename') { |
if (targetform.folderaction.options[targetform.folderaction.selectedIndex].value == 'rename') { |
for (var i=0; i<permfolders_keys.length; i++) { |
for (var i=0; i<permfolders_keys.length; i++) { |
if (permfolders_keys[i] == targetform.folder.value) { |
if (permfolders_keys[i] == targetform.folder.value) { |
alert("'"+permfolders_vals[i]+"' -- $lt{'fmnb'}"); |
alert("'"+permfolders_vals[i]+"' -- $js_lt{'fmnb'}"); |
return; |
return; |
} |
} |
} |
} |
var foldername=prompt('$lt{'nnff'}','$lt{'newn'}'); |
var foldername=prompt('$js_lt{'nnff'}','$js_lt{'newn'}'); |
if (foldername) { |
if (foldername) { |
targetform.renamed.value=foldername; |
targetform.renamed.value=foldername; |
for (var i=0; i<allfolders.length; i++) { |
for (var i=0; i<allfolders.length; i++) { |
if (allfolders[i] == foldername) { |
if (allfolders[i] == foldername) { |
alert("'"+foldername+"' $lt{'asth'}"); |
alert("'"+foldername+"' $js_lt{'asth'}"); |
return; |
return; |
} |
} |
} |
} |
Line 204 function folder_choice(targetform,caller
|
Line 211 function folder_choice(targetform,caller
|
if (newname) { |
if (newname) { |
for (var i=0; i<allfolders.length; i++) { |
for (var i=0; i<allfolders.length; i++) { |
if (allfolders[i] == newname) { |
if (allfolders[i] == newname) { |
alert("'"+newname+"' -- $lt{'asth'}"); |
alert("'"+newname+"' -- $js_lt{'asth'}"); |
return; |
return; |
} |
} |
} |
} |
Line 223 function folder_choice(targetform,caller
|
Line 230 function folder_choice(targetform,caller
|
<legend>'.&mt('Folder Actions').'</legend> |
<legend>'.&mt('Folder Actions').'</legend> |
<table border="0" cellspacing="2" cellpadding="8"> |
<table border="0" cellspacing="2" cellpadding="8"> |
<tr> |
<tr> |
<td><b>'.$lt{'fold'}.'</b><br />'."\n". |
<td><b>'.$html_lt{'fold'}.'</b><br />'."\n". |
&Apache::loncommon::select_form($folder,'folder',\%formhash).' |
&Apache::loncommon::select_form($folder,'folder',\%formhash).' |
</td> |
</td> |
<td><b>'.$lt{'show'}.'</b><br />'."\n". |
<td><b>'.$html_lt{'show'}.'</b><br />'."\n". |
&Apache::loncommon::select_form($env{'form.interdis'},'interdis', |
&Apache::loncommon::select_form($env{'form.interdis'},'interdis', |
\%show).' |
\%show).' |
</td> |
</td> |
<td><b>'.$lt{'status'}.'</b><br />'."\n". |
<td><b>'.$html_lt{'status'}.'</b><br />'."\n". |
&Apache::loncommon::select_form($msgstatus,'msgstatus',\%statushash).' |
&Apache::loncommon::select_form($msgstatus,'msgstatus',\%statushash).' |
</td> |
</td> |
<td style="padding-right: 40px;"> |
<td style="padding-right: 40px;"> |
<b>'.$lt{'actn'}.'</b><br />'."\n".' |
<b>'.$html_lt{'actn'}.'</b><br />'."\n".' |
<span class="LC_nobreak">'. |
<span class="LC_nobreak">'. |
&Apache::loncommon::select_form('view','folderaction',\%actions). |
&Apache::loncommon::select_form('view','folderaction',\%actions). |
' <input type="button" value="'.$lt{'go'}. |
' <input type="button" value="'.$html_lt{'go'}. |
'" onclick="javascript:folder_choice(this.form,'."'change'".');" /> |
'" onclick="javascript:folder_choice(this.form,'."'change'".');" /> |
</span> |
</span> |
</td> |
</td> |
Line 245 function folder_choice(targetform,caller
|
Line 252 function folder_choice(targetform,caller
|
<b>'.&mt('New Folder').'</b><br />'."\n".' |
<b>'.&mt('New Folder').'</b><br />'."\n".' |
<span class="LC_nobreak"> |
<span class="LC_nobreak"> |
<input type="text" size="15" name="newfolder" value="" /> |
<input type="text" size="15" name="newfolder" value="" /> |
<input type="button" value="'.$lt{'go'}. |
<input type="button" value="'.$html_lt{'go'}. |
'" onclick="javascript:folder_choice(this.form,'."'new'".');" /> |
'" onclick="javascript:folder_choice(this.form,'."'new'".');" /> |
</span> |
</span> |
</td> |
</td> |
Line 768 sub groupmail_header {
|
Line 775 sub groupmail_header {
|
text=>"Groups", |
text=>"Groups", |
title=>$brtitle}); |
title=>$brtitle}); |
} |
} |
&Apache::lonhtmlcommon::add_breadcrumb |
my $view_permission = |
({href=>"/adm/$cdom/$cnum/$group/smppg?$refarg", |
&Apache::lonnet::allowed('vcg',$env{'request.course.id'}.($env{'request.course.sec'}?'/'.$env{'request.course.sec'}:'')); |
text=>"Group: $description", |
my $navmap=Apache::lonnavmaps::navmap->new(); |
title=>"Go to group's home page"}, |
my $grouppagelink = &Apache::longroup::get_group_link($cdom,$cnum,$group,$navmap,$view_permission,$refarg); |
{href=>"/adm/email?compose=group&group=". |
if ($grouppagelink) { |
"$env{'form.group'}&$refarg", |
&Apache::lonhtmlcommon::add_breadcrumb |
text=>"Send a Message in a Group", |
({href=>$grouppagelink, |
title=>"Compose Group Message"},); |
text=>"Group: $description", |
|
title=>"Go to group's home page"},); |
|
} else { |
|
&Apache::lonhtmlcommon::add_breadcrumb |
|
({text=>"Group: $description",}); |
|
} |
|
&Apache::lonhtmlcommon::add_breadcrumb |
|
({href=>"/adm/email?compose=group&group=". |
|
"$env{'form.group'}&$refarg", |
|
text=>"Send a Message in a Group", |
|
title=>"Compose Group Message"},); |
if ($action eq 'sending') { |
if ($action eq 'sending') { |
&Apache::lonhtmlcommon::add_breadcrumb |
&Apache::lonhtmlcommon::add_breadcrumb |
({text=>"Messages being sent.", |
({text=>"Messages being sent.", |
Line 1051 sub disfolder {
|
Line 1068 sub disfolder {
|
my %setters = (); |
my %setters = (); |
my $numblocked = 0; |
my $numblocked = 0; |
my ($startblock,$endblock) = &Apache::loncommon::blockcheck(\%setters,'com'); |
my ($startblock,$endblock) = &Apache::loncommon::blockcheck(\%setters,'com'); |
my %lt = &Apache::lonlocal::texthash( |
my %js_lt = &Apache::lonlocal::texthash( |
sede => 'Select a destination folder to which the messages will be moved.', |
sede => 'Select a destination folder to which the messages will be moved.', |
nome => 'No messages have been selected to apply this action to.', |
nome => 'No messages have been selected to apply this action to.', |
chec => 'Check the checkbox for at least one message.', |
chec => 'Check the checkbox for at least one message.', |
); |
); |
|
&js_escape(\%js_lt); |
my $jscript = &Apache::loncommon::check_uncheck_jscript(); |
my $jscript = &Apache::loncommon::check_uncheck_jscript(); |
$r->print(<<ENDDISHEADER); |
$r->print(<<ENDDISHEADER); |
<script type="text/javascript"> |
<script type="text/javascript"> |
Line 1066 sub disfolder {
|
Line 1084 sub disfolder {
|
document.disall.markedaction.value = document.disall.checkedaction.options[document.disall.checkedaction.selectedIndex].value; |
document.disall.markedaction.value = document.disall.checkedaction.options[document.disall.checkedaction.selectedIndex].value; |
if (document.disall.checkedaction.options[document.disall.checkedaction.selectedIndex].value == 'markedmove') { |
if (document.disall.checkedaction.options[document.disall.checkedaction.selectedIndex].value == 'markedmove') { |
if (document.disall.movetofolder.options[document.disall.movetofolder.selectedIndex].value == "") { |
if (document.disall.movetofolder.options[document.disall.movetofolder.selectedIndex].value == "") { |
alert("$lt{'sede'}"); |
alert("$js_lt{'sede'}"); |
return; |
return; |
} |
} |
} |
} |
Line 1083 sub disfolder {
|
Line 1101 sub disfolder {
|
} |
} |
} |
} |
if (checktotal == 0) { |
if (checktotal == 0) { |
alert("$lt{'nome'}\\n$lt{'chec'}"); |
alert("$js_lt{'nome'}\\n$js_lt{'chec'}"); |
return; |
return; |
} |
} |
document.disall.submit(); |
document.disall.submit(); |
Line 1394 sub compout {
|
Line 1412 sub compout {
|
'to' => 'To:', |
'to' => 'To:', |
); |
); |
my %attachmax = ( |
my %attachmax = ( |
text => &mt('(128 KB max size)'), |
text => &mt('(1 MB max size)'), |
num => 131072, |
num => 1048576, |
); |
); |
if (!$forwarding && !$multiforward) { |
if (!$forwarding && !$multiforward) { |
$attachrow = '<tr><td colspan="3"><b>'.$lt{'atta'}.'</b> '.$attachmax{'text'}.': <input type="file" name="attachment" /></td></tr>'; |
$attachrow = '<tr><td colspan="3"><b>'.$lt{'atta'}.'</b> '.$attachmax{'text'} |
|
.': <input type="file" name="attachment" class="LC_flUpload" multiple />' |
|
.'<input type="hidden" id="LC_free_space" value="'.$attachmax{'num'}.'" />' |
|
.'</td></tr>'; |
} |
} |
if (&Apache::lonnet::allowed('srm',$env{'request.course.id'}) |
if (&Apache::lonnet::allowed('srm',$env{'request.course.id'}) |
|| &Apache::lonnet::allowed('srm',$env{'request.course.id'}. |
|| &Apache::lonnet::allowed('srm',$env{'request.course.id'}. |
Line 2168 sub displaymessage {
|
Line 2189 sub displaymessage {
|
my @actionlist; |
my @actionlist; |
if ($env{'user.adv'}) { |
if ($env{'user.adv'}) { |
|
|
if (&Apache::lonnet::allowed('vgr',$env{'request.course.id'})) { |
if (($env{'request.course.id'}) && ($from_student) && |
|
(&Apache::lonnet::allowed('vgr',$env{'request.course.id'}))) { |
push(@actionlist,&Apache::loncommon::track_student_link( |
push(@actionlist,&Apache::loncommon::track_student_link( |
'View recent activity' |
'View recent activity' |
,$content{'sendername'} |
,$content{'sendername'} |
Line 2631 sub displayresource {
|
Line 2653 sub displayresource {
|
} |
} |
# Could not get a symb, give up |
# Could not get a symb, give up |
unless ($symb) { return $content{'citation'}; } |
unless ($symb) { return $content{'citation'}; } |
|
if ($symb =~ /ext\.tool$/) { |
|
return '<h2>'.&mt('Current transactions for student (if applicable)').'</h2>'. |
|
&Apache::loncommon::get_previous_attempt($symb, |
|
$content{'sendername'}, |
|
$content{'senderdomain'}, |
|
$content{'courseid'}); |
|
} |
# Have a symb, can render |
# Have a symb, can render |
return '<h2>'.&mt('Current attempts of student (if applicable)').'</h2>'. |
return '<h2>'.&mt('Current attempts of student (if applicable)').'</h2>'. |
&Apache::loncommon::get_previous_attempt($symb, |
&Apache::loncommon::get_previous_attempt($symb, |
Line 2661 sub header {
|
Line 2690 sub header {
|
if ($baseurl) { |
if ($baseurl) { |
$extra .= "<base href=\"".&Apache::lonnet::absolute_url()."/$baseurl\" />"; |
$extra .= "<base href=\"".&Apache::lonnet::absolute_url()."/$baseurl\" />"; |
} |
} |
|
$extra .= '<script type="text/javascript" |
|
src="/res/adm/includes/file_upload.js"></script>'; |
$r->print(&Apache::loncommon::start_page('Messages', |
$r->print(&Apache::loncommon::start_page('Messages', |
$extra)); |
$extra)); |
$r->print(&Apache::lonhtmlcommon::breadcrumbs |
$r->print(&Apache::lonhtmlcommon::breadcrumbs |
Line 2732 sub sendoffmail {
|
Line 2763 sub sendoffmail {
|
$cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
$cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
} |
} |
if ($env{'form.send'}) { |
if ($env{'form.send'}) { |
if (!$env{'form.multiforward'}) { |
if (!$env{'form.multiforward'}) { |
if ($group eq '') { |
if ($group eq '') { |
&printheader($r,'','Messages being sent.'); |
&printheader($r,'','Messages being sent.'); |
} else { |
} else { |
Line 2762 sub sendoffmail {
|
Line 2793 sub sendoffmail {
|
|
|
my $mode = $env{'form.sendmode'}; |
my $mode = $env{'form.sendmode'}; |
my (%toaddr,$tos,$cc,$bcc,$broadcast); |
my (%toaddr,$tos,$cc,$bcc,$broadcast); |
|
my (%willtrust,%trustchecked,%disallowed); |
|
my $serverdefdom = &Apache::lonnet::default_login_domain(); |
|
|
if ($mode eq 'group') { |
if ($mode eq 'group') { |
if (defined($env{'form.courserecips'})) { |
if (defined($env{'form.courserecips'})) { |
Line 2771 sub sendoffmail {
|
Line 2804 sub sendoffmail {
|
foreach my $dest (@to) { |
foreach my $dest (@to) { |
my ($user,$domain) = split(/:/, $dest); |
my ($user,$domain) = split(/:/, $dest); |
if (($user ne '') && ($domain ne '')) { |
if (($user ne '') && ($domain ne '')) { |
my $rec = $user.":".$domain; |
unless ($trustchecked{$domain}) { |
$toaddr{$rec} = ''; |
$willtrust{$domain} = &Apache::lonnet::will_trust('msg',$serverdefdom,$domain); |
$broadcast->{$rec} = ''; |
$trustchecked{$domain} = 1; |
|
} |
|
if ($willtrust{$domain}) { |
|
my $rec = $user.":".$domain; |
|
$toaddr{$rec} = ''; |
|
$broadcast->{$rec} = ''; |
|
} else { |
|
$disallowed{'to'}{$user.":".$domain} = 1; |
|
} |
} |
} |
} |
} |
} |
} |
Line 2784 sub sendoffmail {
|
Line 2825 sub sendoffmail {
|
if ($txt) { |
if ($txt) { |
$rec =~ s/^\s+//; |
$rec =~ s/^\s+//; |
$rec =~ s/\s+$//; |
$rec =~ s/\s+$//; |
$toaddr{$rec}.=$txt."\n"; |
my ($recuname,$recudom) = split(/:/,$rec); |
$broadcast->{$rec} = ''; |
unless ($trustchecked{$recudom}) { |
|
$willtrust{$recudom} = &Apache::lonnet::will_trust('msg',$serverdefdom,$recudom); |
|
$trustchecked{$recudom} = 1; |
|
} |
|
if ($willtrust{$recudom}) { |
|
$toaddr{$rec}.=$txt."\n"; |
|
$broadcast->{$rec} = ''; |
|
} else { |
|
$disallowed{'to'}{$rec} = 1; |
|
} |
} |
} |
} |
} |
} 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'}}=''; |
unless ($trustchecked{$env{'form.recdomain'}}) { |
$tos->{$env{'form.recuname'}.':'.$env{'form.recdomain'}}=''; |
$willtrust{$env{'form.recdomain'}} = &Apache::lonnet::will_trust('msg',$serverdefdom,$env{'form.recdomain'}); |
|
$trustchecked{$env{'form.recdomain'}} = 1; |
|
} |
|
if ($willtrust{$env{'form.recdomain'}}) { |
|
$toaddr{$env{'form.recuname'}.':'.$env{'form.recdomain'}}=''; |
|
$tos->{$env{'form.recuname'}.':'.$env{'form.recdomain'}}=''; |
|
} else { |
|
$disallowed{'to'}{$env{'form.recuname'}.':'.$env{'form.recdomain'}}; |
|
} |
} |
} |
} |
} |
if ($env{'form.additionalrec_to'}) { |
if ($env{'form.additionalrec_to'}) { |
foreach my $rec (split(/\s*,\s*/,$env{'form.additionalrec_to'})) { |
foreach my $rec (split(/\s*,\s*/,$env{'form.additionalrec_to'})) { |
my ($auname,$audom)=split(/:/,$rec); |
my ($auname,$audom)=split(/:/,$rec); |
if (($auname ne "") && ($audom ne "")) { |
if (($auname ne "") && ($audom ne "")) { |
$toaddr{$auname.':'.$audom}=''; |
unless ($trustchecked{$audom}) { |
$tos->{$auname.':'.$audom}=''; |
$willtrust{$audom} = &Apache::lonnet::will_trust('msg',$serverdefdom,$audom); |
|
$trustchecked{$audom} = 1; |
|
} |
|
if ($willtrust{$audom}) { |
|
$toaddr{$auname.':'.$audom}=''; |
|
$tos->{$auname.':'.$audom}=''; |
|
} else { |
|
$disallowed{'to'}{$auname.':'.$audom}; |
|
} |
} |
} |
} |
} |
} |
} |
Line 2809 sub sendoffmail {
|
Line 2875 sub sendoffmail {
|
foreach my $rec (@toreplies) { |
foreach my $rec (@toreplies) { |
my ($auname,$audom)=split(/:/,$rec); |
my ($auname,$audom)=split(/:/,$rec); |
if (($auname ne "") && ($audom ne "")) { |
if (($auname ne "") && ($audom ne "")) { |
$toaddr{$auname.':'.$audom}=''; |
unless ($trustchecked{$audom}) { |
$tos->{$auname.':'.$audom}=''; |
$willtrust{$audom} = &Apache::lonnet::will_trust('msg',$serverdefdom,$audom); |
|
$trustchecked{$audom} = 1; |
|
} |
|
if ($willtrust{$audom}) { |
|
$toaddr{$auname.':'.$audom}=''; |
|
$tos->{$auname.':'.$audom}=''; |
|
} else { |
|
$disallowed{'to'}{$auname.':'.$audom}; |
|
} |
} |
} |
} |
} |
} |
} |
Line 2818 sub sendoffmail {
|
Line 2892 sub sendoffmail {
|
foreach my $rec (split(/\s*,\s*/,$env{'form.additionalrec_cc'})) { |
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}=''; |
|
if (!defined($tos->{$auname.':'.$audom})) { |
if (!defined($tos->{$auname.':'.$audom})) { |
$cc->{$auname.':'.$audom}=''; |
unless ($trustchecked{$audom}) { |
|
$willtrust{$audom} = &Apache::lonnet::will_trust('msg',$serverdefdom,$audom); |
|
$trustchecked{$audom} = 1; |
|
} |
|
if ($willtrust{$audom}) { |
|
$toaddr{$auname.':'.$audom}=''; |
|
$cc->{$auname.':'.$audom}=''; |
|
} else { |
|
$disallowed{'cc'}{$auname.':'.$audom}; |
|
} |
} |
} |
} |
} |
} |
} |
Line 2831 sub sendoffmail {
|
Line 2913 sub sendoffmail {
|
foreach my $rec (@ccreplies) { |
foreach my $rec (@ccreplies) { |
my ($auname,$audom)=split(/:/,$rec); |
my ($auname,$audom)=split(/:/,$rec); |
if (($auname ne "") && ($audom ne "")) { |
if (($auname ne "") && ($audom ne "")) { |
$toaddr{$auname.':'.$audom}=''; |
|
if (!defined($tos->{$auname.':'.$audom})) { |
if (!defined($tos->{$auname.':'.$audom})) { |
$cc->{$auname.':'.$audom}=''; |
unless ($trustchecked{$audom}) { |
|
$willtrust{$audom} = &Apache::lonnet::will_trust('msg',$serverdefdom,$audom); |
|
$trustchecked{$audom} = 1; |
|
} |
|
if ($willtrust{$audom}) { |
|
$toaddr{$auname.':'.$audom}=''; |
|
$cc->{$auname.':'.$audom}=''; |
|
} else { |
|
$disallowed{'cc'}{$auname.':'.$audom} = 1; |
|
} |
} |
} |
} |
} |
} |
} |
Line 2844 sub sendoffmail {
|
Line 2934 sub sendoffmail {
|
foreach my $rec (@groupreplies) { |
foreach my $rec (@groupreplies) { |
my ($auname,$audom)=split(/:/,$rec); |
my ($auname,$audom)=split(/:/,$rec); |
if (($auname ne "") && ($audom ne "")) { |
if (($auname ne "") && ($audom ne "")) { |
$toaddr{$auname.':'.$audom}=''; |
|
if (!defined($tos->{$auname.':'.$audom})) { |
if (!defined($tos->{$auname.':'.$audom})) { |
$broadcast->{$auname.':'.$audom}=''; |
unless ($trustchecked{$audom}) { |
|
$willtrust{$audom} = &Apache::lonnet::will_trust('msg',$serverdefdom,$audom); |
|
$trustchecked{$audom} = 1; |
|
} |
|
if ($willtrust{$audom}) { |
|
$toaddr{$auname.':'.$audom}=''; |
|
$broadcast->{$auname.':'.$audom}=''; |
|
} else { |
|
$disallowed{'to'}{$auname.':'.$audom} = 1; |
|
} |
} |
} |
} |
} |
} |
} |
Line 2855 sub sendoffmail {
|
Line 2953 sub sendoffmail {
|
foreach my $rec (split(/\s*,\s*/,$env{'form.additionalrec_bcc'})) { |
foreach my $rec (split(/\s*,\s*/,$env{'form.additionalrec_bcc'})) { |
my ($auname,$audom)=split(/:/,$rec); |
my ($auname,$audom)=split(/:/,$rec); |
if (($auname ne "") && ($audom ne "")) { |
if (($auname ne "") && ($audom ne "")) { |
$toaddr{$auname.':'.$audom}=''; |
if ((!defined($tos->{$auname.':'.$audom})) && |
if ((!defined($tos->{$auname.':'.$audom})) && |
|
(!defined($cc->{$auname.':'.$audom}))) { |
(!defined($cc->{$auname.':'.$audom}))) { |
$bcc->{$auname.':'.$audom}=''; |
unless ($trustchecked{$audom}) { |
|
$willtrust{$audom} = &Apache::lonnet::will_trust('msg',$serverdefdom,$audom); |
|
$trustchecked{$audom} = 1; |
|
} |
|
if ($willtrust{$audom}) { |
|
$toaddr{$auname.':'.$audom}=''; |
|
$bcc->{$auname.':'.$audom}=''; |
|
} else { |
|
$disallowed{'bcc'}{$auname.':'.$audom} = 1; |
|
} |
} |
} |
} |
} |
} |
} |
Line 2878 sub sendoffmail {
|
Line 2984 sub sendoffmail {
|
} else { |
} else { |
$savemsg=&Apache::lonfeedback::clear_out_html($env{'form.message'}); |
$savemsg=&Apache::lonfeedback::clear_out_html($env{'form.message'}); |
} |
} |
my %reciphash = ( |
my ($recipid, @recusers, @recudoms, %permresults); |
to => $tos, |
if (keys(%toaddr) > 0) { |
cc => $cc, |
my %reciphash = ( |
bcc => $bcc, |
to => $tos, |
); |
cc => $cc, |
if ($mode eq 'group') { |
bcc => $bcc, |
if ($group eq '') { |
); |
$reciphash{'course_broadcast'} = $broadcast; |
if ($mode eq 'group') { |
} else { |
if ($group eq '') { |
if ($env{'form.groupmail'} eq 'cc') { |
$reciphash{'course_broadcast'} = $broadcast; |
$reciphash{'group_cc_broadcast'} = $broadcast; |
|
} else { |
} else { |
$reciphash{'group_bcc_broadcast'} = $broadcast; |
if ($env{'form.groupmail'} eq 'cc') { |
|
$reciphash{'group_cc_broadcast'} = $broadcast; |
|
} else { |
|
$reciphash{'group_bcc_broadcast'} = $broadcast; |
|
} |
} |
} |
} |
} |
} |
($recipid,my $recipstatus) = |
my ($recipid,$recipstatus) = |
&Apache::lonmsg::store_recipients($msgsubj,$env{'user.name'}, |
&Apache::lonmsg::store_recipients($msgsubj,$env{'user.name'}, |
$env{'user.domain'},\%reciphash); |
$env{'user.domain'},\%reciphash); |
if ($recipstatus ne 'ok') { |
if ($recipstatus ne 'ok') { |
&Apache::lonnet::logthis('Failed to store To, Bcc and Cc recipients for '.$env{'user.name'}.':'.$env{'user.domain'}); |
&Apache::lonnet::logthis('Failed to store To, Bcc and Cc recipients for '.$env{'user.name'}.':'.$env{'user.domain'}); |
} |
} |
if ($env{'form.attachment'}) { |
if ($env{'form.attachment'}) { |
if (length($env{'form.attachment'}) <= 1048576) { |
if (length($env{'form.attachment'})<131072) { |
$attachmenturl=&Apache::lonnet::userfileupload('attachment',undef,'feedback/'.$now); |
$attachmenturl=&Apache::lonnet::userfileupload('attachment',undef,'feedback/'.$now); |
} else { |
} else { |
$r->print('<p><span class="LC_warning">'.&mt('Attachment not included - exceeded permitted length').'</span><br /></p>'); |
$r->print('<p><span class="LC_warning">'.&mt('Attachment not included - exceeded permitted length').'</span><br /></p>'); |
} |
} |
} elsif ($env{'form.multiforward'}) { |
} elsif ($env{'form.multiforward'}) { |
if ($env{'form.attachmenturl'} ne '') { |
if ($env{'form.attachmenturl'} ne '') { |
$attachmenturl = $env{'form.attachmenturl'}; |
$attachmenturl = $env{'form.attachmenturl'}; |
} |
} |
} |
} |
} |
my @recusers; |
|
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; |
Line 2929 sub sendoffmail {
|
Line 3036 sub sendoffmail {
|
$env{'form.sendbck'}, |
$env{'form.sendbck'}, |
$env{'form.permanent'}, |
$env{'form.permanent'}, |
\$sentmessage{$address}, |
\$sentmessage{$address}, |
$nosentstore,$recipid); |
$nosentstore,$recipid, |
|
$attachmenturl,\%permresults); |
} else { |
} else { |
$r->print(&mt('Sending').' '.$recuname.':'.$recdomain.': '); |
$r->print(&mt('Sending').' '.$recuname.':'.$recdomain.': '); |
@thismsg= |
@thismsg= |
Line 2940 sub sendoffmail {
|
Line 3048 sub sendoffmail {
|
$env{'form.permanent'}, |
$env{'form.permanent'}, |
\$sentmessage{$address}, |
\$sentmessage{$address}, |
undef,undef,undef, |
undef,undef,undef, |
$nosentstore,$recipid); |
$nosentstore,$recipid, |
|
\%permresults); |
} |
} |
$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)/) { |
$numsent++; |
$numsent++; |
push(@recusers,$recuname); |
push(@recusers,$recuname); |
push(@recudoms,$recdomain); |
push(@recudoms,$recdomain); |
|
if ($1 eq 'ok') { |
|
$r->print('ok '); |
|
} |
|
if ($permresults{$recuname.':'.$recdomain}) { |
|
$r->print(' (email) '); |
|
} |
} |
} |
$sendstatus.=' '.join(' ',@thismsg); |
$sendstatus.=' '.join(' ',@thismsg); |
} |
} |
Line 3042 sub sendoffmail {
|
Line 3157 sub sendoffmail {
|
$r->print($message); |
$r->print($message); |
} |
} |
} |
} |
|
if (keys(%disallowed)) { |
|
if ((ref($disallowed{'to'}) eq 'HASH') && (keys(%{$disallowed{'to'}}) > 0)) { |
|
$r->print(&mt("The following recipients were excluded because the user's domain does not accept messages from server's domain:").'<ul><li>'. |
|
join("</li><li>\n",sort(keys(%{$disallowed{'to'}}))). |
|
'</li><ul><br />'); |
|
} |
|
if (ref($disallowed{'cc'}) eq 'HASH') { |
|
$r->print(&mt("The following CCs were excluded because the user's domain does not accept messages from server's domain:").'<ul><li>'. |
|
join("</li><li>\n",sort(keys(%{$disallowed{'cc'}}))). |
|
'</li><ul><br />'); |
|
} |
|
if (ref($disallowed{'bcc'}) eq 'HASH') { |
|
$r->print(&mt("The following BCCs were excluded because the user's domain does not accept messages from server's domain:").'<ul><li>'. |
|
join("</li><li>\n",sort(keys(%{$disallowed{'bcc'}}))). |
|
'</li><ul><br />'); |
|
} |
|
} |
} else { |
} else { |
&printheader($r,'','Messages cancelled.'); |
&printheader($r,'','Messages cancelled.'); |
return 'cancelled'; |
return 'cancelled'; |