--- loncom/interface/lonmsg.pm 2005/04/11 21:51:43 1.141
+++ loncom/interface/lonmsg.pm 2005/11/01 15:59:18 1.153
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Routines for messaging
#
-# $Id: lonmsg.pm,v 1.141 2005/04/11 21:51:43 raeburn Exp $
+# $Id: lonmsg.pm,v 1.153 2005/11/01 15:59:18 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -114,6 +114,7 @@ use HTML::Entities();
use Mail::Send;
use Apache::lonlocal;
use Apache::loncommunicate;
+use Apache::lonfeedback;
# Querystring component with sorting type
my $sqs;
@@ -337,7 +338,20 @@ sub del_url_author_res_msg {
}
return &Apache::lonnet::del('nohist_res_msgs',\@delmsgs,$domain,$author);
}
+# =================================== Clear out all author messages in URL path
+sub clear_author_res_msg {
+ my $url=shift;
+ $url=&Apache::lonnet::declutter($url);
+ my ($domain,$author)=($url=~/^(\w+)\/(\w+)\//);
+ my @delmsgs=();
+ foreach (&Apache::lonnet::getkeys('nohist_res_msgs',$domain,$author)) {
+ if ($_=~/^\Q$url\E/) {
+ push (@delmsgs,$_);
+ }
+ }
+ return &Apache::lonnet::del('nohist_res_msgs',\@delmsgs,$domain,$author);
+}
# ================= Return hash with URLs for which there is a resource message
sub all_url_author_res_msg {
@@ -564,13 +578,14 @@ sub scrollbuttons {
my ($start,$maxdis,$first,$finish,$total)=@_;
unless ($total>0) { return ''; }
$start++; $maxdis++;$first++;$finish++;
- return
+ return
+ &mt('Page').': '.
''.
''.
' of '.$maxdis.
''.
'
'.
- &mt('Messages [_1] through [_2] of [_3]',$first,$finish,$total).'';
+ &mt('Showing messages [_1] through [_2] of [_3]',$first,$finish,$total).'';
}
# =============================================================== Folder suffix
@@ -596,6 +611,9 @@ sub statuschange {
if (($newstatus eq 'deleted') || ($newstatus eq 'new')) {
&Apache::lonnet::put('email_status'.$suffix,{$msgid => $newstatus});
}
+ if ($newstatus eq 'deleted') {
+ &movemsg(&Apache::lonnet::unescape($msgid),$folder,'trash');
+ }
}
# ============================================================= Make new folder
@@ -613,6 +631,7 @@ sub makefolder {
sub movemsg {
my ($msgid,$srcfolder,$trgfolder)=@_;
+ if ($srcfolder eq 'new') { $srcfolder=''; }
my $srcsuffix=&foldersuffix($srcfolder);
my $trgsuffix=&foldersuffix($trgfolder);
@@ -706,6 +725,8 @@ ENDDISHEADER
&Apache::loncoursedata::CL_FULLNAME(),
&Apache::loncoursedata::CL_SECTION()]);
next if ($status ne 'Active');
+ next if ($env{'request.course.sec'} &&
+ $section ne $env{'request.course.sec'});
my $key = 'send_to_&&&'.$section.'&&&_'.$student;
if (! defined($fullname) || $fullname eq '') { $fullname = $sname; }
$r->print('
'.&mt('Currently available actions (will open extra window)').': | '); + my $symb=&Apache::lonnet::symbread($content{'baseurl'}); + if (&Apache::lonnet::allowed('vgr',$env{'request.course.id'})) { + $r->print(''.&Apache::loncommon::track_student_link(&mt('View recent activity'),$content{'sendername'},$content{'senderdomain'},'check').' | '); + } + if (&Apache::lonnet::allowed('opa',$env{'request.course.id'}) && $symb) { + $r->print(''.&Apache::loncommon::pprmlink(&mt('Set/Change parameters'),$content{'sendername'},$content{'senderdomain'},$symb,'check').' | '); + } + if (&Apache::lonnet::allowed('mgr',$env{'request.course.id'}) && $symb) { + $r->print(''.&Apache::loncommon::pgrdlink(&mt('Set/Change grades'),$content{'sendername'},$content{'senderdomain'},$symb,'check').' | '); + } + $r->print('
'); &Apache::loncommunicate::menu($r); - &disall($r,$folder); + &disall($r,($folder?$folder:$dismode)); } elsif ($env{'form.markeddel'}) { my $total=0; foreach (keys %env) { @@ -2129,12 +2178,12 @@ sub handler { &printheader($r,'','Deleted Messages'); $r->print('Deleted '.$total.' message(s)
'); &Apache::loncommunicate::menu($r); - &disall($r,$folder); + &disall($r,($folder?$folder:$dismode)); } elsif ($env{'form.markunread'}) { &printheader($r,'','Marked Message as Unread'); &statuschange($env{'form.markunread'},'new'); &Apache::loncommunicate::menu($r); - &disall($r,$folder); + &disall($r,($folder?$folder:$dismode)); } elsif ($env{'form.compose'}) { &compout($r,'','',$env{'form.compose'}); } elsif ($env{'form.recordftf'}) { @@ -2146,7 +2195,7 @@ sub handler { if ($env{'form.storebasecomment'}) { &storecomment($r); } - &disall($r,$folder); + &disall($r,($folder?$folder:$dismode)); } elsif ($env{'form.newfolder'}) { &printheader($r,'','New Folder'); &makefolder($env{'form.newfolder'}); @@ -2156,8 +2205,8 @@ sub handler { &storedcommentlisting($r); } else { &printheader($r,'','Display All Messages'); - &Apache::loncommunicate::menu($r); - &disall($r,$folder); + &Apache::loncommunicate::menu($r); + &disall($r,($folder?$folder:$dismode)); } $r->print(&Apache::loncommon::endbodytag().''); return OK;