--- loncom/interface/lonnotify.pm	2005/10/11 21:29:39	1.4
+++ loncom/interface/lonnotify.pm	2005/10/14 19:10:20	1.6
@@ -176,9 +176,7 @@ ENDONE
     $output .= '<td>';
     my @domcc = ();
     foreach my $server (keys %personnel) {
-        print STDERR "key level 1 is $server\n"; 
         foreach my $user (sort(keys %{$personnel{$server}})) {
-            print STDERR "key level 2 is $user\n";
             my ($trole,$uname,$udom,$runame,$rudom,$rsec) = split(/:/,$user);
             unless (grep/^$uname:$udom$/,@domcc) {
                 my %userinfo = &Apache::lonnet::get('environment',['lastname','firstname'],$udom,$uname);
@@ -218,8 +216,7 @@ sub print_display {
     my $start = &Apache::lonhtmlcommon::get_date_from_form('startdate');
     my $end = &Apache::lonhtmlcommon::get_date_from_form('enddate');
     my @senders = &Apache::loncommon::get_env_multiple('form.sender');
-    my $senderlist = join('&',@senders); 
-    my %sentmail = &Apache::lonnet::dcmaildump($cdom,$start,$end,$senderlist);
+    my %sentmail = &Apache::lonnet::dcmaildump($cdom,$start,$end,\@senders);
     my %dcmail = ();
     my %Sortby = ();
     my $jscript = <<"ENDSCRIPT";
@@ -289,7 +286,7 @@ ENDONE
                     $recipients .= $dcmail{$msgid}{recipients}{$user}.', ';
                 }
                 $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 ++;
             }
         } else {
@@ -328,9 +325,10 @@ ENDONE
                         }
                         $recipients =~ s/,\s$//;
                     }
+
                     my ($date,$subj,$sname,$sdom,$cdom) = split(/:/,$msgid,5);
                     $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 ++;
                 }
             }
@@ -413,7 +411,7 @@ $breadcrumbs
 <form method="post" name="$formname">
 ENDONE
    $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 %authtypes = ();
    &form_elements(\%longtypes,\%authtypes);
@@ -581,7 +579,15 @@ ENDONE
                 $output .= '<tr><td><input type="checkbox" name="recipient" value="'.$value.'" checked="checked" /></td><td>'.$username.'</td><td>&nbsp;&nbsp;</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_title($col_width,$tablecolor,&mt('Sender e-mail address'));
         $output .= '<td><input type="text" name="sender" value="'.$sender.'" /></td>';
@@ -638,6 +644,7 @@ ENDONE
     my @deliveries = ();
     &broadcast_email(\@recipients,$subject,$from,$message,\@deliveries);
     if (@deliveries > 0) {
+        &store_mail($subject,$message,$dom,\@deliveries);
         $output .= '<tr>
                      <td>
                       <table cellpadding="4" cellspacing="2" width="100%">
@@ -649,8 +656,8 @@ ENDONE
                        </tr>
                        <tr bgcolor="#eeeeee">
                         <td valign="middle">Sent</td>
-                        <td valign="middle">'.$subject.'</td>
-                        <td valign="middle">'.$message.'</td>
+                        <td valign="middle">'.&cr_to_br($subject).'</td>
+                        <td valign="middle">'.&cr_to_br($message).'</td>
                         <td>';
         foreach my $person (@deliveries) {
             my ($username,$email) = split(/:/,$person);
@@ -696,7 +703,7 @@ sub broadcast_email {
 }
 
 sub get_user_info {
-    my ($user,%email_defaults,$ltext) = @_;
+    my ($user,%email_defaults) = @_;
     my ($uname,$udom) = split(/:/,$user);
     my @emailtypes = ('permanentemail','critnotification','notification');
     my %userinfo = &Apache::lonnet::get('environment',\@emailtypes,$udom,$uname);
@@ -715,7 +722,7 @@ sub get_user_info {
                 $email = $uname.'@'.$email_defaults{$authtype}{$autharg};
             }
         } else {
-            if (defined($email_defaults{$authtype})) {
+            if ((defined($email_defaults{$authtype})) && ($email_defaults{$authtype} ne '')) {
                 $email = $uname.'@'.$email_defaults{$authtype};
             }
         }
@@ -733,7 +740,7 @@ sub form_elements {
    %{$authtypes} = (
                    krb4 => 'Kerberos 4',
                    krb5 => 'Kerberos 5',
-                   int => 'Internal (LON-CAPA)',
+                   internal => 'Internal (LON-CAPA)',
                    unix => 'Filesystem (UNIX)',
                    local => 'Local/Customized',
                    );
@@ -748,7 +755,7 @@ sub store_mail {
 # Store in dc email db files on appropriate servers.
     foreach my $server (keys(%servers)) {
         unless (&Apache::lonnet::dcmailput($domain,$msgid,\%servers,$server) eq 'ok') {
-            &logthis('Storage of dc mail failed for domain'.$domain.' for server: '.
+            &Apache::lonnet::logthis('Storage of dc mail failed for domain'.$domain.' for server: '.
                       $server.'.  Message ID was '.$msgid);
         }
     }
@@ -857,4 +864,11 @@ sub echo_form_input {
     return $output;
 }
 
+sub cr_to_br {
+    my $incoming = shift;
+    $incoming =~ s/\n/\<br \/\>/g;
+    return $incoming;
+}
+
+
 1;