Diff for /loncom/interface/lonnotify.pm between versions 1.3 and 1.7

version 1.3, 2005/10/05 18:50:08 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.'" />&nbsp;'.$userinfo{firstname}.' '.$userinfo{lastname}.'&nbsp;&nbsp;('.$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.'" />&nbsp;'.$userinfo{firstname}.' '.$userinfo{lastname}.'&nbsp;&nbsp;('.$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 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 578  ENDONE Line 579  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 .= '<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_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 @emailtypes = ('permanentemail','critnotification','notification');      my @emailtypes = ('permanentemail','critnotification','notification');
     my %userinfo = &Apache::lonnet::get('environment',\@emailtypes,$udom,$uname);      my %userinfo = &Apache::lonnet::get('environment',\@emailtypes,$udom,$uname);
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 855  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;

Removed from v.1.3  
changed lines
  Added in v.1.7


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>