version 1.176, 2014/05/21 19:03:04
|
version 1.181.2.9, 2022/01/19 15:06:22
|
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}); |
} |
} |
|
my $view_permission = |
|
&Apache::lonnet::allowed('vcg',$env{'request.course.id'}.($env{'request.course.sec'}?'/'.$env{'request.course.sec'}:'')); |
|
my $navmap=Apache::lonnavmaps::navmap->new(); |
|
my $grouppagelink = &Apache::longroup::get_group_link($cdom,$cnum,$group,$navmap,$view_permission,$refarg); |
|
if ($grouppagelink) { |
|
&Apache::lonhtmlcommon::add_breadcrumb |
|
({href=>$grouppagelink, |
|
text=>&mt('Group').": $description", |
|
title=>&mt("Go to group's home page"), |
|
no_mt=>1, |
|
},); |
|
} else { |
|
&Apache::lonhtmlcommon::add_breadcrumb |
|
({text=>&mt('Group').": $description", |
|
no_mt=>1,}); |
|
} |
&Apache::lonhtmlcommon::add_breadcrumb |
&Apache::lonhtmlcommon::add_breadcrumb |
({href=>"/adm/$cdom/$cnum/$group/smppg?$refarg", |
({href=>"/adm/email?compose=group&group=". |
text=>"Group: $description", |
"$env{'form.group'}&$refarg", |
title=>"Go to group's home page"}, |
text=>"Send a Message in a Group", |
{href=>"/adm/email?compose=group&group=". |
title=>"Compose Group Message"},); |
"$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.", |
title=>"E-mails sent"},); |
title=>"E-mails sent"},); |
} |
} |
my $groupheader = &Apache::loncommon::start_page('Group Message'); |
my $groupheader = &Apache::loncommon::start_page('Group Message'); |
$groupheader .= &Apache::lonhtmlcommon::breadcrumbs |
$groupheader .= &Apache::lonhtmlcommon::breadcrumbs( |
('Group - '.$env{'form.group'}.' Email'); |
&mt('Group messages - [_1]',$description), |
|
undef,undef,undef,undef,1); |
return $groupheader; |
return $groupheader; |
} |
} |
|
|
Line 844 sub discrit {
|
Line 865 sub discrit {
|
.&Apache::lonhtmlcommon::row_closure(1); |
.&Apache::lonhtmlcommon::row_closure(1); |
} |
} |
$result .= &Apache::lonhtmlcommon::row_title(&mt('Message'),undef,'LC_evenrow_value') |
$result .= &Apache::lonhtmlcommon::row_title(&mt('Message'),undef,'LC_evenrow_value') |
.'<pre>'.&Apache::lontexconvert::msgtexconverted($content{'message'}).'</pre>' |
.'<pre class="LC_wordwrap">'.&Apache::lontexconvert::msgtexconverted($content{'message'}).'</pre>' |
.&Apache::lonhtmlcommon::row_closure() |
.&Apache::lonhtmlcommon::row_closure() |
.&Apache::lonhtmlcommon::row_title('',undef,'LC_oddrow_value') |
.&Apache::lonhtmlcommon::row_title('',undef,'LC_oddrow_value') |
.'<div class="LC_warning">'; |
.'<div class="LC_warning">'; |
Line 891 sub discrit {
|
Line 912 sub discrit {
|
} |
} |
|
|
sub sortedmessages { |
sub sortedmessages { |
my ($blocked,$startblock,$endblock,$numblocked,$folder,$msgstatus) = @_; |
my ($blocked,$startblock,$endblock,$by_ip,$numblocked,$folder,$msgstatus) = @_; |
my $suffix=&Apache::lonmsg::foldersuffix($folder); |
my $suffix=&Apache::lonmsg::foldersuffix($folder); |
my @messages = &Apache::lonnet::getkeys('nohist_email'.$suffix); |
my @messages = &Apache::lonnet::getkeys('nohist_email'.$suffix); |
#unpack the varibles and repack into temp for sorting |
#unpack the varibles and repack into temp for sorting |
Line 923 sub sortedmessages {
|
Line 944 sub sortedmessages {
|
push(@temp1,$content{'recuser'},$content{'recdomain'}); |
push(@temp1,$content{'recuser'},$content{'recdomain'}); |
} |
} |
# Check whether message was sent during blocking period. |
# Check whether message was sent during blocking period. |
if ($sendtime >= $startblock && ($sendtime <= $endblock && $endblock > 0) ) { |
if (($by_ip) || |
|
(($sendtime >= $startblock) && ($sendtime <= $endblock && $endblock > 0))) { |
$$blocked{$msgid} = 'ON'; |
$$blocked{$msgid} = 'ON'; |
$$numblocked ++; |
$$numblocked ++; |
} else { |
} else { |
Line 1050 sub disfolder {
|
Line 1072 sub disfolder {
|
my %blocked = (); |
my %blocked = (); |
my %setters = (); |
my %setters = (); |
my $numblocked = 0; |
my $numblocked = 0; |
my ($startblock,$endblock) = &Apache::loncommon::blockcheck(\%setters,'com'); |
my $clientip = &Apache::lonnet::get_requestor_ip($r); |
my %lt = &Apache::lonlocal::texthash( |
my ($startblock,$endblock,$triggerblock,$by_ip,$blockdom) = |
|
&Apache::loncommon::blockcheck(\%setters,'com',$clientip); |
|
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 1091 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 1108 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 1093 sub disfolder {
|
Line 1118 sub disfolder {
|
ENDDISHEADER |
ENDDISHEADER |
|
|
my $fsqs='&folder='.$folder; |
my $fsqs='&folder='.$folder; |
my @temp=&sortedmessages(\%blocked,$startblock,$endblock,\$numblocked,$folder,$msgstatus); |
my @temp=&sortedmessages(\%blocked,$startblock,$endblock,$by_ip,\$numblocked,$folder,$msgstatus); |
my $totalnumber=$#temp+1; |
my $totalnumber=$#temp+1; |
if ($totalnumber < 1) { |
if ($totalnumber < 1) { |
$r->print('<p class="LC_info">'); |
$r->print('<p class="LC_info">'); |
Line 1106 ENDDISHEADER
|
Line 1131 ENDDISHEADER
|
} |
} |
$r->print('</p>'); |
$r->print('</p>'); |
if ($numblocked > 0) { |
if ($numblocked > 0) { |
$r->print(&blocked_in_folder($numblocked,$startblock,$endblock, |
$r->print(&blocked_in_folder($numblocked,$startblock,$endblock,$by_ip,$clientip,$blockdom, |
\%setters)); |
\%setters)); |
} |
} |
return; |
return; |
Line 1296 ENDDISHEADER
|
Line 1321 ENDDISHEADER
|
$r->print('<input type="hidden" name="folder" value="'.$folder.'" /><input type="hidden" name="startdis" value="'.$postedstartdis.'" /><input type="hidden" name="interdis" value="'.$env{'form.interdis'}.'" /><input type="hidden" name="msgstatus" value="'.$msgstatus.'" /><input type="hidden" name="markedaction" value="" /></form>'); |
$r->print('<input type="hidden" name="folder" value="'.$folder.'" /><input type="hidden" name="startdis" value="'.$postedstartdis.'" /><input type="hidden" name="interdis" value="'.$env{'form.interdis'}.'" /><input type="hidden" name="msgstatus" value="'.$msgstatus.'" /><input type="hidden" name="markedaction" value="" /></form>'); |
if ($numblocked > 0) { |
if ($numblocked > 0) { |
$r->print(&blocked_in_folder($numblocked,$startblock,$endblock, |
$r->print(&blocked_in_folder($numblocked,$startblock,$endblock, |
\%setters)); |
$by_ip,$clientip,$blockdom,\%setters)); |
} |
} |
} |
} |
|
|
sub blocked_in_folder { |
sub blocked_in_folder { |
my ($numblocked,$startblock,$endblock,$setters) = @_; |
my ($numblocked,$startblock,$endblock,$by_ip,$clientip,$blockdom,$setters) = @_; |
my $beginblock = &Apache::lonlocal::locallocaltime($startblock); |
my $output; |
my $finishblock = &Apache::lonlocal::locallocaltime($endblock); |
if ($by_ip) { |
my $output = '<br /><br />'. |
$output = '<br /><br />'. |
|
&mt('[quant,_1,message is, messages are] not viewable because display of LON-CAPA messages is blocked for your current IP address: [_2].',$numblocked,$clientip).'<br />'. |
|
&mt('Note: communication is being blocked for certain IP address(es).'); |
|
} else { |
|
my $beginblock = &Apache::lonlocal::locallocaltime($startblock); |
|
my $finishblock = &Apache::lonlocal::locallocaltime($endblock); |
|
$output = '<br /><br />'. |
&mt('[quant,_1,message is, messages are] not viewable because display of LON-CAPA messages sent to you by other students between [_2] and [_3] is currently being blocked because of online exams.',$numblocked,$beginblock,$finishblock); |
&mt('[quant,_1,message is, messages are] not viewable because display of LON-CAPA messages sent to you by other students between [_2] and [_3] is currently being blocked because of online exams.',$numblocked,$beginblock,$finishblock); |
|
} |
#$output .= &Apache::loncommon::build_block_table($startblock,$endblock, |
#$output .= &Apache::loncommon::build_block_table($startblock,$endblock, |
# $setters); |
# $setters); |
|
my ($blocked, $blocktext) = &Apache::loncommon::blocking_status("com",$clientip); |
my ($blocked, $blocktext) = &Apache::loncommon::blocking_status("com"); |
|
$output .="<br /><br />".$blocktext; |
$output .="<br /><br />".$blocktext; |
|
|
return $output; |
return $output; |
Line 1320 sub blocked_in_folder {
|
Line 1351 sub blocked_in_folder {
|
sub compout { |
sub compout { |
my ($r,$forwarding,$replying,$broadcast,$replycrit,$folder,$dismode, |
my ($r,$forwarding,$replying,$broadcast,$replycrit,$folder,$dismode, |
$multiforward)=@_; |
$multiforward)=@_; |
|
my $clientip = &Apache::lonnet::get_requestor_ip($r); |
|
my %setters; |
|
my ($startblock,$endblock,$triggerblock,$by_ip,$blockdom) = |
|
&Apache::loncommon::blockcheck(\%setters,'com',$clientip); |
|
if ($by_ip) { |
|
my $showdom = &Apache::lonnet::domain($blockdom); |
|
if ($showdom eq '') { |
|
$showdom = $blockdom; |
|
} |
|
$r->print(&Apache::loncommon::start_page('Messages')); |
|
$r->print(&Apache::lonhtmlcommon::breadcrumbs('Send and display messages')); |
|
$r->print('<p class="LC_warning">'. |
|
&mt('Sending of LON-CAPA messages is blocked for your current IP address: [_1].',$clientip).'</p>'. |
|
'<ul><li>'. |
|
&mt('Note: communication is being blocked for certain IP address(es).'). |
|
'</li><li>'. |
|
&mt('This restriction was set by an administrator in the [_1] LON-CAPA domain.',$showdom). |
|
'</li></ul>'); |
|
return; |
|
} |
my $suffix=&Apache::lonmsg::foldersuffix($folder); |
my $suffix=&Apache::lonmsg::foldersuffix($folder); |
my ($cdom,$cnum,$group,$refarg); |
my ($cdom,$cnum,$group,$refarg); |
if (exists($env{'form.group'})) { |
if (exists($env{'form.group'})) { |
Line 1394 sub compout {
|
Line 1445 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" />' |
|
.'<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 1900 sub disfacetoface {
|
Line 1954 sub disfacetoface {
|
$env{'course.'.$env{'request.course.id'}.'.domain'}, |
$env{'course.'.$env{'request.course.id'}.'.domain'}, |
$env{'course.'.$env{'request.course.id'}.'.num'}, |
$env{'course.'.$env{'request.course.id'}.'.num'}, |
'%255b'.$user.'%253a'.$domain.'%255d'); |
'%255b'.$user.'%253a'.$domain.'%255d'); |
my $result='<div>'; |
my $result=''; |
foreach my $key (sort(keys(%records))) { |
foreach my $key (sort(keys(%records))) { |
my %content=&Apache::lonmsg::unpackagemsg($records{$key}); |
my %content=&Apache::lonmsg::unpackagemsg($records{$key}); |
next if ($content{'senderdomain'} eq ''); |
next if ($content{'senderdomain'} eq ''); |
Line 1953 sub disfacetoface {
|
Line 2007 sub disfacetoface {
|
&Apache::loncommon::plainname($content{'sendername'},$content{'senderdomain'}),$content{'sendername'},$content{'senderdomain'}).'</b> ('. |
&Apache::loncommon::plainname($content{'sendername'},$content{'senderdomain'}),$content{'sendername'},$content{'senderdomain'}).'</b> ('. |
$content{'sendername'}.':'. |
$content{'sendername'}.':'. |
$content{'senderdomain'}.') '.$content{'time'}. |
$content{'senderdomain'}.') '.$content{'time'}. |
'<br /><pre>'. |
'<br /><pre class="LC_wordwrap">'. |
&Apache::lontexconvert::msgtexconverted($content{'message'}). |
&Apache::lontexconvert::msgtexconverted($content{'message'}). |
'</pre>'; |
'</pre>'; |
} |
} |
Line 1965 $content{'sendername'}.':'.
|
Line 2019 $content{'sendername'}.':'.
|
} else { |
} else { |
$r->print('\textbf{'.&mt('No notes, face-to-face discussion records, critical messages or broadcast messages in this '.$lctype.'.').'}\\\\'); |
$r->print('\textbf{'.&mt('No notes, face-to-face discussion records, critical messages or broadcast messages in this '.$lctype.'.').'}\\\\'); |
} |
} |
} elsif ($target ne 'tex') { |
} elsif ($target eq 'tex') { |
$r->print($result.'</div>'); |
$r->print(&Apache::lonxml::xmlparse($r,$target,$result)); |
} else { |
} else { |
$r->print(&Apache::lonxml::xmlparse($r, 'tex', $result)); |
$r->print('<div>'.$result.'</div>'); |
} |
} |
} |
} |
|
|
sub general_message { |
sub general_message { |
Line 2081 sub displaymessage {
|
Line 2135 sub displaymessage {
|
my %setters = (); |
my %setters = (); |
my $numblocked = 0; |
my $numblocked = 0; |
my $crstype = &Apache::loncommon::course_type(); |
my $crstype = &Apache::loncommon::course_type(); |
|
my $clientip = &Apache::lonnet::get_requestor_ip($r); |
|
|
# info to generate "next" and "previous" buttons and check if message is blocked |
# info to generate "next" and "previous" buttons and check if message is blocked |
my ($startblock,$endblock) = &Apache::loncommon::blockcheck(\%setters,'com'); |
my ($startblock,$endblock,$triggerblock,$by_ip,$blockdom) = |
my @messages=&sortedmessages(\%blocked,$startblock,$endblock,\$numblocked,$folder,$msgstatus); |
&Apache::loncommon::blockcheck(\%setters,'com',$clientip); |
|
my @messages=&sortedmessages(\%blocked,$startblock,$endblock,$by_ip,\$numblocked,$folder,$msgstatus); |
if ( $blocked{$msgid} eq 'ON' ) { |
if ( $blocked{$msgid} eq 'ON' ) { |
&printheader($r,'/adm/email',&mt('Display a Message')); |
&printheader($r,'/adm/email',&mt('Display a Message')); |
#$r->print(&mt('You attempted to display a message that is currently blocked because you are enrolled in one or more courses for which there is an ongoing online exam.')); |
#$r->print(&mt('You attempted to display a message that is currently blocked because you are enrolled in one or more courses for which there is an ongoing online exam.')); |
my($blocked, $blocktext) = &Apache::loncommon::blocking_status("com"); |
my($blocked, $blocktext) = &Apache::loncommon::blocking_status("com",$clientip); |
$r->print("<br />".$blocktext); |
$r->print("<br />".$blocktext); |
return; |
return; |
} |
} |
Line 2122 sub displaymessage {
|
Line 2178 sub displaymessage {
|
|
|
|
|
my $number_of_messages = scalar(@messages); #subtract 1 for last index |
my $number_of_messages = scalar(@messages); #subtract 1 for last index |
|
my $head_extra; |
|
|
|
# if student's view of resource will be included |
|
# get <link> tag(s) for css file(s) in use, and pass to &header to include |
|
# in call to loncommon::start_page() |
|
|
|
if (($env{'request.course.id'} eq $content{'courseid'}) && |
|
(&Apache::lonnet::allowed('vgr',$content{'courseid'}))) { |
|
my $symb; |
|
if (defined($content{'symb'})) { |
|
$symb = $content{'symb'}; |
|
} elsif (defined($content{'baseurl'})) { |
|
$symb=&Apache::lonnet::symbread($content{'baseurl'}); |
|
} |
|
if ($symb) { |
|
$head_extra = &Apache::loncommon::css_links($symb); |
|
} |
|
} |
|
|
# start output |
# start output |
&printheader($r,'/adm/email?display='.&escape($msgid),'Display a Message','',$content{'baseurl'}); |
&printheader($r,'/adm/email?display='.&escape($msgid),'Display a Message','', |
|
$content{'baseurl'},$head_extra); |
|
|
# Prepare available functions |
# Prepare available functions |
my @functionlist; |
my @functionlist; |
Line 2168 sub displaymessage {
|
Line 2244 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 2471 sub displaymessage {
|
Line 2548 sub displaymessage {
|
|
|
# Message |
# Message |
$r->print(&Apache::lonhtmlcommon::row_title(&mt('Message')) |
$r->print(&Apache::lonhtmlcommon::row_title(&mt('Message')) |
.'<pre>' |
.'<pre class="LC_wordwrap">' |
.&Apache::lontexconvert::msgtexconverted($content{'message'},1) |
.&Apache::lontexconvert::msgtexconverted($content{'message'},1) |
.'</pre>' |
.'</pre>' |
); |
); |
Line 2656 sub displayresource {
|
Line 2733 sub displayresource {
|
# ================================================================== The Header |
# ================================================================== The Header |
|
|
sub header { |
sub header { |
my ($r,$title,$baseurl)=@_; |
my ($r,$title,$baseurl,$head_extra)=@_; |
my $extra = &Apache::loncommon::studentbrowser_javascript(); |
my $extra = &Apache::loncommon::studentbrowser_javascript(); |
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>'; |
|
if ($head_extra) { |
|
$extra .= "\n$head_extra"; |
|
} |
$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 2670 sub header {
|
Line 2752 sub header {
|
# ---------------------------------------------------------------- Print header |
# ---------------------------------------------------------------- Print header |
|
|
sub printheader { |
sub printheader { |
my ($r,$url,$desc,$title,$baseurl)=@_; |
my ($r,$url,$desc,$title,$baseurl,$head_extra)=@_; |
&Apache::lonhtmlcommon::add_breadcrumb |
&Apache::lonhtmlcommon::add_breadcrumb |
({href=>$url, |
({href=>$url, |
text=>$desc}); |
text=>$desc}); |
&header($r,$title,$baseurl); |
&header($r,$title,$baseurl,$head_extra); |
} |
} |
|
|
# ------------------------------------------------------------ Store the comment |
# ------------------------------------------------------------ Store the comment |
Line 2698 sub storedcommentlisting {
|
Line 2780 sub storedcommentlisting {
|
'^'.&escape(&escape($env{'form.showcommentbaseurl'}))); |
'^'.&escape(&escape($env{'form.showcommentbaseurl'}))); |
$r->print(&Apache::loncommon::start_page('Saved 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 saved comments yet.')); |
$r->print(&mt('No saved comments yet.')); |
} else { |
} else { |
my $found=0; |
my $found=0; |
Line 2731 sub sendoffmail {
|
Line 2813 sub sendoffmail {
|
$cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; |
$cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; |
$cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
$cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
} |
} |
if ($env{'form.send'}) { |
my $clientip = &Apache::lonnet::get_requestor_ip($r); |
|
my %setters; |
|
my ($startblock,$endblock,$triggerblock,$by_ip,$blockdom) = |
|
&Apache::loncommon::blockcheck(\%setters,'com',$clientip); |
|
if ($by_ip) { |
|
&printheader($r,'','Sending messages blocked from your location.'); |
|
return 'blocked'; |
|
} elsif ($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.'); |
Line 2901 sub sendoffmail {
|
Line 2990 sub sendoffmail {
|
&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'})<131072) { |
if (length($env{'form.attachment'}) <= 1048576) { |
$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>'); |
Line 2913 sub sendoffmail {
|
Line 3002 sub sendoffmail {
|
} |
} |
my @recusers; |
my @recusers; |
my @recudoms; |
my @recudoms; |
|
my %permresults; |
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 3019 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 3031 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 3324 sub handler {
|
Line 3422 sub handler {
|
my $count = keys(%forwardfail); |
my $count = keys(%forwardfail); |
my $message = &Apache::lonhtmlcommon::confirm_success(&mt('Could not forward [quant,_1,message].',$count),1); |
my $message = &Apache::lonhtmlcommon::confirm_success(&mt('Could not forward [quant,_1,message].',$count),1); |
foreach my $key (keys(%forwardfail)) { |
foreach my $key (keys(%forwardfail)) { |
$message .= '<br />'.&mt('Could not deliver forwarded message.').'</span> '. |
$message .= '<br />'.&mt('Could not deliver forwarded message.').' '; |
&mt('The recipient addresses may need to be corrected').' ('.$forwardfail{$key}.')'; |
if ($forwardfail{$key} eq 'blocked') { |
|
$message .= &mt('Sending messages is blocked from your IP address'); |
|
} else { |
|
$message .= &mt('The recipient addresses may need to be corrected').' ('.$forwardfail{$key}.')'; |
|
} |
} |
} |
$message = &Apache::loncommon::confirmwrapper($message); |
$message = &Apache::loncommon::confirmwrapper($message); |
$r->print($message); |
$r->print($message); |