version 1.17, 2006/04/23 04:04:38
|
version 1.23, 2006/07/29 00:48:21
|
Line 34 use Apache::lonlocal;
|
Line 34 use Apache::lonlocal;
|
use Mail::Send; |
use Mail::Send; |
use HTML::TokeParser; |
use HTML::TokeParser; |
use HTML::Entities; |
use HTML::Entities; |
|
use lib '/home/httpd/lib/perl/'; |
|
use LONCAPA; |
|
|
sub handler { |
sub handler { |
my ($r) = @_; |
my ($r) = @_; |
Line 57 sub handler {
|
Line 59 sub handler {
|
|
|
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
|
|
my $function = &Apache::loncommon::get_users_function(); |
|
my $tablecolor = &Apache::loncommon::designparm($function.'.tabbg'); |
|
|
|
&Apache::lonhtmlcommon::add_breadcrumb |
&Apache::lonhtmlcommon::add_breadcrumb |
({href=>'/adm/notify', |
({href=>'/adm/notify', |
text=>"Broadcast E-mail"}); |
text=>"Broadcast E-mail"}); |
if ($command eq 'process') { |
if ($command eq 'process') { |
&print_request_receipt($r,$command,$cdom,$tablecolor); |
&print_request_receipt($r,$command,$cdom); |
} elsif ($command eq 'compose') { |
} elsif ($command eq 'compose') { |
&print_composition_form($r,$command,$cdom,$tablecolor); |
&print_composition_form($r,$command,$cdom); |
} elsif ($command eq 'pick_target') { |
} elsif ($command eq 'pick_target') { |
&print_selection_form($r,$command,$cdom,$tablecolor); |
&print_selection_form($r,$command,$cdom); |
} elsif ($command eq 'pick_display') { |
} elsif ($command eq 'pick_display') { |
&print_display_option_form($r,$command,$cdom,$tablecolor); |
&print_display_option_form($r,$command,$cdom); |
} elsif ($command eq 'display') { |
} elsif ($command eq 'display') { |
&print_display($r,$command,$cdom,$tablecolor); |
&print_display($r,$command,$cdom); |
} else { |
} else { |
&print_front_page($r,'front',$cdom,$tablecolor); |
&print_front_page($r,'front',$cdom); |
} |
} |
return OK; |
return OK; |
} |
} |
Line 109 sub start_page {
|
Line 108 sub start_page {
|
{'add_entries' => |
{'add_entries' => |
{'onload' => $loadcode,},}); |
{'onload' => $loadcode,},}); |
my $breadcrumbs = |
my $breadcrumbs = |
&Apache::lonhtmlcommon::breadcrumbs(undef,$bread_title, |
&Apache::lonhtmlcommon::breadcrumbs($bread_title, |
'Broadcast_system_email'); |
'Broadcast_system_email'); |
my $output = <<"ENDONE"; |
my $output = <<"ENDONE"; |
$start_page |
$start_page |
Line 126 sub end_page {
|
Line 125 sub end_page {
|
} |
} |
|
|
sub print_front_page { |
sub print_front_page { |
my ($r,$formname,$cdom,$tablecolor) = @_; |
my ($r,$formname,$cdom) = @_; |
|
|
my $jscript = qq| |
my $jscript = qq| |
function next_page(caller) { |
function next_page(caller) { |
Line 144 function next_page(caller) {
|
Line 143 function next_page(caller) {
|
'Broadcast e-mail to Domain', $formname); |
'Broadcast e-mail to Domain', $formname); |
|
|
$output .= '<input type="hidden" name="command" />'; |
$output .= '<input type="hidden" name="command" />'; |
$output .= &Apache::lonhtmlcommon::start_pick_box(); |
$output .= '<table class="LC_notify_front_page">'. |
$output .= '<table cellspacing="8" cellpadding="8">'. |
|
'<tr><td><a href="javascript:next_page('."'new'".')">'. |
'<tr><td><a href="javascript:next_page('."'new'".')">'. |
'Send a new e-mail message to selected users from this domain</a></td></tr><tr>'. |
'Send a new e-mail message to selected users from this domain</a></td></tr><tr>'. |
'<td><a href="javascript:next_page('."'view'".')">'. |
'<td><a href="javascript:next_page('."'view'".')">'. |
'Display e-mail sent by Domain Coordinators in this domain'. |
'Display e-mail sent by Domain Coordinators in this domain'. |
'</a></td></tr></table>'; |
'</a></td></tr></table>'; |
$output .= &Apache::lonhtmlcommon::end_pick_box(); |
|
$output .= &end_page(); |
$output .= &end_page(); |
|
|
$r->print($output); |
$r->print($output); |
Line 159 function next_page(caller) {
|
Line 156 function next_page(caller) {
|
} |
} |
|
|
sub print_display_option_form { |
sub print_display_option_form { |
my ($r,$formname,$cdom,$tablecolor) = @_; |
my ($r,$formname,$cdom) = @_; |
&Apache::lonhtmlcommon::add_breadcrumb({text=>"Display options"}); |
&Apache::lonhtmlcommon::add_breadcrumb({text=>"Display options"}); |
|
|
my $table_width = ''; |
|
my $col_width = '200'; |
|
my $cmd = 'display'; |
my $cmd = 'display'; |
my $submit_text = 'Display e-mail'; |
my $submit_text = 'Display e-mail'; |
my @roles = ('dc'); |
my @roles = ('dc'); |
Line 195 sub print_display_option_form {
|
Line 190 sub print_display_option_form {
|
my $output = &start_page(&add_script($jscript), |
my $output = &start_page(&add_script($jscript), |
'Broadcast e-mail display options', $formname); |
'Broadcast e-mail display options', $formname); |
|
|
$output .= &Apache::lonhtmlcommon::start_pick_box($table_width); |
$output .= &Apache::lonhtmlcommon::start_pick_box(); |
$output .= &Apache::lonhtmlcommon::row_title($col_width,$tablecolor,&mt('Date range')); |
$output .= &Apache::lonhtmlcommon::row_title(&mt('Date range')); |
$output .= '<td><table><tr><td>Earliest to display: </td><td>'. |
$output .= '<table><tr><td>'.&mt('Earliest to display:').' </td><td>'. |
$startdateform.'</td></tr>'; |
$startdateform.'</td></tr>'; |
$output .= '<tr><td>Latest to display: </td><td>'.$enddateform. |
$output .= '<tr><td>'.&mt('Latest to display:').' </td><td>'.$enddateform. |
'</td></tr></table></td>'; |
'</td></tr></table>'; |
$output .= &Apache::lonhtmlcommon::row_closure(); |
$output .= &Apache::lonhtmlcommon::row_closure(); |
$output .= &Apache::lonhtmlcommon::row_title($col_width,$tablecolor,&mt('Choose sender(s)')); |
$output .= &Apache::lonhtmlcommon::row_title(&mt('Choose sender(s)')); |
my %personnel = &Apache::lonnet::get_domain_roles($cdom,\@roles); |
my %personnel = &Apache::lonnet::get_domain_roles($cdom,\@roles); |
$output .= '<td>'; |
|
my @domcc = (); |
my @domcc = (); |
foreach my $server (keys %personnel) { |
foreach my $server (keys %personnel) { |
foreach my $user (sort(keys %{$personnel{$server}})) { |
foreach my $user (sort(keys %{$personnel{$server}})) { |
Line 216 sub print_display_option_form {
|
Line 210 sub print_display_option_form {
|
} |
} |
} |
} |
} |
} |
$output .= '</td>'; |
|
$output .= &Apache::lonhtmlcommon::row_closure(); |
$output .= &Apache::lonhtmlcommon::row_closure(); |
$output .= &Apache::lonhtmlcommon::submit_row($col_width,$tablecolor,&mt('Submit'),$cmd,$submit_text); |
$output .= &Apache::lonhtmlcommon::submit_row(&mt('Submit'),$cmd,$submit_text); |
$output .= &Apache::lonhtmlcommon::end_pick_box(); |
$output .= &Apache::lonhtmlcommon::end_pick_box(); |
$output .= qq(<input type="hidden" name="sortby" value="date" />\n). |
$output .= qq(<input type="hidden" name="sortby" value="date" />\n). |
&end_page(); |
&end_page(); |
Line 227 sub print_display_option_form {
|
Line 220 sub print_display_option_form {
|
} |
} |
|
|
sub print_display { |
sub print_display { |
my ($r,$formname,$cdom,$tablecolor) = @_; |
my ($r,$formname,$cdom) = @_; |
&Apache::lonhtmlcommon::add_breadcrumb |
&Apache::lonhtmlcommon::add_breadcrumb |
({href=>"javascript:goBack('pick_display')", |
({href=>"javascript:goBack('pick_display')", |
text=>"Display options"}, |
text=>"Display options"}, |
{text=>"E-mail display"}); |
{text=>"E-mail display"}); |
|
|
my $table_width = ''; |
|
my $col_width = '200'; |
|
my $rowColor1 = "#ffffff"; |
|
my $rowColor2 = "#eeeeee"; |
|
my $rowColor; |
|
my $msgcount = 0; |
my $msgcount = 0; |
my $start = &Apache::lonhtmlcommon::get_date_from_form('startdate'); |
my $start = &Apache::lonhtmlcommon::get_date_from_form('startdate'); |
my $end = &Apache::lonhtmlcommon::get_date_from_form('enddate'); |
my $end = &Apache::lonhtmlcommon::get_date_from_form('enddate'); |
Line 275 ENDSCRIPT
|
Line 263 ENDSCRIPT
|
} |
} |
} |
} |
} |
} |
$output .= &Apache::lonhtmlcommon::start_pick_box(); |
$output .= &Apache::loncommon::start_data_table(); |
if ($msgcount > 0) { |
if ($msgcount > 0) { |
my $rowNum = 0; |
$output .= &Apache::loncommon::start_data_table_header_row(). |
$output .= '<tr><td><table cellpadding="4" cellspacing="2" width="100%"> |
'<th><a href="javascript:changeSort(\'date\')">Date</a></th>'. |
<tr bgcolor="'.$tablecolor.'" align="center"> |
'<th><a href="javascript:changeSort(\'subject\')">Subject</a></th>'. |
<td><b><a href="javascript:changeSort('."'date'".')">Date</a></b></td> |
'<th><a href="javascript:changeSort(\'sender\')">Sender</a></th>'. |
<td><b><a href="javascript:changeSort('."'subject'".')">Subject</a></b></td> |
'<th><a href="javascript:changeSort(\'message\')">Message</a></th>'. |
<td><b><a href="javascript:changeSort('."'sender'".')">Sender</a></b></td> |
'<th><a href="javascript:changeSort(\'recipients\')">Recipients</a></th>'. |
<td><b><a href="javascript:changeSort('."'message'".')">Message</a></b></td> |
&Apache::loncommon::end_data_table_header_row(); |
<td><b><a href="javascript:changeSort('."'recipients'".')">Recipients</a></b></td> |
|
</tr>'; |
|
if (($env{'form.sortby'} eq 'date') || ($env{'form.sortby'} eq '') || (!defined($env{'form.sortby'})) || (($env{'form.sortby'} eq 'sender') && (@senders <= 1))) { |
if (($env{'form.sortby'} eq 'date') || ($env{'form.sortby'} eq '') || (!defined($env{'form.sortby'})) || (($env{'form.sortby'} eq 'sender') && (@senders <= 1))) { |
foreach my $msgid (sort(keys(%dcmail))) { |
foreach my $msgid (sort(keys(%dcmail))) { |
if ($rowNum %2 == 1) { |
|
$rowColor = $rowColor1; |
|
} else { |
|
$rowColor = $rowColor2; |
|
} |
|
my $recipients = ''; |
my $recipients = ''; |
my ($date,undef,$sname,$sdom) = |
my ($date,undef,$sname,$sdom) = |
&Apache::lonmsg::unpackmsgid($msgid,undef,1); |
&Apache::lonmsg::unpackmsgid($msgid,undef,1); |
Line 301 ENDSCRIPT
|
Line 283 ENDSCRIPT
|
$recipients .= $dcmail{$msgid}{recipient}{$user}.', '; |
$recipients .= $dcmail{$msgid}{recipient}{$user}.', '; |
} |
} |
$recipients =~ s/,\s$//; |
$recipients =~ s/,\s$//; |
$output .= '<tr bgcolor="'.$rowColor.'"><td><small>'.$date.'</small></td><td><small>'.&cr_to_br($dcmail{$msgid}{subject}).'</small></td><td><small>'.$sname.':'.$sdom.'</small></td><td><small>'.&cr_to_br($dcmail{$msgid}{message}).'</small></td><td><small>'.$recipients.'</small></td></tr>'."\n"; |
$output .= &Apache::loncommon::start_data_table_row(). |
$rowNum ++; |
'<td><small>'.$date.'</small></td>'. |
|
'<td><small>'.&cr_to_br($dcmail{$msgid}{subject}).'</small></td>'. |
|
'<td><small>'.$sname.':'.$sdom.'</small></td><td><small>'.&cr_to_br($dcmail{$msgid}{message}).'</small></td>'. |
|
'<td><small>'.$recipients.'</small></td>'."\n". |
|
&Apache::loncommon::end_data_table_row(); |
} |
} |
} else { |
} else { |
foreach my $msgid (sort(keys(%dcmail))) { |
foreach my $msgid (sort(keys(%dcmail))) { |
Line 327 ENDSCRIPT
|
Line 313 ENDSCRIPT
|
} |
} |
foreach my $key (sort(keys(%Sortby))) { |
foreach my $key (sort(keys(%Sortby))) { |
foreach my $msgid (@{$Sortby{$key}}) { |
foreach my $msgid (@{$Sortby{$key}}) { |
if ($rowNum %2 == 1) { |
|
$rowColor = $rowColor1; |
|
} else { |
|
$rowColor = $rowColor2; |
|
} |
|
my $recipients = ''; |
my $recipients = ''; |
if ($env{'form.sortby'} eq 'recipients') { |
if ($env{'form.sortby'} eq 'recipients') { |
$recipients = $key; |
$recipients = $key; |
Line 344 ENDSCRIPT
|
Line 325 ENDSCRIPT
|
my ($date,undef,$sname,$sdom) = |
my ($date,undef,$sname,$sdom) = |
&Apache::lonmsg::unpackmsgid($msgid,undef,1); |
&Apache::lonmsg::unpackmsgid($msgid,undef,1); |
$date = &Apache::lonlocal::locallocaltime($date); |
$date = &Apache::lonlocal::locallocaltime($date); |
$output .= '<tr bgcolor="'.$rowColor.'"><td><small>'.$date.'</small></td><td><small>'.&cr_to_br($dcmail{$msgid}{subject}).'</small></td><td><small>'.$sname.':'.$sdom.'</small></td><td><small>'.&cr_to_br($dcmail{$msgid}{message}).'</small></td><td><small>'.$recipients.'</small></td></tr>'."\n"; |
$output .= &Apache::loncommon::start_data_table_row(). |
$rowNum ++; |
'<td><small>'.$date.'</small></td>'. |
|
'<td><small>'.&cr_to_br($dcmail{$msgid}{subject}).'</small></td>'. |
|
'<td><small>'.$sname.':'.$sdom.'</small></td>'. |
|
'<td><small>'.&cr_to_br($dcmail{$msgid}{message}).'</small></td>'. |
|
'<td><small>'.$recipients.'</small></td>'."\n". |
|
&Apache::loncommon::end_data_table_row(); |
} |
} |
} |
} |
} |
} |
$output .= '</table></td></tr>'; |
|
} else { |
} else { |
$output .= '<tr bgcolor="#ffffff"><td> </td><td><br><center><i><b><small> No mail sent matching supplied criteria </small><br><br></b></i></td><td> </td></tr>'; |
$output .= &Apache::loncommon::start_data_table_empty_row(). |
|
'<td>No mail sent matching supplied criteria</td>'. |
|
&Apache::loncommon::end_data_table_empty_row(); |
} |
} |
$output .= &Apache::lonhtmlcommon::end_pick_box(); |
$output .= &Apache::loncommon::end_data_table(); |
$output .= &Apache::lonhtmlcommon::echo_form_input(['sortby','command','origin']); |
$output .= &Apache::lonhtmlcommon::echo_form_input(['sortby','command','origin']); |
my $curr_sortby; |
my $curr_sortby; |
if (defined($env{'form.sortby'})) { |
if (defined($env{'form.sortby'})) { |
Line 370 ENDSCRIPT
|
Line 357 ENDSCRIPT
|
} |
} |
|
|
sub print_selection_form { |
sub print_selection_form { |
my ($r,$formname,$cdom,$tablecolor) = @_; |
my ($r,$formname,$cdom) = @_; |
my %coursecodes = (); |
my %coursecodes = (); |
my %codes = (); |
my %codes = (); |
my @codetitles = (); |
my @codetitles = (); |
Line 383 sub print_selection_form {
|
Line 370 sub print_selection_form {
|
my $totcodes = 0; |
my $totcodes = 0; |
my $format_reply; |
my $format_reply; |
my $jscript = ''; |
my $jscript = ''; |
my $table_width = '100%'; |
|
my $col_width = '200'; |
|
my %lt=&Apache::lonlocal::texthash( |
my %lt=&Apache::lonlocal::texthash( |
'buil' => 'Building valid e-mail address from username, if missing from preferences:', |
'buil' => 'Building valid e-mail address from username, if missing from preferences:', |
'kerb' => 'Kerberos: enter default for each realm used in the domain, with comma separation of entries', |
'kerb' => 'Kerberos: enter default for each realm used in the domain, with comma separation of entries', |
Line 458 function setCourseCat(formname) {
|
Line 443 function setCourseCat(formname) {
|
my $output = &start_page(&add_script($jscript).$cb_jscript, |
my $output = &start_page(&add_script($jscript).$cb_jscript, |
'Choose e-mail audience', $formname); |
'Choose e-mail audience', $formname); |
|
|
$output .= &Apache::lonhtmlcommon::start_pick_box($table_width); |
$output .= &Apache::lonhtmlcommon::start_pick_box(); |
my @roles = ('ow','cc','in','ta','ep','st','cr'); |
my @roles = ('ow','cc','in','ta','ep','st','cr'); |
my %longtypes = (); |
my %longtypes = (); |
my %authtypes = (); |
my %authtypes = (); |
Line 470 function setCourseCat(formname) {
|
Line 455 function setCourseCat(formname) {
|
</ul>'."\n"; |
</ul>'."\n"; |
my $submit_text = $lt{'comp'}; |
my $submit_text = $lt{'comp'}; |
my $cmd = 'compose'; |
my $cmd = 'compose'; |
$output .= &Apache::lonhtmlcommon::role_select_row(\@roles,$col_width,$tablecolor,'Roles'); |
$output .= &Apache::lonhtmlcommon::role_select_row(\@roles,'Roles'); |
$output .= &Apache::lonhtmlcommon::course_select_row($col_width,$tablecolor,'Courses',$formname,$totcodes,\@codetitles,\%idlist,\%idlist_titles); |
$output .= &Apache::lonhtmlcommon::course_select_row('Courses',$formname,$totcodes,\@codetitles,\%idlist,\%idlist_titles); |
$output .= &Apache::lonhtmlcommon::status_select_row(\%longtypes,$col_width,$tablecolor,&mt('Access status')); |
$output .= &Apache::lonhtmlcommon::status_select_row(\%longtypes,&mt('Access status')); |
$output .= &Apache::lonhtmlcommon::email_default_row(\%authtypes,$col_width,$tablecolor,&mt('Username -> Email conversion'),$descrip); |
$output .= &Apache::lonhtmlcommon::email_default_row(\%authtypes,&mt('Username -> Email conversion'),$descrip); |
$output .= &Apache::lonhtmlcommon::submit_row($col_width,$tablecolor,&mt('Submit'),$cmd,$submit_text); |
$output .= &Apache::lonhtmlcommon::submit_row(&mt('Submit'),$cmd,$submit_text); |
$output .= &Apache::lonhtmlcommon::end_pick_box(); |
$output .= &Apache::lonhtmlcommon::end_pick_box(); |
$output .= &end_page(); |
$output .= &end_page(); |
$r->print($output); |
$r->print($output); |
Line 482 function setCourseCat(formname) {
|
Line 467 function setCourseCat(formname) {
|
} |
} |
|
|
sub print_composition_form { |
sub print_composition_form { |
my ($r,$formname,$cdom,$tablecolor) = @_; |
my ($r,$formname,$cdom) = @_; |
&Apache::lonhtmlcommon::add_breadcrumb |
&Apache::lonhtmlcommon::add_breadcrumb |
({href=>"javascript:goBack('pick_target')", |
({href=>"javascript:goBack('pick_target')", |
text=>"Select Audience"}, |
text=>"Select Audience"}, |
Line 513 function goBack(target) {
|
Line 498 function goBack(target) {
|
my $coursefilter = $env{'form.coursepick'}; |
my $coursefilter = $env{'form.coursepick'}; |
my %courses = (); |
my %courses = (); |
if ($coursefilter eq 'all') { |
if ($coursefilter eq 'all') { |
%courses = &Apache::lonnet::courseiddump($cdom,'.','.','.','.','.'); |
%courses = &Apache::lonnet::courseiddump($cdom,'.','.','.','.','.', |
|
undef,undef,'Course'); |
} elsif ($coursefilter eq 'category') { |
} elsif ($coursefilter eq 'category') { |
my $instcode = ''; |
my $instcode = ''; |
my @cats = ('Semester','Year','Department','Number'); |
my @cats = ('Semester','Year','Department','Number'); |
Line 527 function goBack(target) {
|
Line 513 function goBack(target) {
|
if ($instcode eq '') { |
if ($instcode eq '') { |
$instcode = '.'; |
$instcode = '.'; |
} |
} |
%courses = &Apache::lonnet::courseiddump($cdom,'.','.',$instcode,'.','.'); |
%courses = &Apache::lonnet::courseiddump($cdom,'.','.',$instcode,'.','.', |
|
undef,undef,'Course'); |
} elsif ($coursefilter eq 'specific') { |
} elsif ($coursefilter eq 'specific') { |
if ($env{'form.coursetotal'} > 1) { |
if ($env{'form.coursetotal'} > 1) { |
my @course_ids = split(/&&/,$env{'form.courselist'}); |
my @course_ids = split(/&&/,$env{'form.courselist'}); |
Line 545 function goBack(target) {
|
Line 532 function goBack(target) {
|
my %longtypes = (); |
my %longtypes = (); |
my %authtypes = (); |
my %authtypes = (); |
my %email_defaults = (); |
my %email_defaults = (); |
my $table_width = '100%'; |
|
my $col_width = '200'; |
|
|
|
&form_elements(\%longtypes,\%authtypes); |
&form_elements(\%longtypes,\%authtypes); |
foreach my $auth (keys(%authtypes)) { |
foreach my $auth (keys(%authtypes)) { |
Line 605 function goBack(target) {
|
Line 590 function goBack(target) {
|
my $output; |
my $output; |
|
|
if ($totalrecip > 0) { |
if ($totalrecip > 0) { |
$output .= &Apache::lonhtmlcommon::start_pick_box($table_width); |
$output .= &Apache::lonhtmlcommon::start_pick_box(); |
$output .= &Apache::lonhtmlcommon::row_title($col_width,$tablecolor,&mt('Subject')); |
$output .= &Apache::lonhtmlcommon::row_title(&mt('Subject')); |
$output .= ' <td><input type="text" name="subject" size="30" /></td>'; |
$output .= '<input type="text" name="subject" size="30" />'; |
$output .= &Apache::lonhtmlcommon::row_closure(); |
$output .= &Apache::lonhtmlcommon::row_closure(); |
$output .= &Apache::lonhtmlcommon::row_title($col_width,$tablecolor,&mt('Message')); |
$output .= &Apache::lonhtmlcommon::row_title(&mt('Message')); |
$output .= ' <td><textarea name="message" id="message" |
$output .= ' <textarea name="message" id="message" |
cols="60" rows="10" wrap="hard"></textarea></td>'; |
cols="60" rows="10" wrap="hard"></textarea>'; |
$output .= &Apache::lonhtmlcommon::row_closure(); |
$output .= &Apache::lonhtmlcommon::row_closure(); |
$output .= &Apache::lonhtmlcommon::row_title($col_width,$tablecolor,&mt('Recipients')); |
$output .= &Apache::lonhtmlcommon::row_title(&mt('Recipients')); |
$output .= '<td><input type="button" value="check all" |
$output .= '<input type="button" value="check all" |
onclick="javascript:checkAll(document.compose.recipient)" /> |
onclick="javascript:checkAll(document.compose.recipient)" /> |
<input type="button" value="uncheck all" |
<input type="button" value="uncheck all" |
onclick="javascript:uncheckAll(document.compose.recipient)" /> |
onclick="javascript:uncheckAll(document.compose.recipient)" /> |
<br /><table border="0">'; |
<br />'; |
|
$output .= &Apache::loncommon::start_data_table(); |
if (keys(%recipients) > 0) { |
if (keys(%recipients) > 0) { |
$output .= '<tr><td> </td><td><small><b>username:domain</b></small></td><td> </td><td><small><b>'.$lt{'emad'}.'</b></small></td></tr>'; |
$output .= &Apache::loncommon::start_data_table_header_row(); |
|
$output .= '<th> <th>username:domain</th><th>'.$lt{'emad'}.'</th>'; |
|
$output .= &Apache::loncommon::end_data_table_header_row(); |
} |
} |
foreach my $username (sort(keys(%recipients))) { |
foreach my $username (sort(keys(%recipients))) { |
|
$output .= &Apache::loncommon::start_data_table_row(); |
if ($recipients{$username} =~ /\@/) { |
if ($recipients{$username} =~ /\@/) { |
my $value=&Apache::lonnet::escape($username).':'.&Apache::lonnet::escape($recipients{$username}); |
my $value=&escape($username).':'.&escape($recipients{$username}); |
$output .= '<tr><td><input type="checkbox" name="recipient" value="'.$value.'" /></td><td>'.$username.'</td><td> </td><td>'.$recipients{$username}.'</td></tr>'; |
$output .= '<td><input type="checkbox" name="recipient" value="'.$value.'" /></td><td>'.$username.'</td><td>'.$recipients{$username}.'</td>'; |
} |
} |
|
$output .= &Apache::loncommon::end_data_table_row(); |
} |
} |
$output .= '</table>'; |
$output .= &Apache::loncommon::end_data_table(); |
if (@unmatched) { |
if (@unmatched) { |
$output .= '<br /><br />'.&mt('Could not determine e-mail addresses for the following users:').'<ul>'; |
$output .= '<br /><br />'.&mt('Could not determine e-mail addresses for the following users:').'<ul>'; |
foreach my $username (sort @unmatched) { |
foreach my $username (sort @unmatched) { |
Line 636 function goBack(target) {
|
Line 626 function goBack(target) {
|
} |
} |
$output .= '</ul>'; |
$output .= '</ul>'; |
} |
} |
$output .= '</td>'; |
|
$output .= &Apache::lonhtmlcommon::row_closure(); |
$output .= &Apache::lonhtmlcommon::row_closure(); |
$output .= &Apache::lonhtmlcommon::row_title($col_width,$tablecolor,&mt('Sender e-mail address')); |
$output .= &Apache::lonhtmlcommon::row_title(&mt('Sender e-mail address')); |
$output .= '<td><input type="text" name="sender" value="'.$sender.'" /></td>'; |
$output .= '<input type="text" name="sender" value="'.$sender.'" />'; |
$output .= &Apache::lonhtmlcommon::row_closure(); |
$output .= &Apache::lonhtmlcommon::row_closure(); |
$output .= &Apache::lonhtmlcommon::submit_row($col_width,$tablecolor,&mt('Submit'),'process',&mt('Send Message')); |
$output .= &Apache::lonhtmlcommon::submit_row(&mt('Submit'),'process',&mt('Send Message')); |
$output .= &Apache::lonhtmlcommon::end_pick_box(); |
$output .= &Apache::lonhtmlcommon::end_pick_box(); |
} else { |
} else { |
$output .= $lt{'nore'}."\n". |
$output .= $lt{'nore'}."\n". |
Line 656 function goBack(target) {
|
Line 645 function goBack(target) {
|
|
|
|
|
sub print_request_receipt { |
sub print_request_receipt { |
my ($r,$formname,$dom,$tablecolor) =@_; |
my ($r,$formname,$dom) =@_; |
my @recipients = &Apache::loncommon::get_env_multiple('form.recipient'); |
my @recipients = &Apache::loncommon::get_env_multiple('form.recipient'); |
my $subject = $env{'form.subject'}; |
my $subject = $env{'form.subject'}; |
my $message = $env{'form.message'}; |
my $message = $env{'form.message'}; |
Line 682 ENDSCRIPT
|
Line 671 ENDSCRIPT
|
my $output = &start_page(&add_script($jscript), 'E-mail Delivery', |
my $output = &start_page(&add_script($jscript), 'E-mail Delivery', |
$formname); |
$formname); |
|
|
$output .= &Apache::lonhtmlcommon::start_pick_box(); |
|
my @deliveries = (); |
my @deliveries = (); |
&broadcast_email(\@recipients,$subject,$from,$message,\@deliveries); |
&broadcast_email(\@recipients,$subject,$from,$message,\@deliveries); |
if (@deliveries > 0) { |
if (@deliveries > 0) { |
|
$output .= &Apache::loncommon::start_data_table(); |
&store_mail($subject,$message,$dom,\@deliveries); |
&store_mail($subject,$message,$dom,\@deliveries); |
$output .= '<tr> |
$output .= &Apache::loncommon::start_data_table_header_row(). |
<td> |
'<th>'.&mt('Status').'</th>'. |
<table cellpadding="4" cellspacing="2" width="100%"> |
'<th>'.&mt('Subject').'</th>'. |
<tr bgcolor="'.$tablecolor.'" align="center"> |
'<th>'.&mt('Message').'</th>'. |
<td><b>Status</b></td> |
'<th>'.&mt('Recipents').'</th>'. |
<td><b>Subject</b></td> |
&Apache::loncommon::end_data_table_header_row(); |
<td><b>Message</b></td> |
$output .= &Apache::loncommon::start_data_table_row(). |
<td><b>Recipients</b></td> |
'<td valign="middle">'.&mt('Sent').'</td>'. |
</tr> |
'<td valign="middle">'.&cr_to_br($subject).'</td>'. |
<tr bgcolor="#eeeeee"> |
'<td valign="middle">'.&cr_to_br($message).'</td>'. |
<td valign="middle">Sent</td> |
'<td>'; |
<td valign="middle">'.&cr_to_br($subject).'</td> |
|
<td valign="middle">'.&cr_to_br($message).'</td> |
|
<td>'; |
|
foreach my $person (@deliveries) { |
foreach my $person (@deliveries) { |
my ($username,$email) = split(/:/,$person); |
my ($username,$email) = split(/:/,$person); |
$output .= &Apache::lonnet::unescape($email).' ('.&Apache::lonnet::unescape($username).')<br />'."\n"; |
$output .= &unescape($email).' ('.&unescape($username).')<br />'."\n"; |
} |
} |
$output .= '</td> |
$output .= '</td>'. |
</tr> |
&Apache::loncommon::end_data_table_row(). |
</table> |
&Apache::loncommon::end_data_table(); |
</td> |
|
</tr>'; |
|
} else { |
} else { |
$output .= 'No mail sent - no recipients identified'; |
$output .= 'No mail sent - no recipients identified'; |
} |
} |
$output .= &Apache::lonhtmlcommon::end_pick_box(); |
|
$output .= '<br /><a href="/adm/notify">Send another message?</a>'."\n"; |
$output .= '<br /><a href="/adm/notify">Send another message?</a>'."\n"; |
$output .= '<input type="hidden" name="command" />'."\n". |
$output .= '<input type="hidden" name="command" />'."\n". |
'<input type="hidden" name="origin" value="'.$formname.'" />'."\n"; |
'<input type="hidden" name="origin" value="'.$formname.'" />'."\n"; |
Line 729 sub broadcast_email {
|
Line 713 sub broadcast_email {
|
foreach my $user (@{$recipients}) { |
foreach my $user (@{$recipients}) { |
my $msg = new Mail::Send; |
my $msg = new Mail::Send; |
my ($username,$to) = split(/:/,$user); |
my ($username,$to) = split(/:/,$user); |
$username = &Apache::lonnet::unescape($username); |
$username = &unescape($username); |
$to = &Apache::lonnet::unescape($to); |
$to = &unescape($to); |
$msg->to($to); |
$msg->to($to); |
$msg->subject($subject); |
$msg->subject($subject); |
$msg->add('From',"$from"); |
$msg->add('From',"$from"); |