@@ -240,12 +243,9 @@ function folder_choice(targetform,caller
'.$lt{'fold'}.' '."\n".
&Apache::loncommon::select_form($folder,'folder',%formhash).'
|
- '.$lt{'show'}.'
-
+ | '.$lt{'show'}.' '."\n".
+ &Apache::loncommon::select_form($env{'form.interdis'},'interdis',
+ %show).'
|
'.$lt{'status'}.' '."\n".
&Apache::loncommon::select_form($msgstatus,'msgstatus',%statushash).'
@@ -301,16 +301,20 @@ sub scrollbuttons {
$start++; $maxdis++;$first++;$finish++;
my %statushash = &get_msgstatus_types();
-
+ my $status;
+ if ($msgstatus eq '') {
+ $status = &mt('All');
+ } else {
+ $status = $statushash{$msgstatus};
+ }
return
- ''.&mt('Page').': '.
- ''.
- ''.
- ' of '.$maxdis.
- ''.
- ' '.
- &mt('_location_in_mail_folder',$msgstatus,$statushash{$msgstatus},
- $first,$finish,$total).'';
+ ''.&mt('Page').': '.
+ ''.
+ ''.
+ ' of '.$maxdis.
+ ''.
+ ' '.
+ &mt('[_1] messages: showing messages [_2] through [_3] of [_4].',$status,$first,$finish,$total).'';
}
# =============================================================== Status Change
@@ -389,8 +393,8 @@ sub deletefolder {
my @messages = &Apache::lonnet::getkeys('nohist_email'.$suffix);
if (@messages > 0) {
return &mt('The folder "[_1]" contains messages so it may not be deleted.',$folder).
- ' '.
- &mt('Delete or move the messages to a different folder first.');
+ ' '.
+ &mt('Delete or move the messages to a different folder first.');
}
my $delresult = &Apache::lonnet::del('email_folders',[$folder]);
return $delresult;
@@ -770,7 +774,6 @@ sub sortedmessages {
my ($blocked,$startblock,$endblock,$numblocked,$folder,$msgstatus) = @_;
my $suffix=&Apache::lonmsg::foldersuffix($folder);
my @messages = &Apache::lonnet::getkeys('nohist_email'.$suffix);
-
#unpack the varibles and repack into temp for sorting
my @temp;
my %descriptions;
@@ -785,7 +788,7 @@ sub sortedmessages {
foreach my $msgid (@messages) {
my $esc_msgid=&escape($msgid);
- my ($sendtime,$shortsubj,$fromname,$fromdomain,$status,$fromcid)=
+ my ($sendtime,$shortsubj,$fromname,$fromdomain,$status,$fromcid,$processid,$symb,$error) =
&Apache::lonmsg::unpackmsgid($esc_msgid,$folder,undef,
\%status_cache);
next if ($msgstatus ne '' && $msgstatus ne $status);
@@ -888,6 +891,17 @@ sub get_course_desc {
sub disall {
my ($r,$folder,$msgstatus)=@_;
+ my %saveable = ('folder' => 'scalar',
+ 'msgstatus' => 'scalar',
+ 'sortedby' => 'scalar',
+ 'interdis' => 'scalar',
+ );
+ &Apache::loncommon::store_settings('user','mail',\%saveable);
+ &Apache::loncommon::restore_settings('user','mail',\%saveable);
+ $folder ||= $env{'form.folder'};
+ $msgstatus ||= $env{'form.msgstatus'};
+ $env{'form.interdis'} ||= 20;
+
$r->print(&folderlist($folder,$msgstatus));
if ($folder eq 'critical') {
&discrit($r);
@@ -961,19 +975,19 @@ ENDDISHEADER
my @temp=&sortedmessages(\%blocked,$startblock,$endblock,\$numblocked,$folder,$msgstatus);
my $totalnumber=$#temp+1;
if ($totalnumber < 1) {
- $r->print(''.&mt('_empty_mail_folder',
- $msgstatus,
- $statushash{$msgstatus}).'');
+ if ($msgstatus eq '') {
+ $r->print(''.&mt('Empty Folder').'');
+ } elsif ($msgstatus eq 'replied') {
+ $r->print(''.&mt('You have not replied to any messages in this folder.').'');
+ } else {
+ $r->print(''.&mt('There are no '.lc($statushash{$msgstatus}).' messages in this folder.').'');
+ }
return;
}
- unless ($interdis) {
- $interdis=20;
- }
+ my $interdis = $env{'form.interdis'};
my $number=int($totalnumber/$interdis);
- if ($interdis) {
- if ($totalnumber%$interdis == 0) {
- $number--;
- }
+ if ($totalnumber%$interdis == 0) {
+ $number--;
}
if (($startdis<0) || ($startdis>$number)) { $startdis=$number; }
@@ -1058,7 +1072,7 @@ ENDDISHEADER
' value="'.$origID.'" /> | ');
foreach my $item ($localsenttime,$dis_name,$dis_domain,$shortsubj) {
$r->print(''.(($status eq 'new')?'':'').
- ''.
+ ''.
$item.(($status eq 'new')?'':'').' | ');
}
my $showstatus;
@@ -1935,7 +1949,9 @@ sub displaymessage {
&build_block_table($r,$startblock,$endblock,\%setters);
return;
}
- &statuschange($msgid,'read',$folder);
+ if ($msgstatus eq '') {
+ &statuschange($msgid,'read',$folder);
+ }
my %message=&Apache::lonnet::get('nohist_email'.$suffix,[$msgid]);
my %content=&Apache::lonmsg::unpackagemsg($message{$msgid});
@@ -1974,9 +1990,14 @@ sub displaymessage {
'">'.&mt('Next').'');
}
$r->print('
');
+ my $symb;
+ if (defined($content{'symb'})) {
+ $symb = $content{'symb'};
+ } elsif (defined($content{'baseurl'})) {
+ $symb=&Apache::lonnet::symbread($content{'baseurl'});
+ }
if ($env{'user.adv'}) {
$r->print('