version 1.166, 2013/08/30 02:21:30
|
version 1.181, 2015/06/09 21:22:56
|
Line 120 my $startdis='';
|
Line 120 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', |
thfm => 'The folder may not be renamed', |
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 => 'as this name is already in use for a system-provided or user-defined folder.', |
|
the => 'The', |
|
tnfm => 'The new folder may not be named', |
|
|
|
); |
); |
|
&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 182 function folder_choice(targetform,caller
|
Line 184 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("$lt{'the'} '"+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("$lt{'thfm'} '"+foldername+"' $lt{'asth'}"); |
alert("'"+foldername+"' $js_lt{'asth'}"); |
return; |
return; |
} |
} |
} |
} |
Line 207 function folder_choice(targetform,caller
|
Line 209 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("$lt{'tnfm'} '"+newname+"' $lt{'asth'}"); |
alert("'"+newname+"' -- $js_lt{'asth'}"); |
return; |
return; |
} |
} |
} |
} |
Line 226 function folder_choice(targetform,caller
|
Line 228 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><b>'.$lt{'actn'}.'</b><br />'."\n".' |
<td style="padding-right: 40px;"> |
|
<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> |
</tr> |
<td style="border-left: 1px solid;padding-left: 40px;"> |
<tr> |
<b>'.&mt('New Folder').'</b><br />'."\n".' |
<td colspan="4"><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 266 sub get_permanent_folders {
|
Line 268 sub get_permanent_folders {
|
my %permfolders = |
my %permfolders = |
&Apache::lonlocal::texthash('' => 'INBOX', |
&Apache::lonlocal::texthash('' => 'INBOX', |
'trash' => 'TRASH', |
'trash' => 'TRASH', |
'critical' => 'Critical', |
'critical' => 'CRITICAL', |
'sent' => 'Sent Messages', |
'sent' => 'SENT MESSAGES', |
); |
); |
return %permfolders; |
return %permfolders; |
} |
} |
Line 383 sub deletefolder {
|
Line 385 sub deletefolder {
|
my ($folder)=@_; |
my ($folder)=@_; |
my %permfolders = &get_permanent_folders(); |
my %permfolders = &get_permanent_folders(); |
if (defined($permfolders{$folder})) { |
if (defined($permfolders{$folder})) { |
return &mt('The folder "[_1]" may not be deleted.',$folder); |
return &mt('The folder "[_1]" may not be deleted.',$permfolders{$folder}); |
} |
} |
my %userfolders = &Apache::lonmsg::get_user_folders(); |
my %userfolders = &Apache::lonmsg::get_user_folders(); |
if (!defined($userfolders{$folder})) { |
if (!defined($userfolders{$folder})) { |
Line 816 sub discrit {
|
Line 818 sub discrit {
|
.'<input type="hidden" name="confirm" value="true" />'; |
.'<input type="hidden" name="confirm" value="true" />'; |
my %what=&Apache::lonnet::dump('critical'); |
my %what=&Apache::lonnet::dump('critical'); |
my $result = ''; |
my $result = ''; |
foreach my $key (sort(keys(%what))) { |
# Sort by date in descending order |
|
foreach my $key (sort{$b <=> $a}(keys(%what))) { |
my %content=&Apache::lonmsg::unpackagemsg($what{$key}); |
my %content=&Apache::lonmsg::unpackagemsg($what{$key}); |
next if ($content{'senderdomain'} eq ''); |
next if ($content{'senderdomain'} eq ''); |
my $description; |
my $description; |
Line 1026 sub disall {
|
Line 1029 sub disall {
|
&Apache::loncommon::store_settings('user','mail',\%saveable); |
&Apache::loncommon::store_settings('user','mail',\%saveable); |
&Apache::loncommon::restore_settings('user','mail',\%saveable); |
&Apache::loncommon::restore_settings('user','mail',\%saveable); |
$folder ||= $env{'form.folder'}; |
$folder ||= $env{'form.folder'}; |
|
# Always show critical messages if present |
|
my @what=&Apache::lonnet::dump('critical',$env{'user.domain'},$env{'user.name'}); |
|
if ($what[0]) { |
|
if (($what[0] ne 'con_lost') && ($what[0]!~/^error\:/)) { |
|
$folder = 'critical'; |
|
} |
|
} |
$msgstatus ||= $env{'form.msgstatus'}; |
$msgstatus ||= $env{'form.msgstatus'}; |
$env{'form.interdis'} ||= 20; |
$env{'form.interdis'} ||= 20; |
|
|
Line 1046 sub disfolder {
|
Line 1056 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 1061 sub disfolder {
|
Line 1072 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 1078 sub disfolder {
|
Line 1089 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 1207 ENDDISHEADER
|
Line 1218 ENDDISHEADER
|
foreach my $item ($localsenttime,$dis_name,$dis_domain,$shortsubj) { |
foreach my $item ($localsenttime,$dis_name,$dis_domain,$shortsubj) { |
$r->print('<td>'.(($status eq 'new')?'<b>':''). |
$r->print('<td>'.(($status eq 'new')?'<b>':''). |
'<a href="/adm/email?display='.$origID.$sqs.'">'. |
'<a href="/adm/email?display='.$origID.$sqs.'">'. |
$item.(($status eq 'new')?'</b>':'').'</a></td>'); |
$item.'</a>'.(($status eq 'new')?'</b>':'').'</td>'); |
} |
} |
# Description and Status |
# Description and Status |
my $showstatus; |
my $showstatus; |
Line 1257 ENDDISHEADER
|
Line 1268 ENDDISHEADER
|
$r->print(' <option value="markeddel">'.&mt('Delete').'</option>'."\n"); |
$r->print(' <option value="markeddel">'.&mt('Delete').'</option>'."\n"); |
} |
} |
if ($msgstatus ne 'read') { |
if ($msgstatus ne 'read') { |
$r->print(' <option value="markedread">'.&mt('Mark Read').'</option>."\n"'); |
$r->print(' <option value="markedread">'.&mt('Mark Read').'</option>'."\n"); |
} |
} |
if ($msgstatus ne 'unread') { |
if ($msgstatus ne 'unread') { |
$r->print(' <option value="markedunread">'.&mt('Mark Unread').'</option>'."\n"); |
$r->print(' <option value="markedunread">'.&mt('Mark Unread').'</option>'."\n"); |
Line 1895 sub disfacetoface {
|
Line 1906 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 1927 sub disfacetoface {
|
Line 1938 sub disfacetoface {
|
} else { |
} else { |
%content=&Apache::lonmsg::unpackagemsg($content{'message'}); |
%content=&Apache::lonmsg::unpackagemsg($content{'message'}); |
$content{'message'} = |
$content{'message'} = |
'<b>'.&mt('Subject').': '.$content{'subject'}.'</b><br |
'<b>'.&mt('Subject').': '.$content{'subject'}.'</b><br />'. |
'. |
|
$content{'message'}; |
$content{'message'}; |
} |
} |
} else { |
} else { |
Line 1957 $content{'sendername'}.':'.
|
Line 1967 $content{'sendername'}.':'.
|
if ($result eq '') { |
if ($result eq '') { |
my $lctype = &mt(lc(&Apache::loncommon::course_type())); |
my $lctype = &mt(lc(&Apache::loncommon::course_type())); |
if ($target ne 'tex') { |
if ($target ne 'tex') { |
$r->print("<p><b>".&mt('No notes, face-to-face discussion records, critical messages, or broadcast messages in this [_1].',$lctype)."</b></p>"); |
$r->print("<p><b>".&mt('No notes, face-to-face discussion records, critical messages or broadcast messages in this '.$lctype.'.')."</b></p>"); |
} else { |
} else { |
$r->print('\textbf{'.&mt('No notes, face-to-face discussion records, critical messages or broadcast messages in this [_1].',$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 2166 sub displaymessage {
|
Line 2176 sub displaymessage {
|
|
|
if (&Apache::lonnet::allowed('vgr',$env{'request.course.id'})) { |
if (&Apache::lonnet::allowed('vgr',$env{'request.course.id'})) { |
push(@actionlist,&Apache::loncommon::track_student_link( |
push(@actionlist,&Apache::loncommon::track_student_link( |
&mt('View recent activity') |
'View recent activity' |
,$content{'sendername'} |
,$content{'sendername'} |
,$content{'senderdomain'} |
,$content{'senderdomain'} |
,'check')); |
,'check')); |
Line 2694 sub storedcommentlisting {
|
Line 2704 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 2909 sub sendoffmail {
|
Line 2919 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 2925 sub sendoffmail {
|
Line 2936 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 2936 sub sendoffmail {
|
Line 2948 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); |
} |
} |