version 1.97, 2008/11/23 15:48:27
|
version 1.105, 2008/12/16 22:57:31
|
Line 243 function folder_choice(targetform,caller
|
Line 243 function folder_choice(targetform,caller
|
</td><td> </td><td> </td><td> </td><td> </td> |
</td><td> </td><td> </td><td> </td><td> </td> |
<td align="right"> |
<td align="right"> |
<table><tr><td><br /> |
<table><tr><td><br /> |
<input type="button" value="'.&mt('Make New Folder'). |
<input type="button" value="'.&mt('New Folder'). |
'" onClick="javascript:folder_choice(this.form,'."'new'".');" /></td>'. |
'" onClick="javascript:folder_choice(this.form,'."'new'".');" /></td>'. |
'<td align="center"><b>'.&mt('New Folder').'</b><br />'. |
'<td align="center"><b>'.&mt('Name').'</b><br />'. |
'<input type="text" size="15" name="newfolder" value="" /> |
'<input type="text" size="15" name="newfolder" value="" /> |
</td></tr></table> |
</td></tr></table> |
</td> |
</td> |
Line 353 sub makefolder {
|
Line 353 sub makefolder {
|
} |
} |
} else { |
} else { |
$outcome = |
$outcome = |
&mt('Error - could not obtain lock on email folders record.'); |
&mt('Error - could not obtain lock on message folders record.'); |
} |
} |
return ($outcome,$warning); |
return ($outcome,$warning); |
} |
} |
Line 555 sub discourse {
|
Line 555 sub discourse {
|
} |
} |
|
|
sub disgroup { |
sub disgroup { |
my ($cdom,$cnum,$group,$access_status) = @_; |
my ($r,$cdom,$cnum,$group,$access_status) = @_; |
my $result; |
my $hasfloat; |
# Needs to be in a course |
# Needs to be in a course |
if (!($env{'request.course.fn'})) { |
if (!($env{'request.course.fn'})) { |
$result = &mt('Error: you must have a course role selected to be able to send a broadcast |
$r->print('<span class="LC_error">'.&mt('Error: you must have a course role selected to be able to send a broadcast message to a group in the course.').'</span>'); |
e-mail to a group in the course.'); |
return; |
return $result; |
|
} |
} |
if ($cdom eq '' || $cnum eq '') { |
if ($cdom eq '' || $cnum eq '') { |
$result = &mt('Error: could not determine domain or number of course'); |
$r->print('<span class="LC_error">'.&mt('Error: could not determine domain or number of course').'</span>'); |
return $result; |
return; |
} |
} |
my ($memberinfo,$numitems) = |
my ($memberinfo,$numitems) = |
&Apache::longroup::group_memberlist($cdom,$cnum,$group,{},[]); |
&Apache::longroup::group_memberlist($cdom,$cnum,$group,{},[]); |
Line 578 e-mail to a group in the course.');
|
Line 577 e-mail to a group in the course.');
|
push(@statustypes,('future','previous')); |
push(@statustypes,('future','previous')); |
} |
} |
if (keys(%{$memberinfo}) == 0) { |
if (keys(%{$memberinfo}) == 0) { |
$result = &mt('As this group has no members, there are no '. |
$r->print('<span class="LC_warning">'. |
'recipients to select.'); |
&mt('As this group has no members, there are no recipients to select'). |
return $result; |
'</span>'); |
|
return; |
} else { |
} else { |
|
$hasfloat = 1; |
|
$r->print('<div class="LC_left_float">'); |
my %Sortby = ( |
my %Sortby = ( |
active => {}, |
active => {}, |
previous => {}, |
previous => {}, |
Line 607 e-mail to a group in the course.');
|
Line 609 e-mail to a group in the course.');
|
push(@{$Sortby{$status}{$$memberinfo{$user}{fullname}}},$user); |
push(@{$Sortby{$status}{$$memberinfo{$user}{fullname}}},$user); |
} |
} |
} |
} |
$result .= &group_check_uncheck(); |
$r->print(&group_check_uncheck()); |
foreach my $status (@statustypes) { |
foreach my $status (@statustypes) { |
if (ref($numitems) eq 'HASH') { |
if (ref($numitems) eq 'HASH') { |
if ((defined($$numitems{$status})) && ($$numitems{$status})) { |
if ((defined($$numitems{$status})) && ($$numitems{$status})) { |
Line 615 e-mail to a group in the course.');
|
Line 617 e-mail to a group in the course.');
|
if (ref($access_status) eq 'HASH') { |
if (ref($access_status) eq 'HASH') { |
$access_status->{$status} = $$numitems{$status}; |
$access_status->{$status} = $$numitems{$status}; |
} |
} |
$result.='<fieldset><legend><b>'.$lt{$status}. |
$r->print('<fieldset><legend><b>'.$lt{$status}. |
'</b></legend><form name="'.$formname.'">'. |
'</b></legend><form name="'.$formname.'">'. |
'<span class="LC_nobreak">'. |
'<span class="LC_nobreak">'. |
'<input type="button" value="'.&mt('Check All').'" '. |
'<input type="button" value="'.&mt('Check All').'" '. |
'onclick="javascript:toggleAll('."this.form,'check'".')" />'. |
'onclick="javascript:toggleAll('."this.form,'check'".')" />'. |
' '. |
' '. |
'<input type="button" value="'.&mt('Uncheck All').'" '. |
'<input type="button" value="'.&mt('Uncheck All').'" '. |
'onclick="javascript:toggleAll('."this.form,'uncheck'".')" />'. |
'onclick="javascript:toggleAll('."this.form,'uncheck'".')" />'. |
'</span>'; |
'</span>'); |
if ($status eq 'active') { |
if ($status eq 'active') { |
$result .= ' <select name="groupmail">'. |
$r->print((' 'x3).'<select name="groupmail">'. |
'<option value="bcc" selected="selected">'.&mt('Bcc').'</option>'. |
'<option value="bcc" selected="selected">'.&mt('Bcc').'</option>'. |
'<option value="cc">'.&mt('Cc').'</option>'. |
'<option value="cc">'.&mt('Cc').'</option>'. |
'</select>'; |
'</select>'); |
} |
} |
$result .= '<br />'.&Apache::loncommon::start_data_table(). |
$r->print('<br />'.&Apache::loncommon::start_data_table(). |
&Apache::loncommon::start_data_table_header_row(). |
&Apache::loncommon::start_data_table_header_row(). |
"<th>$lt{'name'}</a></th>". |
"<th>$lt{'name'}</th>". |
"<th>$lt{'usnm'}</a></th>". |
"<th>$lt{'usnm'}</th>". |
"<th>$lt{'doma'}</a></th>". |
"<th>$lt{'doma'}</th>". |
&Apache::loncommon::end_data_table_header_row(); |
&Apache::loncommon::end_data_table_header_row()); |
foreach my $key (sort(keys(%{$Sortby{$status}}))) { |
foreach my $key (sort(keys(%{$Sortby{$status}}))) { |
foreach my $user (@{$Sortby{$status}{$key}}) { |
foreach my $user (@{$Sortby{$status}{$key}}) { |
$result .= |
$r->print(&Apache::loncommon::start_data_table_row(). |
&Apache::loncommon::start_data_table_row(). |
'<td><span class="LC_nobreak"><input type="checkbox" '. |
'<td><input type="checkbox" '. |
|
'name="selectedusers_forminput" value="'. |
'name="selectedusers_forminput" value="'. |
$user.':'.$status.'" />'. |
$user.':'.$status.'" />'. |
$$memberinfo{$user}{'fullname'}.'</td>'. |
$$memberinfo{$user}{'fullname'}.'</span></td>'. |
'<td>'.$$memberinfo{$user}{'uname'}.'</td>'. |
'<td>'.$$memberinfo{$user}{'uname'}.'</td>'. |
'<td>'.$$memberinfo{$user}{'udom'}.'</td>'. |
'<td>'.$$memberinfo{$user}{'udom'}.'</td>'. |
&Apache::loncommon::end_data_table_row(); |
&Apache::loncommon::end_data_table_row()); |
} |
} |
} |
} |
$result .= &Apache::loncommon::end_data_table().'</form></fieldset><br />'; |
$r->print(&Apache::loncommon::end_data_table().'</form>'. |
|
'</fieldset><br /></div>'); |
} |
} |
} |
} |
} |
} |
} |
} |
return $result; |
return $hasfloat; |
} |
} |
|
|
sub group_check_uncheck { |
sub group_check_uncheck { |
Line 718 sub groupmail_header {
|
Line 720 sub groupmail_header {
|
{href=>"/adm/email?compose=group&group=". |
{href=>"/adm/email?compose=group&group=". |
"$env{'form.group'}&$refarg", |
"$env{'form.group'}&$refarg", |
text=>"Send a Message in a Group", |
text=>"Send a Message in a Group", |
title=>"Compose Group E-mail"},); |
title=>"Compose Group Message"},); |
if ($action eq 'sending') { |
if ($action eq 'sending') { |
&Apache::lonhtmlcommon::add_breadcrumb |
&Apache::lonhtmlcommon::add_breadcrumb |
({text=>"E-mails being sent.", |
({text=>"Messages being sent.", |
title=>"E-mails sent"},); |
title=>"E-mails sent"},); |
} |
} |
my $groupheader = &Apache::loncommon::start_page('Group Email'); |
my $groupheader = &Apache::loncommon::start_page('Group Message'); |
$groupheader .= &Apache::lonhtmlcommon::breadcrumbs |
$groupheader .= &Apache::lonhtmlcommon::breadcrumbs |
('Group - '.$env{'form.group'}.' Email'); |
('Group - '.$env{'form.group'}.' Email'); |
return $groupheader; |
return $groupheader; |
Line 738 sub groupmail_sent {
|
Line 740 sub groupmail_sent {
|
} |
} |
my $output .= '<br /><br /><a href="/adm/email?compose=group&group='. |
my $output .= '<br /><br /><a href="/adm/email?compose=group&group='. |
$group.'&'.$refarg.'">'. |
$group.'&'.$refarg.'">'. |
&mt('Send another group email').'</a>'.' '. |
&mt('Send another group message').'</a>'.' '. |
'<a href="/adm/'.$cdom.'/'.$cnum.'/'.$group.'/smppg?'. |
'<a href="/adm/'.$cdom.'/'.$cnum.'/'.$group.'/smppg?'. |
$refarg.'">'. &mt('Return to group page').'</a>'; |
$refarg.'">'. &mt('Return to group page').'</a>'; |
return $output; |
return $output; |
Line 1108 ENDDISHEADER
|
Line 1110 ENDDISHEADER
|
} |
} |
my $localsenttime = &Apache::lonlocal::locallocaltime($sendtime); |
my $localsenttime = &Apache::lonlocal::locallocaltime($sendtime); |
my $count = $n +1; |
my $count = $n +1; |
$r->print('<td align="right"><nobr>'.(($status eq 'new')?'<b>':''). |
$r->print('<td align="right"><span class="LC_nobreak">'.(($status eq 'new')?'<b>':''). |
$count.'.'.(($status eq 'new')?'</b>':'').' '. |
$count.'.'.(($status eq 'new')?'</b>':'').' '. |
'<input type="checkbox" name="delmark"'. |
'<input type="checkbox" name="delmark"'. |
' value="'.$origID.'" /></nobr></td>'); |
' value="'.$origID.'" /></span></td>'); |
foreach my $item ($localsenttime,$dis_name,$dis_domain,$shortsubj) { |
foreach my $item ($localsenttime,$dis_name,$dis_domain,$shortsubj) { |
$r->print('<td>'.(($status eq 'new')?'<b>':''). |
$r->print('<td>'.(($status eq 'new')?'<b>':''). |
'<a href="/adm/email?display='.$origID.$sqs.'">'. |
'<a href="/adm/email?display='.$origID.$sqs.'">'. |
Line 1287 sub compout {
|
Line 1289 sub compout {
|
$dispcrit= |
$dispcrit= |
'<span class="LC_nobreak"><label><input type="checkbox" name="critmsg" /> '.&mt('Send as critical message').'.</label>'.$crithelp.' '.&mt('Require return receipt?').'<label><input type="radio" name="sendbck" value="1" />'.&mt('Yes').'</label> <label><input type="radio" name="sendbck" value="" checked="checked" />'.&mt('No').'</label></span><br />'. |
'<span class="LC_nobreak"><label><input type="checkbox" name="critmsg" /> '.&mt('Send as critical message').'.</label>'.$crithelp.' '.&mt('Require return receipt?').'<label><input type="radio" name="sendbck" value="1" />'.&mt('Yes').'</label> <label><input type="radio" name="sendbck" value="" checked="checked" />'.&mt('No').'</label></span><br />'. |
'<label><input type="checkbox" name="permanent" /> '. |
'<label><input type="checkbox" name="permanent" /> '. |
&mt('Send copy to permanent email address (if known)').'</label><br />'. |
&mt('Send copy to permanent e-mail address (if known)').'</label><br />'. |
'<label><input type="checkbox" name="rsspost" /> '. |
'<label><input type="checkbox" name="rsspost" /> '. |
&mt('Include in course RSS newsfeed').'</label><br />'; |
&mt('Include in course RSS newsfeed').'</label><br />'; |
} |
} |
Line 1323 sub compout {
|
Line 1325 sub compout {
|
} else { |
} else { |
$can_grp_broadcast = &check_group_priv($group); |
$can_grp_broadcast = &check_group_priv($group); |
if ($can_grp_broadcast) { |
if ($can_grp_broadcast) { |
$r->print('<div class="LC_left_float">'. |
$hasfloat = &disgroup($r,$cdom,$cnum,$group,\%access_status); |
&disgroup($cdom,$cnum,$group,\%access_status). |
|
'</div>'); |
|
$hasfloat = 1; |
|
} |
} |
} |
} |
if ($hasfloat) { |
if ($hasfloat) { |
Line 1676 ENDADD
|
Line 1675 ENDADD
|
sub submit_button_row { |
sub submit_button_row { |
my ($folder,$dismode,$sendtext,$lt,$is_crsform,$group) = @_; |
my ($folder,$dismode,$sendtext,$lt,$is_crsform,$group) = @_; |
my $pre=&mt("Show Preview and Check Spelling"); |
my $pre=&mt("Show Preview and Check Spelling"); |
|
my $value=&mt('Send'); |
my $prevbutton = '<input type="button" name="preview" value="'.$pre.'" onclick="if (typeof(document.compemail.onsubmit)=='."'function'".') {document.compemail.onsubmit();};document.preview.comment.value=document.compemail.message.value;document.preview.subject.value=document.compemail.subject.value;document.preview.submit();" />'; |
my $prevbutton = '<input type="button" name="preview" value="'.$pre.'" onclick="if (typeof(document.compemail.onsubmit)=='."'function'".') {document.compemail.onsubmit();};document.preview.comment.value=document.compemail.message.value;document.preview.subject.value=document.compemail.subject.value;document.preview.submit();" />'; |
my $output = qq| |
my $output = qq| |
<input type="hidden" name="folder" value="$folder" /> |
<input type="hidden" name="folder" value="$folder" /> |
Line 1688 sub submit_button_row {
|
Line 1688 sub submit_button_row {
|
} |
} |
$output .= qq| |
$output .= qq| |
<table><tr><td align="left"> |
<table><tr><td align="left"> |
<input type="submit" name="send" value="Send" title="$sendtext" /> |
<input type="submit" name="send" value="$value" title="$sendtext" /> |
<input type="submit" name="cancel" value="$lt->{'ca'}" /> |
<input type="submit" name="cancel" value="$lt->{'ca'}" /> |
</td><td width="60"> </td><td align="right">$prevbutton</td></tr></table> |
</td><td width="60"> </td><td align="right">$prevbutton</td></tr></table> |
|; |
|; |
Line 2262 sub displaymessage {
|
Line 2262 sub displaymessage {
|
# start output |
# start output |
&printheader($r,'/adm/email?display='.&escape($msgid),'Display a Message','',$content{'baseurl'}); |
&printheader($r,'/adm/email?display='.&escape($msgid),'Display a Message','',$content{'baseurl'}); |
my %courseinfo=&Apache::lonnet::coursedescription($content{'courseid'}); |
my %courseinfo=&Apache::lonnet::coursedescription($content{'courseid'}); |
# Functions |
|
$r->print('<table border="2" width="100%"><tr bgcolor="#FFFFAA"><td>'.&mt('Functions').':</td>'); |
# Functions and Actions |
|
my $li_start='<span class="LC_nobreak">• '; |
|
my $li_end='</span> '; |
|
|
|
# Prepare available functions |
|
my $functionlist=''; |
if (!$content{'noreplies'}) { |
if (!$content{'noreplies'}) { |
$r->print('<td><a href="/adm/email?replyto='.&escape($msgid).$sqs. |
$functionlist.=$li_start |
'"><b>'.&mt('Reply').'</b></a></td>'); |
.'<a href="/adm/email?replyto='.&escape($msgid).$sqs.'">' |
} |
.&mt('Reply') |
$r->print('<td><a href="/adm/email?forward='.&escape($msgid).$sqs. |
.'</a>' |
'"><b>'.&mt('Forward').'</b></a></td>'. |
.$li_end; |
'<td><a href="/adm/email?markunread='.&escape($msgid).$sqs. |
} |
'"><b>'.&mt('Mark Unread').'</b></a></td>'. |
$functionlist.=$li_start |
'<td><a href="/adm/email?markdel='.&escape($msgid).$sqs. |
.'<a href="/adm/email?forward='.&escape($msgid).$sqs.'">' |
'"><b>'.&mt('Delete').'</b></a></td>'. |
.&mt('Forward') |
'<td><a href="/adm/email?'.$sqs. |
.'</a>' |
'"><b>'.&mt('Back to Folder Display').'</b></a></td>'); |
.$li_end; |
|
$functionlist.=$li_start |
|
.'<a href="/adm/email?markunread='.&escape($msgid).$sqs.'">' |
|
.&mt('Mark Unread') |
|
.'</a>' |
|
.$li_end; |
|
$functionlist.=$li_start |
|
.'<a href="/adm/email?markdel='.&escape($msgid).$sqs.'">' |
|
.&mt('Delete') |
|
.'</a>' |
|
.$li_end; |
|
$functionlist.=$li_start |
|
.'<a href="/adm/email?'.$sqs.'">' |
|
.&mt('Back to Folder Display') |
|
.'</a>' |
|
.$li_end; |
if ($counter > 0){ |
if ($counter > 0){ |
$r->print('<td><a href="/adm/email?display='.$messages[$counter-1]->[5].$sqs. |
$functionlist.=$li_start |
'"><b>'.&mt('Previous').'</b></a></td>'); |
.'<a href="/adm/email?display='.$messages[$counter-1]->[5].$sqs.'">' |
|
.&mt('Previous') |
|
.'</a>' |
|
.$li_end; |
} |
} |
if ($counter < $number_of_messages - 1){ |
if ($counter < $number_of_messages - 1){ |
$r->print('<td><a href="/adm/email?display='.$messages[$counter+1]->[5].$sqs. |
$functionlist.=$li_start |
'"><b>'.&mt('Next').'</b></a></td>'); |
.'<a href="/adm/email?display='.$messages[$counter+1]->[5].$sqs.'">' |
} |
.&mt('Next') |
$r->print('</tr></table>'); |
.'</a>' |
|
.$li_end; |
|
} |
|
# Print functions |
|
$r->print('<div class="LC_left_float">' |
|
.'<fieldset>' |
|
.'<legend><span class="LC_mail_functions">' |
|
.&mt('Functions') |
|
.'</span></legend>' |
|
.$functionlist |
|
.'</fieldset>' |
|
.'</div>' |
|
); |
|
|
|
# Prepare available actions |
my $symb; |
my $symb; |
if (defined($content{'symb'})) { |
if (defined($content{'symb'})) { |
$symb = $content{'symb'}; |
$symb = $content{'symb'}; |
Line 2293 sub displaymessage {
|
Line 2330 sub displaymessage {
|
} |
} |
if ($env{'user.adv'}) { |
if ($env{'user.adv'}) { |
my $actionlist=''; |
my $actionlist=''; |
|
|
if (&Apache::lonnet::allowed('vgr',$env{'request.course.id'})) { |
if (&Apache::lonnet::allowed('vgr',$env{'request.course.id'})) { |
$actionlist.='<td><b>' |
$actionlist.=$li_start |
.&Apache::loncommon::track_student_link( |
.&Apache::loncommon::track_student_link( |
&mt('View recent activity'),$content{'sendername'},$content{'senderdomain'},'check') |
&mt('View recent activity'),$content{'sendername'},$content{'senderdomain'},'check') |
.'</b></td>'; |
.$li_end; |
} |
} |
if (&Apache::lonnet::allowed('opa',$env{'request.course.id'}) && $symb) { |
if (&Apache::lonnet::allowed('opa',$env{'request.course.id'}) && $symb) { |
$actionlist.='<td><b>' |
$actionlist.=$li_start |
.&Apache::loncommon::pprmlink( |
.&Apache::loncommon::pprmlink( |
&mt('Set/Change parameters'),$content{'sendername'},$content{'senderdomain'},$symb,'check') |
&mt('Set/Change parameters'),$content{'sendername'},$content{'senderdomain'},$symb,'check') |
.'</b></td>'; |
.$li_end; |
} |
} |
if (&Apache::lonnet::allowed('mgr',$env{'request.course.id'}) && $symb) { |
if (&Apache::lonnet::allowed('mgr',$env{'request.course.id'}) && $symb) { |
$actionlist.='<td><b>' |
$actionlist.=$li_start |
.&Apache::loncommon::pgrdlink( |
.&Apache::loncommon::pgrdlink( |
&mt('Set/Change grades'),$content{'sendername'},$content{'senderdomain'},$symb,'check') |
&mt('Set/Change grades'),$content{'sendername'},$content{'senderdomain'},$symb,'check') |
.'</b></td>'; |
.$li_end; |
} |
} |
|
|
|
# Print actions |
if ($actionlist) { |
if ($actionlist) { |
$r->print('<table border="2" width="100%">' |
$r->print('<div class="LC_left_float">' |
.'<tr bgcolor="#FFAAAA"><td>' |
.'<fieldset>' |
.&mt('Currently available actions (will open extra window):') |
.'<legend>' |
.'</td>' |
.&mt('[_1]Currently available actions[_2] (will open extra window):','<span class="LC_mail_functions">','</span>') |
|
.'</legend>' |
.$actionlist |
.$actionlist |
.'</tr></table>'); |
.'</fieldset>' |
|
.'</div>' |
|
); |
} |
} |
} |
} |
|
|
my ($tonum,$tolist,$cclist,$bcclist,$groupcclist,%recipients); |
my ($tonum,$tolist,$cclist,$bcclist,$groupcclist,%recipients); |
if ($content{'recipid'}) { |
if ($content{'recipid'}) { |
$tonum = &retrieve_recips('display',\%content,\%recipients); |
$tonum = &retrieve_recips('display',\%content,\%recipients); |
Line 2355 sub displaymessage {
|
Line 2399 sub displaymessage {
|
if (defined($content{'baseurl'})) { |
if (defined($content{'baseurl'})) { |
$baseurl = &Apache::lonenc::check_encrypt($content{'baseurl'}); |
$baseurl = &Apache::lonenc::check_encrypt($content{'baseurl'}); |
} |
} |
|
$r->print('<div class="LC_clear_float_footer">'); |
if ($from_student && $see_anonymous ) { |
if ($from_student && $see_anonymous ) { |
$r->print(&Apache::loncommon::student_image_tag($content{'senderdomain'},$content{'sendername'})); |
$r->print(&Apache::loncommon::student_image_tag($content{'senderdomain'},$content{'sendername'}).'</br>'); |
} |
} |
|
|
my $broadcast_link; |
my $broadcast_link; |
Line 2369 sub displaymessage {
|
Line 2414 sub displaymessage {
|
|
|
# Display LON-CAPA Message (Start) |
# Display LON-CAPA Message (Start) |
# Subject |
# Subject |
$r->print('<br />' |
$r->print('</div>' |
.&Apache::lonhtmlcommon::start_pick_box() |
.&Apache::lonhtmlcommon::start_pick_box() |
.&Apache::lonhtmlcommon::row_title(&mt('Subject')) |
.&Apache::lonhtmlcommon::row_title(&mt('Subject')) |
.$content{'subject'} |
.$content{'subject'} |