version 1.141, 2005/04/11 21:51:43
|
version 1.152, 2005/07/08 10:39:49
|
Line 337 sub del_url_author_res_msg {
|
Line 337 sub del_url_author_res_msg {
|
} |
} |
return &Apache::lonnet::del('nohist_res_msgs',\@delmsgs,$domain,$author); |
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 |
# ================= Return hash with URLs for which there is a resource message |
|
|
sub all_url_author_res_msg { |
sub all_url_author_res_msg { |
Line 564 sub scrollbuttons {
|
Line 577 sub scrollbuttons {
|
my ($start,$maxdis,$first,$finish,$total)=@_; |
my ($start,$maxdis,$first,$finish,$total)=@_; |
unless ($total>0) { return ''; } |
unless ($total>0) { return ''; } |
$start++; $maxdis++;$first++;$finish++; |
$start++; $maxdis++;$first++;$finish++; |
return |
return |
|
&mt('Page').': '. |
'<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="'.$start.'" onChange="this.form.submit()" /> of '.$maxdis. |
'<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').'" /><br />'. |
'<input type="submit" name="lastview" value="'.&mt('Last').'" /><br />'. |
&mt('Messages [_1] through [_2] of [_3]',$first,$finish,$total).'</form>'; |
&mt('Showing messages [_1] through [_2] of [_3]',$first,$finish,$total).'</form>'; |
} |
} |
|
|
# =============================================================== Folder suffix |
# =============================================================== Folder suffix |
Line 596 sub statuschange {
|
Line 610 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 613 sub makefolder {
|
Line 630 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 706 ENDDISHEADER
|
Line 724 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 866 sub disnew {
|
Line 886 sub disnew {
|
TABLEHEAD |
TABLEHEAD |
foreach my $msg (@newmsgs) { |
foreach my $msg (@newmsgs) { |
$r->print(<<"ENDLINK"); |
$r->print(<<"ENDLINK"); |
<tr bgcolor="#FFBB77"> |
<tr class="new" bgcolor="#FFBB77" onMouseOver="javascript:style.backgroundColor='#DD9955'" |
|
onMouseOut="javascript:style.backgroundColor='#FFBB77'"> |
<td><a href="/adm/email?dismode=new&display=$msg->{'msgid'}">$lt{'op'}</a></td> |
<td><a href="/adm/email?dismode=new&display=$msg->{'msgid'}">$lt{'op'}</a></td> |
ENDLINK |
ENDLINK |
foreach ('sendtime','from','fromdom','shortsub') { |
foreach ('sendtime','from','fromdom','shortsub') { |
Line 993 ENDDISHEADER
|
Line 1014 ENDDISHEADER
|
my ($sendtime,$shortsubj,$fromname,$fromdomain,$status,$origID)= @{$temp[$n]}; |
my ($sendtime,$shortsubj,$fromname,$fromdomain,$status,$origID)= @{$temp[$n]}; |
if (($status ne 'deleted') && defined($sendtime) && $sendtime!~/error/) { |
if (($status ne 'deleted') && defined($sendtime) && $sendtime!~/error/) { |
if ($status eq 'new') { |
if ($status eq 'new') { |
$r->print('<tr bgcolor="#FFBB77">'); |
$r->print('<tr bgcolor="#FFBB77" onMouseOver="javascript:style.backgroundColor=\'#DD9955\'" onMouseOut="javascript:style.backgroundColor=\'#FFBB77\'">'); |
} elsif ($status eq 'read') { |
} elsif ($status eq 'read') { |
$r->print('<tr bgcolor="#BBBB77">'); |
$r->print('<tr bgcolor="#BBBB77" onMouseOver="javascript:style.backgroundColor=\'#999944\'" onMouseOut="javascript:style.backgroundColor=\'#BBBB77\'">'); |
} elsif ($status eq 'replied') { |
} elsif ($status eq 'replied') { |
$r->print('<tr bgcolor="#AAAA88">'); |
$r->print('<tr bgcolor="#AAAA88" onMouseOver="javascript:style.backgroundColor=\'#888855\'" onMouseOut="javascript:style.backgroundColor=\'#AAAA88\'">'); |
} else { |
} else { |
$r->print('<tr bgcolor="#99BBBB">'); |
$r->print('<tr bgcolor="#99BBBB" onMouseOver="javascript:style.backgroundColor=\'#669999\'" onMouseOut="javascript:style.backgroundColor=\'#99BBBB\'">'); |
} |
} |
$r->print('<td><input type="checkbox" name="delmark_'.$origID.'" /></td><td><a href="/adm/email?display='.$origID.$sqs. |
$r->print('<td><input type="checkbox" name="delmark_'.$origID.'" /></td><td><a href="/adm/email?display='.$origID.$sqs. |
'">'.&mt('Open').'</a></td><td>'. |
'">'.&mt('Open').'</a></td><td>'. |
Line 1043 ENDDISHEADER
|
Line 1064 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 1170 ENDREC
|
Line 1191 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 1187 ENDCOMP
|
Line 1210 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 1209 ENDUPLOAD
|
Line 1232 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 1230 sub retrieve_instructor_comments {
|
Line 1254 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 1254 sub disfacetoface {
|
Line 1278 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 1771 sub displaymessage {
|
Line 1795 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 1784 sub displaymessage {
|
Line 1808 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>'); |
|
my $symb=&Apache::lonnet::symbread($content{'baseurl'}); |
|
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'}) && $symb) { |
|
$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'}) && $symb) { |
|
$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 1847 sub header {
|
Line 1885 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 2048 sub handler {
|
Line 2087 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 2079 sub handler {
|
Line 2126 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 2104 sub handler {
|
Line 2151 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 2117 sub handler {
|
Line 2164 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 2129 sub handler {
|
Line 2176 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 2146 sub handler {
|
Line 2193 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 2156 sub handler {
|
Line 2203 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; |