--- loncom/interface/lonnotify.pm 2005/10/04 20:17:51 1.2
+++ loncom/interface/lonnotify.pm 2005/10/11 21:29:39 1.4
@@ -151,8 +151,6 @@ sub print_display_option_form {
'enddate',
$now);
my $jscript;
- my %totals = ();
- my %personnel = ();
my $output = <<"ENDONE";
$html
@@ -174,14 +172,19 @@ ENDONE
'';
$output .= &Apache::lonhtmlcommon::row_closure();
$output .= &Apache::lonhtmlcommon::row_title($col_width,$tablecolor,&mt('Choose sender(s)'));
-# FIXME - need to complete work on domain_roles_get
-# &Apache::lonnet::domain_roles_get($cdom,\@roles,\%personnel,%totals);
+ my %personnel = &Apache::lonnet::get_domain_roles($cdom,\@roles);
$output .= '
';
- if ($totals{'dc'} > 0) {
- foreach my $user (sort(keys(%{$personnel{'dc'}}))) {
- my ($uname,$udom) = split(/:/,$user);
- my %userinfo = &Apache::lonnet::get('environment',['lastname','firstname'],$udom,$uname);
- $output .= ' '.$userinfo{firstname}.' '.$userinfo{lastname}.' ('.$user.')';
+ 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);
+ $output .= ' '.$userinfo{firstname}.' '.$userinfo{lastname}.' ('.$uname.':'.$udom.')';
+ push (@domcc,$uname.':'.$udom);
+ }
}
}
$output .= '
';
@@ -394,7 +397,7 @@ function initialize_codes() {
my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs
(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";
$html
@@ -500,7 +503,7 @@ ENDONE
my $col_width = '200';
&form_elements(\%longtypes,\%authtypes);
- foreach my $auth (%authtypes) {
+ foreach my $auth (keys(%authtypes)) {
if (exists($env{'form.'.$auth})) {
my $default = $env{'form.'.$auth};
$default =~ s/^,+//;
@@ -695,8 +698,8 @@ sub broadcast_email {
sub get_user_info {
my ($user,%email_defaults,$ltext) = @_;
my ($uname,$udom) = split(/:/,$user);
- my %userinfo = &Apache::lonnet::get('environment',['permanenetemail','notification','critnotification',],$udom,$uname);
my @emailtypes = ('permanentemail','critnotification','notification');
+ my %userinfo = &Apache::lonnet::get('environment',\@emailtypes,$udom,$uname);
my $email = '';
foreach my $type (@emailtypes) {
$email = $userinfo{$type};
@@ -739,16 +742,15 @@ sub form_elements {
sub store_mail {
my ($subject,$message,$domain,$recipients,$attachmenturl,$ltext) = @_;
- my %status = ();
my %servers = ();
my $msgid=&packagemail($subject,$message,$domain,
$recipients,\%servers,$attachmenturl);
# Store in dc email db files on appropriate servers.
foreach my $server (keys(%servers)) {
-# FIXME This needs to be via a subroutine in lonnet
- $status{$server} = &Apache::lonnet::critical(
- 'dcmailput:'.$domain.':'.&Apache::lonnet::escape($msgid).'='.
- &Apache::lonnet::escape($servers{$server}),$server);
+ unless (&Apache::lonnet::dcmailput($domain,$msgid,\%servers,$server) eq 'ok') {
+ &logthis('Storage of dc mail failed for domain'.$domain.' for server: '.
+ $server.'. Message ID was '.$msgid);
+ }
}
}
@@ -811,8 +813,7 @@ sub unpackagemail {
my $value=$parser->get_text('/'.$entry);
my ($username,$email);
if ($entry eq 'recipient') {
- my $attr = $token->[2];
- $username = $$attr{'username'};
+ $username = $token->[2]{'username'};
$username = &HTML::Entities::decode($username,'<>&"');
$content{recipients}{$username} =
&HTML::Entities::decode($value,'<>&"');