version 1.140, 2005/04/07 06:56:23
|
version 1.148, 2005/06/06 21:06:14
|
Line 141 sub packagemsg {
|
Line 141 sub packagemsg {
|
$partsubj=&Apache::lonnet::escape($partsubj); |
$partsubj=&Apache::lonnet::escape($partsubj); |
my $msgid=&Apache::lonnet::escape( |
my $msgid=&Apache::lonnet::escape( |
$now.':'.$partsubj.':'.$env{'user.name'}.':'. |
$now.':'.$partsubj.':'.$env{'user.name'}.':'. |
$env{'user.domain'}.':'.$msgcount.':'.$$); |
$env{'user.domain'}.':'.$msgcount.':'. |
|
$env{'request.course.id'}.':'.$$); |
my $result='<sendername>'.$env{'user.name'}.'</sendername>'. |
my $result='<sendername>'.$env{'user.name'}.'</sendername>'. |
'<senderdomain>'.$env{'user.domain'}.'</senderdomain>'. |
'<senderdomain>'.$env{'user.domain'}.'</senderdomain>'. |
'<subject>'.$subject.'</subject>'. |
'<subject>'.$subject.'</subject>'. |
Line 209 sub unpackmsgid {
|
Line 210 sub unpackmsgid {
|
my ($msgid,$folder)=@_; |
my ($msgid,$folder)=@_; |
$msgid=&Apache::lonnet::unescape($msgid); |
$msgid=&Apache::lonnet::unescape($msgid); |
my $suffix=&foldersuffix($folder); |
my $suffix=&foldersuffix($folder); |
my ($sendtime,$shortsubj,$fromname,$fromdomain)=split(/\:/, |
my ($sendtime,$shortsubj,$fromname,$fromdomain,$count,$fromcid)=split(/\:/, |
&Apache::lonnet::unescape($msgid)); |
&Apache::lonnet::unescape($msgid)); |
my %status=&Apache::lonnet::get('email_status'.$suffix,[$msgid]); |
my %status=&Apache::lonnet::get('email_status'.$suffix,[$msgid]); |
if ($status{$msgid}=~/^error\:/) { $status{$msgid}=''; } |
if ($status{$msgid}=~/^error\:/) { $status{$msgid}=''; } |
unless ($status{$msgid}) { $status{$msgid}='new'; } |
unless ($status{$msgid}) { $status{$msgid}='new'; } |
return ($sendtime,$shortsubj,$fromname,$fromdomain,$status{$msgid}); |
return ($sendtime,$shortsubj,$fromname,$fromdomain,$status{$msgid},$fromcid); |
} |
} |
|
|
|
|
sub sendemail { |
sub sendemail { |
Line 595 sub statuschange {
|
Line 596 sub statuschange {
|
if (($newstatus eq 'deleted') || ($newstatus eq 'new')) { |
if (($newstatus eq 'deleted') || ($newstatus eq 'new')) { |
&Apache::lonnet::put('email_status'.$suffix,{$msgid => $newstatus}); |
&Apache::lonnet::put('email_status'.$suffix,{$msgid => $newstatus}); |
} |
} |
|
if ($newstatus eq 'deleted') { |
|
&movemsg(&Apache::lonnet::unescape($msgid),$folder,'trash'); |
|
} |
} |
} |
|
|
# ============================================================= Make new folder |
# ============================================================= Make new folder |
Line 612 sub makefolder {
|
Line 616 sub makefolder {
|
|
|
sub movemsg { |
sub movemsg { |
my ($msgid,$srcfolder,$trgfolder)=@_; |
my ($msgid,$srcfolder,$trgfolder)=@_; |
|
if ($srcfolder eq 'new') { $srcfolder=''; } |
my $srcsuffix=&foldersuffix($srcfolder); |
my $srcsuffix=&foldersuffix($srcfolder); |
my $trgsuffix=&foldersuffix($trgfolder); |
my $trgsuffix=&foldersuffix($trgfolder); |
|
|
Line 705 ENDDISHEADER
|
Line 710 ENDDISHEADER
|
&Apache::loncoursedata::CL_FULLNAME(), |
&Apache::loncoursedata::CL_FULLNAME(), |
&Apache::loncoursedata::CL_SECTION()]); |
&Apache::loncoursedata::CL_SECTION()]); |
next if ($status ne 'Active'); |
next if ($status ne 'Active'); |
|
next if ($env{'request.course.sec'} && |
|
$section ne $env{'request.course.sec'}); |
my $key = 'send_to_&&&'.$section.'&&&_'.$student; |
my $key = 'send_to_&&&'.$section.'&&&_'.$student; |
if (! defined($fullname) || $fullname eq '') { $fullname = $sname; } |
if (! defined($fullname) || $fullname eq '') { $fullname = $sname; } |
$r->print('<tr><td><label>'. |
$r->print('<tr><td><label>'. |
Line 762 sub sortedmessages {
|
Line 769 sub sortedmessages {
|
my @temp; |
my @temp; |
foreach (@messages) { |
foreach (@messages) { |
my $msgid=&Apache::lonnet::escape($_); |
my $msgid=&Apache::lonnet::escape($_); |
my ($sendtime,$shortsubj,$fromname,$fromdomain,$status)= |
my ($sendtime,$shortsubj,$fromname,$fromdomain,$status,$fromcid)= |
&Apache::lonmsg::unpackmsgid($msgid,$folder); |
&Apache::lonmsg::unpackmsgid($msgid,$folder); |
my @temp1 = ($sendtime,$shortsubj,$fromname,$fromdomain,$status, |
my @temp1 = ($sendtime,$shortsubj,$fromname,$fromdomain,$status, |
$msgid); |
$msgid); |
Line 836 sub disnew {
|
Line 843 sub disnew {
|
# Check for blocking of display because of scheduled online exams. |
# Check for blocking of display because of scheduled online exams. |
&blockcheck(\%setters,\$startblock,\$endblock); |
&blockcheck(\%setters,\$startblock,\$endblock); |
foreach (@msgids) { |
foreach (@msgids) { |
my ($sendtime,$shortsubj,$fromname,$fromdom,$status)= |
my ($sendtime,$shortsubj,$fromname,$fromdom,$status,$fromcid)= |
&Apache::lonmsg::unpackmsgid($_); |
&Apache::lonmsg::unpackmsgid($_); |
if (defined($sendtime) && $sendtime!~/error/) { |
if (defined($sendtime) && $sendtime!~/error/) { |
my $numsendtime = $sendtime; |
my $numsendtime = $sendtime; |
Line 1042 ENDDISHEADER
|
Line 1049 ENDDISHEADER
|
# ============================================================== Compose output |
# ============================================================== Compose output |
|
|
sub compout { |
sub compout { |
my ($r,$forwarding,$replying,$broadcast,$replycrit,$folder)=@_; |
my ($r,$forwarding,$replying,$broadcast,$replycrit,$folder,$dismode)=@_; |
my $suffix=&foldersuffix($folder); |
my $suffix=&foldersuffix($folder); |
|
|
if ($broadcast eq 'individual') { |
if ($broadcast eq 'individual') { |
Line 1169 ENDREC
|
Line 1176 ENDREC
|
<tr><td>$lt{'sb'}:</td><td><input type="text" size="50" name="subject" value="$dissub" /> |
<tr><td>$lt{'sb'}:</td><td><input type="text" size="50" name="subject" value="$dissub" /> |
</td></tr></table> |
</td></tr></table> |
$latexHelp |
$latexHelp |
<textarea name="message" cols="80" rows="15" wrap="hard">$dismsg |
<textarea name="message" id="message" cols="80" rows="15" wrap="hard">$dismsg |
</textarea></p><br /> |
</textarea></p><br /> |
$dispcrit |
$dispcrit |
$disbase |
$disbase |
|
<input type="hidden" name="folder" value="$folder" /> |
|
<input type="hidden" name="dismode" value="$dismode" /> |
<input type="submit" name="send" value="$func $lt{'ma'}" /> |
<input type="submit" name="send" value="$func $lt{'ma'}" /> |
<input type="submit" name="cancel" value="$lt{'ca'}" /><hr /> |
<input type="submit" name="cancel" value="$lt{'ca'}" /><hr /> |
$citation |
$citation |
Line 1186 ENDCOMP
|
Line 1195 ENDCOMP
|
Subject: <input type="text" size="50" name="subject" /> |
Subject: <input type="text" size="50" name="subject" /> |
</p> |
</p> |
<p>General message text<br /> |
<p>General message text<br /> |
<textarea name="message" cols="60" rows="10" wrap="hard">$dismsg |
<textarea name="message" id="message" cols="60" rows="10" wrap="hard">$dismsg |
</textarea></p> |
</textarea></p> |
<p> |
<p> |
The file format for the uploaded portion of the message is: |
The file format for the uploaded portion of the message is: |
Line 1208 ENDUPLOAD
|
Line 1217 ENDUPLOAD
|
if ($broadcast eq 'group') { |
if ($broadcast eq 'group') { |
&discourse; |
&discourse; |
} |
} |
$r->print('</form>'); |
$r->print('</form>'. |
|
&Apache::lonhtmlcommon::htmlareaselectactive('message')); |
} |
} |
|
|
# ---------------------------------------------------- Display all face to face |
# ---------------------------------------------------- Display all face to face |
Line 1229 sub retrieve_instructor_comments {
|
Line 1239 sub retrieve_instructor_comments {
|
my %content=&unpackagemsg($records{$_}); |
my %content=&unpackagemsg($records{$_}); |
next if ($content{'senderdomain'} eq ''); |
next if ($content{'senderdomain'} eq ''); |
next if ($content{'subject'} !~ /^Record/); |
next if ($content{'subject'} !~ /^Record/); |
# $content{'message'}=~s/\n/\<br\>/g; |
# &Apache::lonfeedback::newline_to_br(\$content{'message'}); |
$result.='Recorded by '. |
$result.='Recorded by '. |
$content{'sendername'}.'@'.$content{'senderdomain'}."\n"; |
$content{'sendername'}.'@'.$content{'senderdomain'}."\n"; |
$result.= |
$result.= |
&Apache::lontexconvert::msgtexconverted($content{'message'})."\n"; |
&Apache::lontexconvert::msgtexconverted($content{'message'})."\n"; |
Line 1253 sub disfacetoface {
|
Line 1263 sub disfacetoface {
|
foreach (sort keys %records) { |
foreach (sort keys %records) { |
my %content=&unpackagemsg($records{$_}); |
my %content=&unpackagemsg($records{$_}); |
next if ($content{'senderdomain'} eq ''); |
next if ($content{'senderdomain'} eq ''); |
$content{'message'}=~s/\n/\<br\>/g; |
&Apache::lonfeedback::newline_to_br(\$content{'message'}); |
if ($content{'subject'}=~/^Record/) { |
if ($content{'subject'}=~/^Record/) { |
$result.='<h3>'.&mt('Record').'</h3>'; |
$result.='<h3>'.&mt('Record').'</h3>'; |
} elsif ($content{'subject'}=~/^Broadcast/) { |
} elsif ($content{'subject'}=~/^Broadcast/) { |
Line 1770 sub displaymessage {
|
Line 1780 sub displaymessage {
|
'<td><a href="/adm/email?markunread='.&Apache::lonnet::escape($msgid).$sqs. |
'<td><a href="/adm/email?markunread='.&Apache::lonnet::escape($msgid).$sqs. |
'"><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>'.&mt('Delete').'</b></a></td>'. |
'<td><a href="/adm/email?'.$sqs. |
'<td><a href="/adm/email?'.$sqs. |
($env{'form.dismode'} eq 'new'?'&folder=new':''). |
($env{'form.dismode'} eq 'new'?'&folder=new':''). |
'"><b>'.&mt('Back to Folder Display').'</b></a></td>'); |
'"><b>'.&mt('Back to Folder Display').'</b></a></td>'); |
Line 1783 sub displaymessage {
|
Line 1793 sub displaymessage {
|
'"><b>'.&mt('Next').'</b></a></td>'); |
'"><b>'.&mt('Next').'</b></a></td>'); |
} |
} |
$r->print('</tr></table>'); |
$r->print('</tr></table>'); |
|
if ($env{'user.adv'}) { |
|
$r->print('<table border="2" width="100%"><tr bgcolor="#FFAAAA"><td>'.&mt('Currently available actions (will open extra window)').':</td>'); |
|
|
|
if (&Apache::lonnet::allowed('vgr',$env{'request.course.id'})) { |
|
$r->print('<td><b>'.&Apache::loncommon::track_student_link(&mt('View recent activity'),$content{'sendername'},$content{'senderdomain'},'check').'</b></td>'); |
|
} |
|
if (&Apache::lonnet::allowed('opa',$env{'request.course.id'})) { |
|
my $symb=&Apache::lonnet::symbread($content{'baseurl'}); |
|
$r->print('<td><b>'.&Apache::loncommon::pprmlink(&mt('Set/Change parameters'),$content{'sendername'},$content{'senderdomain'},$symb,'check').'</b></td>'); |
|
} |
|
if (&Apache::lonnet::allowed('mgr',$env{'request.course.id'})) { |
|
my $symb=&Apache::lonnet::symbread($content{'baseurl'}); |
|
$r->print('<td><b>'.&Apache::loncommon::pgrdlink(&mt('Set/Change grades'),$content{'sendername'},$content{'senderdomain'},$symb,'check').'</b></td>'); |
|
} |
|
$r->print('</tr></table>'); |
|
} |
$r->print('<br /><b>'.&mt('Subject').':</b> '.$content{'subject'}. |
$r->print('<br /><b>'.&mt('Subject').':</b> '.$content{'subject'}. |
($folder ne 'sent'?'<br /><b>'.&mt('From').':</b> '. |
($folder ne 'sent'?'<br /><b>'.&mt('From').':</b> '. |
&Apache::loncommon::aboutmewrapper( |
&Apache::loncommon::aboutmewrapper( |
Line 1846 sub header {
|
Line 1872 sub header {
|
my ($r,$title,$baseurl)=@_; |
my ($r,$title,$baseurl)=@_; |
$r->print(&Apache::lonxml::xmlbegin(). |
$r->print(&Apache::lonxml::xmlbegin(). |
'<head>'.&Apache::lonxml::fontsettings(). |
'<head>'.&Apache::lonxml::fontsettings(). |
'<title>Communication and Messages</title>'); |
'<title>Communication and Messages</title>'. |
|
&Apache::lonhtmlcommon::htmlareaheaders()); |
if ($baseurl) { |
if ($baseurl) { |
$r->print("<base href=\"http://$ENV{'SERVER_NAME'}/$baseurl\" />"); |
$r->print("<base href=\"http://$ENV{'SERVER_NAME'}/$baseurl\" />"); |
} |
} |
Line 2047 sub handler {
|
Line 2074 sub handler {
|
} else { |
} else { |
$sqs.='&folder='.&Apache::lonnet::escape($folder); |
$sqs.='&folder='.&Apache::lonnet::escape($folder); |
} |
} |
|
# ------------------------------------------------------------ Get Display Mode |
|
|
|
my $dismode=$env{'form.dismode'}; |
|
unless ($dismode) { |
|
$dismode=''; |
|
} else { |
|
$sqs.='&dismode='.&Apache::lonnet::escape($dismode); |
|
} |
|
|
# --------------------------------------------------------------------- Display |
# --------------------------------------------------------------------- Display |
|
|
Line 2078 sub handler {
|
Line 2113 sub handler {
|
if ($env{'form.display'}) { |
if ($env{'form.display'}) { |
&displaymessage($r,$env{'form.display'},$folder); |
&displaymessage($r,$env{'form.display'},$folder); |
} elsif ($env{'form.replyto'}) { |
} elsif ($env{'form.replyto'}) { |
&compout($r,'',$env{'form.replyto'},undef,undef,$folder); |
&compout($r,'',$env{'form.replyto'},undef,undef,$folder,$dismode); |
} elsif ($env{'form.confirm'}) { |
} elsif ($env{'form.confirm'}) { |
&printheader($r,'','Confirmed Receipt'); |
&printheader($r,'','Confirmed Receipt'); |
foreach (keys %env) { |
foreach (keys %env) { |
Line 2103 sub handler {
|
Line 2138 sub handler {
|
&printheader($r,'','Deleted Message'); |
&printheader($r,'','Deleted Message'); |
&statuschange($env{'form.markdel'},'deleted',$folder); |
&statuschange($env{'form.markdel'},'deleted',$folder); |
&Apache::loncommunicate::menu($r); |
&Apache::loncommunicate::menu($r); |
&disall($r,$folder); |
&disall($r,($folder?$folder:$dismode)); |
} elsif ($env{'form.markedmove'}) { |
} elsif ($env{'form.markedmove'}) { |
my $total=0; |
my $total=0; |
foreach (keys %env) { |
foreach (keys %env) { |
Line 2116 sub handler {
|
Line 2151 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); |
&Apache::loncommunicate::menu($r); |
&disall($r,$folder); |
&disall($r,($folder?$folder:$dismode)); |
} elsif ($env{'form.markeddel'}) { |
} elsif ($env{'form.markeddel'}) { |
my $total=0; |
my $total=0; |
foreach (keys %env) { |
foreach (keys %env) { |
Line 2128 sub handler {
|
Line 2163 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); |
&Apache::loncommunicate::menu($r); |
&disall($r,$folder); |
&disall($r,($folder?$folder:$dismode)); |
} 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); |
&Apache::loncommunicate::menu($r); |
&disall($r,$folder); |
&disall($r,($folder?$folder:$dismode)); |
} elsif ($env{'form.compose'}) { |
} elsif ($env{'form.compose'}) { |
&compout($r,'','',$env{'form.compose'}); |
&compout($r,'','',$env{'form.compose'}); |
} elsif ($env{'form.recordftf'}) { |
} elsif ($env{'form.recordftf'}) { |
Line 2145 sub handler {
|
Line 2180 sub handler {
|
if ($env{'form.storebasecomment'}) { |
if ($env{'form.storebasecomment'}) { |
&storecomment($r); |
&storecomment($r); |
} |
} |
&disall($r,$folder); |
&disall($r,($folder?$folder:$dismode)); |
} elsif ($env{'form.newfolder'}) { |
} elsif ($env{'form.newfolder'}) { |
&printheader($r,'','New Folder'); |
&printheader($r,'','New Folder'); |
&makefolder($env{'form.newfolder'}); |
&makefolder($env{'form.newfolder'}); |
Line 2155 sub handler {
|
Line 2190 sub handler {
|
&storedcommentlisting($r); |
&storedcommentlisting($r); |
} else { |
} else { |
&printheader($r,'','Display All Messages'); |
&printheader($r,'','Display All Messages'); |
&Apache::loncommunicate::menu($r); |
&Apache::loncommunicate::menu($r); |
&disall($r,$folder); |
&disall($r,($folder?$folder:$dismode)); |
} |
} |
$r->print(&Apache::loncommon::endbodytag().'</html>'); |
$r->print(&Apache::loncommon::endbodytag().'</html>'); |
return OK; |
return OK; |