version 1.116, 2004/11/12 21:53:30
|
version 1.125, 2004/12/15 02:35:17
|
Line 527 sub folderlist {
|
Line 527 sub folderlist {
|
'critical' => &mt('Critical'), |
'critical' => &mt('Critical'), |
'sent' => &mt('Sent Messages'), |
'sent' => &mt('Sent Messages'), |
map { $_ => $_ } @allfolders)). |
map { $_ => $_ } @allfolders)). |
' '.&mt('Show').' '. |
' '.&mt('Show'). |
&Apache::loncommon::select_form($interdis,'interdis', |
'<select name="interdis">'. |
(' 10' => '10', ' 20' => '20', ' 50' => '50', '100' => '100', '200' => '200')). |
join("\n",map { '<option value="'.$_.'"'. |
|
($_==$interdis?' selected="selected"':'').'>'.$_.'</option>' } |
|
(10,20,50,100,200)).'</select>'. |
'<input type="submit" value="'.&mt('View Folder').'" /><br />'. |
'<input type="submit" value="'.&mt('View Folder').'" /><br />'. |
($folder!~/^(new|critical)/? |
'<input type="hidden" name="sortedby" value="'.$ENV{'form.sortedby'}.'" />'. |
|
($folder=~/^(new|critical)/?'</form>':''); |
|
} |
|
|
|
sub scrollbuttons { |
|
my ($start,$maxdis,$first,$finish,$total)=@_; |
|
unless ($total>0) { return ''; } |
|
$start++; $maxdis++;$first++;$finish++; |
|
return |
'<input type="submit" name="firstview" value="'.&mt('First').'" />'. |
'<input type="submit" name="firstview" value="'.&mt('First').'" />'. |
'<input type="submit" name="prevview" value="'.&mt('Previous').'" />'. |
'<input type="submit" name="prevview" value="'.&mt('Previous').'" />'. |
'<input type="text" size="5" name="startdis" value="'.$startdis.'" />'. |
'<input type="text" size="5" name="startdis" value="'.$start.'" onChange="this.form.submit()" /> of '.$maxdis. |
'<input type="submit" name="nextview" value="'.&mt('Next').'" />'. |
'<input type="submit" name="nextview" value="'.&mt('Next').'" />'. |
'<input type="submit" name="lastview" value="'.&mt('Last').'" />':''). |
'<input type="submit" name="lastview" value="'.&mt('Last').'" /><br />'. |
'</form>'; |
&mt('Messages [_1] through [_2] of [_3]',$first,$finish,$total).'</form>'; |
} |
} |
|
|
# =============================================================== Folder suffix |
# =============================================================== Folder suffix |
Line 691 sub discrit {
|
Line 701 sub discrit {
|
foreach (sort keys %what) { |
foreach (sort keys %what) { |
my %content=&unpackagemsg($what{$_}); |
my %content=&unpackagemsg($what{$_}); |
next if ($content{'senderdomain'} eq ''); |
next if ($content{'senderdomain'} eq ''); |
$content{'message'}=~s/\n/\<br\>/g; |
|
$result.='<hr />'.&mt('From').': <b>'. |
$result.='<hr />'.&mt('From').': <b>'. |
&Apache::loncommon::aboutmewrapper( |
&Apache::loncommon::aboutmewrapper( |
&Apache::loncommon::plainname($content{'sendername'},$content{'senderdomain'}),$content{'sendername'},$content{'senderdomain'}).'</b> ('. |
&Apache::loncommon::plainname($content{'sendername'},$content{'senderdomain'}),$content{'sendername'},$content{'senderdomain'}).'</b> ('. |
Line 907 ENDDISHEADER
|
Line 916 ENDDISHEADER
|
my $fsqs='&folder='.$folder; |
my $fsqs='&folder='.$folder; |
my @temp=sortedmessages(\%blocked,$startblock,$endblock,\$numblocked,$folder); |
my @temp=sortedmessages(\%blocked,$startblock,$endblock,\$numblocked,$folder); |
my $totalnumber=$#temp+1; |
my $totalnumber=$#temp+1; |
my $number=int($totalnumber/$interdis)+1; |
unless ($totalnumber>0) { |
|
$r->print('<h2>'.&mt('Empty Folder').'</h2>'); |
|
return; |
|
} |
|
unless ($interdis) { |
|
$interdis=20; |
|
} |
|
my $number=int($totalnumber/$interdis); |
|
if (($startdis<0) || ($startdis>$number)) { $startdis=$number; } |
my $firstdis=$interdis*$startdis; |
my $firstdis=$interdis*$startdis; |
if ($firstdis>$#temp) { $firstdis=$#temp-$interdis+1; } |
if ($firstdis>$#temp) { $firstdis=$#temp-$interdis+1; } |
my $lastdis=$firstdis+$interdis-1; |
my $lastdis=$firstdis+$interdis-1; |
if ($lastdis>$#temp) { $lastdis=$#temp; } |
if ($lastdis>$#temp) { $lastdis=$#temp; } |
|
$r->print(&scrollbuttons($startdis,$number,$firstdis,$lastdis,$totalnumber)); |
$r->print('<form method="post" name="disall" action="/adm/email">'. |
$r->print('<form method="post" name="disall" action="/adm/email">'. |
'<table border=2><tr><th colspan="3"> </th><th>'); |
'<table border=2><tr><th colspan="3"> </th><th>'); |
if ($ENV{'form.sortedby'} eq "revdate") { |
if ($ENV{'form.sortedby'} eq "revdate") { |
Line 977 ENDDISHEADER
|
Line 995 ENDDISHEADER
|
$r->print( |
$r->print( |
'<p><input type="submit" name="markeddel" value="'.&mt('Delete Checked').'" /></p>'); |
'<p><input type="submit" name="markeddel" value="'.&mt('Delete Checked').'" /></p>'); |
} |
} |
$r->print('<p><input type="submit" name="markedmove" value="'.&mt('Move Checked to Folder').'" />'); |
$r->print('<p><input type="submit" name="markedmove" value="'.&mt('Move Checked to Folder').'" />'); |
my @allfolders=&Apache::lonnet::getkeys('email_folders'); |
my @allfolders=&Apache::lonnet::getkeys('email_folders'); |
if ($allfolders[0]=~/^error:/) { @allfolders=(); } |
if ($allfolders[0]=~/^error:/) { @allfolders=(); } |
$r->print( |
$r->print( |
Line 998 $r->print('<p><input type="submit" name=
|
Line 1016 $r->print('<p><input type="submit" name=
|
|
|
sub compout { |
sub compout { |
my ($r,$forwarding,$replying,$broadcast,$replycrit,$folder)=@_; |
my ($r,$forwarding,$replying,$broadcast,$replycrit,$folder)=@_; |
|
my $suffix=&foldersuffix($folder); |
|
|
if ($broadcast eq 'individual') { |
if ($broadcast eq 'individual') { |
&printheader($r,'/adm/email?compose=individual', |
&printheader($r,'/adm/email?compose=individual', |
Line 1049 sub compout {
|
Line 1068 sub compout {
|
my %content; |
my %content; |
my $defdom=$ENV{'user.domain'}; |
my $defdom=$ENV{'user.domain'}; |
if ($forwarding) { |
if ($forwarding) { |
%message=&Apache::lonnet::get('nohist_email',[$forwarding]); |
%message=&Apache::lonnet::get('nohist_email'.$suffix,[$forwarding]); |
%content=&unpackagemsg($message{$forwarding},$folder); |
%content=&unpackagemsg($message{$forwarding},$folder); |
$dispcrit.='<input type="hidden" name="forwid" value="'. |
$dispcrit.='<input type="hidden" name="forwid" value="'. |
$forwarding.'" />'; |
$forwarding.'" />'; |
Line 1063 sub compout {
|
Line 1082 sub compout {
|
} |
} |
} |
} |
if ($replying) { |
if ($replying) { |
%message=&Apache::lonnet::get('nohist_email',[$replying]); |
%message=&Apache::lonnet::get('nohist_email'.$suffix,[$replying]); |
%content=&unpackagemsg($message{$replying},$folder); |
%content=&unpackagemsg($message{$replying},$folder); |
$dispcrit.='<input type="hidden" name="replyid" value="'. |
$dispcrit.='<input type="hidden" name="replyid" value="'. |
$replying.'" />'; |
$replying.'" />'; |
Line 1077 sub compout {
|
Line 1096 sub compout {
|
if ($content{'baseurl'}) { |
if ($content{'baseurl'}) { |
$disbase='<input type="hidden" name="baseurl" value="'.&Apache::lonnet::escape($content{'baseurl'}).'" />'; |
$disbase='<input type="hidden" name="baseurl" value="'.&Apache::lonnet::escape($content{'baseurl'}).'" />'; |
if ($ENV{'user.adv'}) { |
if ($ENV{'user.adv'}) { |
$disbase='<input type="checkbox" name="storebasecomment" />'.&mt('Store message for re-use').'<br />'; |
$disbase.='<input type="checkbox" name="storebasecomment" />'.&mt('Store message for re-use'). |
|
' <a href="/adm/email?showcommentbaseurl='. |
|
&Apache::lonnet::escape($content{'baseurl'}).'" target="comments">'. |
|
&mt('Show re-usable messages').'</a><br />'; |
} |
} |
} |
} |
} |
} |
Line 1719 sub displaymessage {
|
Line 1741 sub displaymessage {
|
'"><b>'.&mt('Mark Unread').'</b></a></td>'. |
'"><b>'.&mt('Mark Unread').'</b></a></td>'. |
'<td><a href="/adm/email?markdel='.&Apache::lonnet::escape($msgid).$sqs. |
'<td><a href="/adm/email?markdel='.&Apache::lonnet::escape($msgid).$sqs. |
'"><b>Delete</b></a></td>'. |
'"><b>Delete</b></a></td>'. |
'<td><a href="/adm/email?sortedby='.$ENV{'form.sortedby'}. |
'<td><a href="/adm/email?'.$sqs. |
'&folder='.&Apache::lonnet::escape($folder). |
'"><b>'.&mt('Back to Folder Display').'</b></a></td>'); |
'"><b>'.&mt('Display all Messages').'</b></a></td>'); |
|
if ($counter > 0){ |
if ($counter > 0){ |
$r->print('<td><a href="/adm/email?display='.$messages[$counter-1]->[5].$sqs. |
$r->print('<td><a href="/adm/email?display='.$messages[$counter-1]->[5].$sqs. |
'"><b>'.&mt('Previous').'</b></a></td>'); |
'"><b>'.&mt('Previous').'</b></a></td>'); |
Line 1813 sub printheader {
|
Line 1834 sub printheader {
|
&header($r,$title,$baseurl); |
&header($r,$title,$baseurl); |
} |
} |
|
|
|
# ------------------------------------------------------------ Store the comment |
|
|
|
sub storecomment { |
|
my ($r)=@_; |
|
my $msgtxt=&Apache::lonfeedback::clear_out_html($ENV{'form.message'}); |
|
my $cleanmsgtxt=''; |
|
foreach (split(/[\n\r]/,$msgtxt)) { |
|
unless ($_=~/^\s*(\>|\>\;)/) { |
|
$cleanmsgtxt.=$_."\n"; |
|
} |
|
} |
|
my $key=&Apache::lonnet::escape($ENV{'form.baseurl'}).'___'.time; |
|
&Apache::lonnet::put('nohist_stored_comments',{ $key => $cleanmsgtxt }); |
|
} |
|
|
|
sub storedcommentlisting { |
|
my ($r)=@_; |
|
my %msgs=&Apache::lonnet::dump('nohist_stored_comments',undef,undef, |
|
'^'.&Apache::lonnet::escape(&Apache::lonnet::escape($ENV{'form.showcommentbaseurl'}))); |
|
$r->print('<html><body>'); |
|
if ((keys %msgs)[0]=~/^error\:/) { |
|
$r->print(&mt('No stored comments yet.')); |
|
} else { |
|
my $found=0; |
|
foreach (sort keys %msgs) { |
|
$r->print("\n".$msgs{$_}."<hr />"); |
|
$found=1; |
|
} |
|
unless ($found) { |
|
$r->print(&mt('No stored comments yet for this resource.')); |
|
} |
|
} |
|
} |
|
|
# ---------------------------------------------------------------- Send an email |
# ---------------------------------------------------------------- Send an email |
|
|
sub sendoffmail { |
sub sendoffmail { |
my ($r)=@_; |
my ($r,$folder)=@_; |
|
my $suffix=&foldersuffix($folder); |
my $sendstatus=''; |
my $sendstatus=''; |
if ($ENV{'form.send'}) { |
if ($ENV{'form.send'}) { |
&printheader($r,'','Messages being sent.'); |
&printheader($r,'','Messages being sent.'); |
Line 1825 sub sendoffmail {
|
Line 1881 sub sendoffmail {
|
undef %content; |
undef %content; |
if ($ENV{'form.forwid'}) { |
if ($ENV{'form.forwid'}) { |
my $msgid=$ENV{'form.forwid'}; |
my $msgid=$ENV{'form.forwid'}; |
my %message=&Apache::lonnet::get('nohist_email',[$msgid]); |
my %message=&Apache::lonnet::get('nohist_email'.$suffix,[$msgid]); |
%content=&unpackagemsg($message{$msgid},1); |
%content=&unpackagemsg($message{$msgid},1); |
&statuschange($msgid,'forwarded'); |
&statuschange($msgid,'forwarded',$folder); |
$ENV{'form.message'}.="\n\n-- Forwarded message --\n\n". |
$ENV{'form.message'}.="\n\n-- Forwarded message --\n\n". |
$content{'message'}; |
$content{'message'}; |
} |
} |
if ($ENV{'form.replyid'}) { |
if ($ENV{'form.replyid'}) { |
my $msgid=$ENV{'form.replyid'}; |
my $msgid=$ENV{'form.replyid'}; |
my %message=&Apache::lonnet::get('nohist_email',[$msgid]); |
my %message=&Apache::lonnet::get('nohist_email'.$suffix,[$msgid]); |
%content=&unpackagemsg($message{$msgid},1); |
%content=&unpackagemsg($message{$msgid},1); |
&statuschange($msgid,'replied'); |
&statuschange($msgid,'replied',$folder); |
} |
} |
my %toaddr=(); |
my %toaddr=(); |
undef %toaddr; |
undef %toaddr; |
Line 1865 sub sendoffmail {
|
Line 1921 sub sendoffmail {
|
|
|
foreach (keys %toaddr) { |
foreach (keys %toaddr) { |
my ($recuname,$recdomain)=split(/\:/,$_); |
my ($recuname,$recdomain)=split(/\:/,$_); |
my $msgtxt=&Apache::lonfeedback::clear_out_html($ENV{'form.message'}); |
my $msgtxt; |
|
if ((($ENV{'form.critmsg'}) || ($ENV{'form.sendbck'})) && |
|
(&Apache::lonnet::allowed('srm',$ENV{'request.course.id'}))) { |
|
$msgtxt=&Apache::lonfeedback::clear_out_html($ENV{'form.message'},1); |
|
} else { |
|
$msgtxt=&Apache::lonfeedback::clear_out_html($ENV{'form.message'}); |
|
} |
if ($toaddr{$_}) { $msgtxt.='<hr />'.$toaddr{$_}; } |
if ($toaddr{$_}) { $msgtxt.='<hr />'.$toaddr{$_}; } |
my $thismsg; |
my $thismsg; |
if ((($ENV{'form.critmsg'}) || ($ENV{'form.sendbck'})) && |
if ((($ENV{'form.critmsg'}) || ($ENV{'form.sendbck'})) && |
Line 1926 sub handler {
|
Line 1988 sub handler {
|
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
['display','replyto','forward','markread','markdel','markunread', |
['display','replyto','forward','markread','markdel','markunread', |
'sendreply','compose','sendmail','critical','recname','recdom', |
'sendreply','compose','sendmail','critical','recname','recdom', |
'recordftf','sortedby','block','folder','startdis','interdis']); |
'recordftf','sortedby','block','folder','startdis','interdis', |
$sqs='&sortedby='.$ENV{'form.sortedby'}. |
'showcommentbaseurl']); |
'&startdis='.$ENV{'form.startdis'}. |
$sqs='&sortedby='.$ENV{'form.sortedby'}; |
'&interdis='.$ENV{'form.interdis'}; |
|
|
|
# ------------------------------------------------------ They checked for email |
# ------------------------------------------------------ They checked for email |
unless ($ENV{'form.block'}) { |
unless ($ENV{'form.block'}) { |
Line 1950 sub handler {
|
Line 2011 sub handler {
|
unless ($folder) { |
unless ($folder) { |
$folder=''; |
$folder=''; |
} else { |
} else { |
$sqs='&folder='.&Apache::lonnet::escape($folder); |
$sqs.='&folder='.&Apache::lonnet::escape($folder); |
} |
} |
|
|
# --------------------------------------------------------------------- Display |
# --------------------------------------------------------------------- Display |
|
|
$startdis=$ENV{'form.startdis'}; |
$startdis=$ENV{'form.startdis'}; |
|
$startdis--; |
unless ($startdis) { $startdis=0; } |
unless ($startdis) { $startdis=0; } |
|
|
$interdis=$ENV{'form.interdis'}; |
$interdis=$ENV{'form.interdis'}; |
unless ($interdis) { $interdis=20; } |
unless ($interdis) { $interdis=20; } |
|
$sqs.='&interdis='.$interdis; |
|
|
|
if ($ENV{'form.firstview'}) { |
|
$startdis=0; |
|
} |
|
if ($ENV{'form.lastview'}) { |
|
$startdis=-1; |
|
} |
|
if ($ENV{'form.prevview'}) { |
|
$startdis--; |
|
} |
|
if ($ENV{'form.nextview'}) { |
|
$startdis++; |
|
} |
|
my $postedstartdis=$startdis+1; |
|
$sqs.='&startdis='.$postedstartdis; |
|
|
# --------------------------------------------------------------- Render Output |
# --------------------------------------------------------------- Render Output |
|
|
Line 1985 sub handler {
|
Line 2064 sub handler {
|
&printheader($r,'','Displaying Critical Messages'); |
&printheader($r,'','Displaying Critical Messages'); |
&discrit($r); |
&discrit($r); |
} elsif ($ENV{'form.forward'}) { |
} elsif ($ENV{'form.forward'}) { |
&compout($r,$ENV{'form.forward'}); |
&compout($r,$ENV{'form.forward'},undef,undef,undef,$folder); |
} elsif ($ENV{'form.markdel'}) { |
} elsif ($ENV{'form.markdel'}) { |
&printheader($r,'','Deleted Message'); |
&printheader($r,'','Deleted Message'); |
&statuschange($ENV{'form.markdel'},'deleted',$folder); |
&statuschange($ENV{'form.markdel'},'deleted',$folder); |
|
&Apache::loncommunicate::menu($r); |
&disall($r,$folder); |
&disall($r,$folder); |
} elsif ($ENV{'form.markedmove'}) { |
} elsif ($ENV{'form.markedmove'}) { |
my $total=0; |
my $total=0; |
Line 2001 sub handler {
|
Line 2081 sub handler {
|
} |
} |
&printheader($r,'','Moved Messages'); |
&printheader($r,'','Moved Messages'); |
$r->print('Moved '.$total.' message(s)<p>'); |
$r->print('Moved '.$total.' message(s)<p>'); |
|
&Apache::loncommunicate::menu($r); |
&disall($r,$folder); |
&disall($r,$folder); |
} elsif ($ENV{'form.markeddel'}) { |
} elsif ($ENV{'form.markeddel'}) { |
my $total=0; |
my $total=0; |
Line 2012 sub handler {
|
Line 2093 sub handler {
|
} |
} |
&printheader($r,'','Deleted Messages'); |
&printheader($r,'','Deleted Messages'); |
$r->print('Deleted '.$total.' message(s)<p>'); |
$r->print('Deleted '.$total.' message(s)<p>'); |
|
&Apache::loncommunicate::menu($r); |
&disall($r,$folder); |
&disall($r,$folder); |
} elsif ($ENV{'form.markunread'}) { |
} elsif ($ENV{'form.markunread'}) { |
&printheader($r,'','Marked Message as Unread'); |
&printheader($r,'','Marked Message as Unread'); |
&statuschange($ENV{'form.markunread'},'new'); |
&statuschange($ENV{'form.markunread'},'new'); |
|
&Apache::loncommunicate::menu($r); |
&disall($r,$folder); |
&disall($r,$folder); |
} elsif ($ENV{'form.compose'}) { |
} elsif ($ENV{'form.compose'}) { |
&compout($r,'','',$ENV{'form.compose'}); |
&compout($r,'','',$ENV{'form.compose'}); |
Line 2024 sub handler {
|
Line 2107 sub handler {
|
} elsif ($ENV{'form.block'}) { |
} elsif ($ENV{'form.block'}) { |
&examblock($r,$ENV{'form.block'}); |
&examblock($r,$ENV{'form.block'}); |
} elsif ($ENV{'form.sendmail'}) { |
} elsif ($ENV{'form.sendmail'}) { |
&sendoffmail($r); |
&sendoffmail($r,$folder); |
|
if ($ENV{'form.storebasecomment'}) { |
|
&storecomment($r); |
|
} |
|
&disall($r,$folder); |
} elsif ($ENV{'form.newfolder'}) { |
} elsif ($ENV{'form.newfolder'}) { |
&printheader($r,'','New Folder'); |
&printheader($r,'','New Folder'); |
&makefolder($ENV{'form.newfolder'}); |
&makefolder($ENV{'form.newfolder'}); |
|
&Apache::loncommunicate::menu($r); |
&disall($r,$ENV{'form.newfolder'}); |
&disall($r,$ENV{'form.newfolder'}); |
|
} elsif ($ENV{'form.showcommentbaseurl'}) { |
|
&storedcommentlisting($r); |
} else { |
} else { |
&printheader($r,'','Display All Messages'); |
&printheader($r,'','Display All Messages'); |
|
&Apache::loncommunicate::menu($r); |
&disall($r,$folder); |
&disall($r,$folder); |
} |
} |
$r->print('</body></html>'); |
$r->print('</body></html>'); |