version 1.2, 2005/10/04 20:17:51
|
version 1.7, 2005/10/28 19:24:25
|
Line 151 sub print_display_option_form {
|
Line 151 sub print_display_option_form {
|
'enddate', |
'enddate', |
$now); |
$now); |
my $jscript; |
my $jscript; |
my %totals = (); |
|
my %personnel = (); |
|
my $output = <<"ENDONE"; |
my $output = <<"ENDONE"; |
$html |
$html |
<head> |
<head> |
Line 174 ENDONE
|
Line 172 ENDONE
|
'</td></tr></table></td>'; |
'</td></tr></table></td>'; |
$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($col_width,$tablecolor,&mt('Choose sender(s)')); |
# FIXME - need to complete work on domain_roles_get |
my %personnel = &Apache::lonnet::get_domain_roles($cdom,\@roles); |
# &Apache::lonnet::domain_roles_get($cdom,\@roles,\%personnel,%totals); |
|
$output .= '<td>'; |
$output .= '<td>'; |
if ($totals{'dc'} > 0) { |
my @domcc = (); |
foreach my $user (sort(keys(%{$personnel{'dc'}}))) { |
foreach my $server (keys %personnel) { |
my ($uname,$udom) = split(/:/,$user); |
foreach my $user (sort(keys %{$personnel{$server}})) { |
my %userinfo = &Apache::lonnet::get('environment',['lastname','firstname'],$udom,$uname); |
my ($trole,$uname,$udom,$runame,$rudom,$rsec) = split(/:/,$user); |
$output .= '<input type="checkbox" name="sender" value="'.$user.'" /> '.$userinfo{firstname}.' '.$userinfo{lastname}.' ('.$user.')'; |
unless (grep/^$uname:$udom$/,@domcc) { |
|
my %userinfo = &Apache::lonnet::get('environment',['lastname','firstname'],$udom,$uname); |
|
$output .= '<input type="checkbox" name="sender" value="'.$uname.':'.$udom.'" /> '.$userinfo{firstname}.' '.$userinfo{lastname}.' ('.$uname.':'.$udom.')'; |
|
push (@domcc,$uname.':'.$udom); |
|
} |
} |
} |
} |
} |
$output .= '</td>'; |
$output .= '</td>'; |
Line 215 sub print_display {
|
Line 216 sub print_display {
|
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'); |
my @senders = &Apache::loncommon::get_env_multiple('form.sender'); |
my @senders = &Apache::loncommon::get_env_multiple('form.sender'); |
my $senderlist = join('&',@senders); |
my %sentmail = &Apache::lonnet::dcmaildump($cdom,$start,$end,\@senders); |
my %sentmail = &Apache::lonnet::dcmaildump($cdom,$start,$end,$senderlist); |
|
my %dcmail = (); |
my %dcmail = (); |
my %Sortby = (); |
my %Sortby = (); |
my $jscript = <<"ENDSCRIPT"; |
my $jscript = <<"ENDSCRIPT"; |
Line 286 ENDONE
|
Line 286 ENDONE
|
$recipients .= $dcmail{$msgid}{recipients}{$user}.', '; |
$recipients .= $dcmail{$msgid}{recipients}{$user}.', '; |
} |
} |
$recipients =~ s/,\s$//; |
$recipients =~ s/,\s$//; |
$output .= '<tr bgcolor="'.$rowColor.'"><td><small>'.$date.'</small></td><td><small>'.$dcmail{$msgid}{subject}.'</small></td><td><small>'.$sname.':'.$sdom.'</small></td><td><small>'.$dcmail{$msgid}{message}.'</small></td><td><small>'.$recipients.'</small></td></tr>'."\n"; |
$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"; |
$rowNum ++; |
$rowNum ++; |
} |
} |
} else { |
} else { |
Line 325 ENDONE
|
Line 325 ENDONE
|
} |
} |
$recipients =~ s/,\s$//; |
$recipients =~ s/,\s$//; |
} |
} |
|
|
my ($date,$subj,$sname,$sdom,$cdom) = split(/:/,$msgid,5); |
my ($date,$subj,$sname,$sdom,$cdom) = split(/:/,$msgid,5); |
$date = &Apache::lonlocal::locallocaltime($date); |
$date = &Apache::lonlocal::locallocaltime($date); |
$output .= '<tr bgcolor="'.$rowColor.'"><td><small>'.$date.'</small></td><td><small>'.$dcmail{$msgid}{subject}.'</small></td><td><small>'.$sname.':'.$sdom.'</small></td><td><small>'.$dcmail{$msgid}{message}.'</small></td><td><small>'.$recipients.'</small></td></tr>'."\n"; |
$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"; |
$rowNum ++; |
$rowNum ++; |
} |
} |
} |
} |
Line 394 function initialize_codes() {
|
Line 395 function initialize_codes() {
|
|
|
my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs |
my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs |
(undef,'Choose e-mail audience','Broadcast_system_email'); |
(undef,'Choose e-mail audience','Broadcast_system_email'); |
my $cb_jscript = &Apache::loncommon::coursebrowser_javascript($cdom,$cdom); |
my $cb_jscript = &Apache::loncommon::coursebrowser_javascript($cdom); |
my $output = <<"ENDONE"; |
my $output = <<"ENDONE"; |
$html |
$html |
<head> |
<head> |
Line 410 $breadcrumbs
|
Line 411 $breadcrumbs
|
<form method="post" name="$formname"> |
<form method="post" name="$formname"> |
ENDONE |
ENDONE |
$output .= &Apache::lonhtmlcommon::start_pick_box($table_width); |
$output .= &Apache::lonhtmlcommon::start_pick_box($table_width); |
my @roles = ('cc','in','ta','ep','ad','st','cr'); |
my @roles = ('ow','cc','in','ta','ep','ad','st','cr'); |
my %longtypes = (); |
my %longtypes = (); |
my %authtypes = (); |
my %authtypes = (); |
&form_elements(\%longtypes,\%authtypes); |
&form_elements(\%longtypes,\%authtypes); |
Line 454 sub print_composition_form {
|
Line 455 sub print_composition_form {
|
$html |
$html |
<head> |
<head> |
<title>LON-CAPA $lt{'note'}</title> |
<title>LON-CAPA $lt{'note'}</title> |
<script type"text/javascript"> |
<script type="text/javascript"> |
$jscript |
$jscript |
</script> |
</script> |
</head> |
</head> |
Line 500 ENDONE
|
Line 501 ENDONE
|
my $col_width = '200'; |
my $col_width = '200'; |
|
|
&form_elements(\%longtypes,\%authtypes); |
&form_elements(\%longtypes,\%authtypes); |
foreach my $auth (%authtypes) { |
foreach my $auth (keys(%authtypes)) { |
if (exists($env{'form.'.$auth})) { |
if (exists($env{'form.'.$auth})) { |
my $default = $env{'form.'.$auth}; |
my $default = $env{'form.'.$auth}; |
$default =~ s/^,+//; |
$default =~ s/^,+//; |
Line 578 ENDONE
|
Line 579 ENDONE
|
$output .= '<tr><td><input type="checkbox" name="recipient" value="'.$value.'" checked="checked" /></td><td>'.$username.'</td><td> </td><td>'.$recipients{$username}.'</td></tr>'; |
$output .= '<tr><td><input type="checkbox" name="recipient" value="'.$value.'" checked="checked" /></td><td>'.$username.'</td><td> </td><td>'.$recipients{$username}.'</td></tr>'; |
} |
} |
} |
} |
$output .= '</table></td>'; |
$output .= '</table>'; |
|
if (@unmatched) { |
|
$output .= '<br /><br />'.&mt('Could not determine e-mail addresses for the following users:').'<ul>'; |
|
foreach my $username (sort @unmatched) { |
|
$output .= '<li>'.$username.'</li>'; |
|
} |
|
$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($col_width,$tablecolor,&mt('Sender e-mail address')); |
$output .= '<td><input type="text" name="sender" value="'.$sender.'" /></td>'; |
$output .= '<td><input type="text" name="sender" value="'.$sender.'" /></td>'; |
Line 635 ENDONE
|
Line 644 ENDONE
|
my @deliveries = (); |
my @deliveries = (); |
&broadcast_email(\@recipients,$subject,$from,$message,\@deliveries); |
&broadcast_email(\@recipients,$subject,$from,$message,\@deliveries); |
if (@deliveries > 0) { |
if (@deliveries > 0) { |
|
&store_mail($subject,$message,$dom,\@deliveries); |
$output .= '<tr> |
$output .= '<tr> |
<td> |
<td> |
<table cellpadding="4" cellspacing="2" width="100%"> |
<table cellpadding="4" cellspacing="2" width="100%"> |
Line 646 ENDONE
|
Line 656 ENDONE
|
</tr> |
</tr> |
<tr bgcolor="#eeeeee"> |
<tr bgcolor="#eeeeee"> |
<td valign="middle">Sent</td> |
<td valign="middle">Sent</td> |
<td valign="middle">'.$subject.'</td> |
<td valign="middle">'.&cr_to_br($subject).'</td> |
<td valign="middle">'.$message.'</td> |
<td valign="middle">'.&cr_to_br($message).'</td> |
<td>'; |
<td>'; |
foreach my $person (@deliveries) { |
foreach my $person (@deliveries) { |
my ($username,$email) = split(/:/,$person); |
my ($username,$email) = split(/:/,$person); |
Line 693 sub broadcast_email {
|
Line 703 sub broadcast_email {
|
} |
} |
|
|
sub get_user_info { |
sub get_user_info { |
my ($user,%email_defaults,$ltext) = @_; |
my ($user,%email_defaults) = @_; |
my ($uname,$udom) = split(/:/,$user); |
my ($uname,$udom) = split(/:/,$user); |
my %userinfo = &Apache::lonnet::get('environment',['permanenetemail','notification','critnotification',],$udom,$uname); |
|
my @emailtypes = ('permanentemail','critnotification','notification'); |
my @emailtypes = ('permanentemail','critnotification','notification'); |
|
my %userinfo = &Apache::lonnet::get('environment',\@emailtypes,$udom,$uname); |
my $email = ''; |
my $email = ''; |
foreach my $type (@emailtypes) { |
foreach my $type (@emailtypes) { |
$email = $userinfo{$type}; |
$email = $userinfo{$type}; |
Line 712 sub get_user_info {
|
Line 722 sub get_user_info {
|
$email = $uname.'@'.$email_defaults{$authtype}{$autharg}; |
$email = $uname.'@'.$email_defaults{$authtype}{$autharg}; |
} |
} |
} else { |
} else { |
if (defined($email_defaults{$authtype})) { |
if ((defined($email_defaults{$authtype})) && ($email_defaults{$authtype} ne '')) { |
$email = $uname.'@'.$email_defaults{$authtype}; |
$email = $uname.'@'.$email_defaults{$authtype}; |
} |
} |
} |
} |
Line 730 sub form_elements {
|
Line 740 sub form_elements {
|
%{$authtypes} = ( |
%{$authtypes} = ( |
krb4 => 'Kerberos 4', |
krb4 => 'Kerberos 4', |
krb5 => 'Kerberos 5', |
krb5 => 'Kerberos 5', |
int => 'Internal (LON-CAPA)', |
internal => 'Internal (LON-CAPA)', |
unix => 'Filesystem (UNIX)', |
unix => 'Filesystem (UNIX)', |
local => 'Local/Customized', |
local => 'Local/Customized', |
); |
); |
Line 739 sub form_elements {
|
Line 749 sub form_elements {
|
|
|
sub store_mail { |
sub store_mail { |
my ($subject,$message,$domain,$recipients,$attachmenturl,$ltext) = @_; |
my ($subject,$message,$domain,$recipients,$attachmenturl,$ltext) = @_; |
my %status = (); |
|
my %servers = (); |
my %servers = (); |
my $msgid=&packagemail($subject,$message,$domain, |
my $msgid=&packagemail($subject,$message,$domain, |
$recipients,\%servers,$attachmenturl); |
$recipients,\%servers,$attachmenturl); |
# Store in dc email db files on appropriate servers. |
# Store in dc email db files on appropriate servers. |
foreach my $server (keys(%servers)) { |
foreach my $server (keys(%servers)) { |
# FIXME This needs to be via a subroutine in lonnet |
unless (&Apache::lonnet::dcmailput($domain,$msgid,\%servers,$server) eq 'ok') { |
$status{$server} = &Apache::lonnet::critical( |
&Apache::lonnet::logthis('Storage of dc mail failed for domain'.$domain.' for server: '. |
'dcmailput:'.$domain.':'.&Apache::lonnet::escape($msgid).'='. |
$server.'. Message ID was '.$msgid); |
&Apache::lonnet::escape($servers{$server}),$server); |
} |
} |
} |
} |
} |
|
|
Line 811 sub unpackagemail {
|
Line 820 sub unpackagemail {
|
my $value=$parser->get_text('/'.$entry); |
my $value=$parser->get_text('/'.$entry); |
my ($username,$email); |
my ($username,$email); |
if ($entry eq 'recipient') { |
if ($entry eq 'recipient') { |
my $attr = $token->[2]; |
$username = $token->[2]{'username'}; |
$username = $$attr{'username'}; |
|
$username = &HTML::Entities::decode($username,'<>&"'); |
$username = &HTML::Entities::decode($username,'<>&"'); |
$content{recipients}{$username} = |
$content{recipients}{$username} = |
&HTML::Entities::decode($value,'<>&"'); |
&HTML::Entities::decode($value,'<>&"'); |
Line 856 sub echo_form_input {
|
Line 864 sub echo_form_input {
|
return $output; |
return $output; |
} |
} |
|
|
|
sub cr_to_br { |
|
my $incoming = shift; |
|
$incoming =~ s/\n/\<br \/\>/g; |
|
return $incoming; |
|
} |
|
|
|
|
1; |
1; |