--- loncom/interface/lonnotify.pm 2006/07/07 13:50:26 1.21
+++ loncom/interface/lonnotify.pm 2008/12/05 17:41:34 1.32
@@ -1,3 +1,7 @@
+# The LearningOnline Network with CAPA
+# Sending messages
+#
+# $Id: lonnotify.pm,v 1.32 2008/12/05 17:41:34 schafran Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -27,7 +31,7 @@ package Apache::lonnotify;
use strict;
use Apache::lonnet;
use Apache::loncommon;
-use Apache::lonsupportreq;
+use Apache::courseclassifier;
use LONCAPA::Enrollment;
use Apache::Constants qw(:common :http);
use Apache::lonlocal;
@@ -145,9 +149,9 @@ function next_page(caller) {
$output .= '';
$output .= '
';
$output .= &end_page();
@@ -205,7 +209,7 @@ sub print_display_option_form {
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.')';
+ $output .= ' '.$userinfo{'firstname'}.' '.$userinfo{'lastname'}.' ('.$uname.':'.$udom.')';
push (@domcc,$uname.':'.$udom);
}
}
@@ -374,18 +378,23 @@ sub print_selection_form {
'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',
'infs' => 'Internal, Filesystem and Local authentication: enter single default.',
- 'comp' => 'Compose Message'
+ 'comp' => 'Compose E-mail'
);
&Apache::lonhtmlcommon::add_breadcrumb
({text=>"Select Audience"});
- $totcodes = &Apache::lonsupportreq::retrieve_instcodes(\%coursecodes,$cdom,$totcodes);
+ $totcodes = &Apache::courseclassifier::retrieve_instcodes(\%coursecodes,$cdom,$totcodes);
if ($totcodes > 0) {
$format_reply = &Apache::lonnet::auto_instcode_format($caller,$cdom,\%coursecodes,\%codes,\@codetitles,\%cat_titles,\%cat_order);
if ($format_reply eq 'ok') {
my $numtypes = @codetitles;
- &Apache::lonsupportreq::build_code_selections(\%codes,\@codetitles,\%cat_titles,\%cat_order,\%idlist,\%idnums,\%idlist_titles);
- &Apache::lonsupportreq::javascript_code_selections($formname,$numtypes,\%cat_titles,\$jscript,\%idlist,\%idnums,\%idlist_titles,\@codetitles);
+ &Apache::courseclassifier::build_code_selections(\%codes,\@codetitles,\%cat_titles,\%cat_order,\%idlist,\%idnums,\%idlist_titles);
+ my ($scripttext,$longtitles) = &Apache::courseclassifier::javascript_definitions(\@codetitles,\%idlist,\%idlist_titles,\%idnums,\%cat_titles);
+ my $longtitles_str = join('","',@{$longtitles});
+ my $allidlist = $idlist{$codetitles[0]};
+ $jscript .= &Apache::courseclassifier::courseset_js_start($formname,$longtitles_str,$allidlist);
+ $jscript .= $scripttext;
+ $jscript .= &Apache::courseclassifier::javascript_code_selections($formname,@codetitles);
}
}
@@ -401,7 +410,7 @@ sub print_selection_form {
internal => 'text',
krb4 => 'text',
krb5 => 'text',
- local => 'text',
+ localauth => 'text',
unix => 'text',
);
$jscript .= &Apache::lonhtmlcommon::set_form_elements(\%elements);
@@ -455,8 +464,8 @@ function setCourseCat(formname) {
'."\n";
my $submit_text = $lt{'comp'};
my $cmd = 'compose';
- $output .= &Apache::lonhtmlcommon::role_select_row(\@roles,'Roles');
- $output .= &Apache::lonhtmlcommon::course_select_row('Courses',$formname,$totcodes,\@codetitles,\%idlist,\%idlist_titles);
+ $output .= &Apache::lonhtmlcommon::role_select_row(\@roles,&mt('Roles'));
+ $output .= &Apache::lonhtmlcommon::course_select_row(&mt('Courses'),$formname,$totcodes,\@codetitles,\%idlist,\%idlist_titles);
$output .= &Apache::lonhtmlcommon::status_select_row(\%longtypes,&mt('Access status'));
$output .= &Apache::lonhtmlcommon::email_default_row(\%authtypes,&mt('Username -> Email conversion'),$descrip);
$output .= &Apache::lonhtmlcommon::submit_row(&mt('Submit'),$cmd,$submit_text);
@@ -471,7 +480,7 @@ sub print_composition_form {
&Apache::lonhtmlcommon::add_breadcrumb
({href=>"javascript:goBack('pick_target')",
text=>"Select Audience"},
- {text=>"Compose Message"});
+ {text=>"Compose E-mail"});
my $jscript = &Apache::loncommon::check_uncheck_jscript();
$jscript .= qq|
function goBack(target) {
@@ -496,9 +505,10 @@ function goBack(target) {
'Broadcast e-mail to users', $formname));
my $coursefilter = $env{'form.coursepick'};
- my %courses = ();
+ my %courses;
if ($coursefilter eq 'all') {
- %courses = &Apache::lonnet::courseiddump($cdom,'.','.','.','.','.');
+ %courses = &Apache::lonnet::courseiddump($cdom,'.','.','.','.','.',
+ undef,undef,'Course');
} elsif ($coursefilter eq 'category') {
my $instcode = '';
my @cats = ('Semester','Year','Department','Number');
@@ -512,12 +522,13 @@ function goBack(target) {
if ($instcode eq '') {
$instcode = '.';
}
- %courses = &Apache::lonnet::courseiddump($cdom,'.','.',$instcode,'.','.');
+ %courses = &Apache::lonnet::courseiddump($cdom,'.','.',$instcode,'.','.',
+ undef,undef,'Course');
} elsif ($coursefilter eq 'specific') {
if ($env{'form.coursetotal'} > 1) {
my @course_ids = split(/&&/,$env{'form.courselist'});
- foreach (@course_ids) {
- $courses{$_} = '';
+ foreach my $cid (@course_ids) {
+ $courses{$cid} = '';
}
} else {
$courses{$env{'form.courselist'}} = '';
@@ -570,7 +581,10 @@ function goBack(target) {
$access{$type} = $type;
}
foreach my $course_id (keys(%courses)) {
- my ($cdom,$cnum) = split(/_/,$course_id);
+ my %coursehash =
+ &Apache::lonnet::coursedescription($course_id,{'one_time' => 1});
+ my $cdom = $coursehash{'domain'};
+ my $cnum = $coursehash{'num'};
&Apache::loncommon::get_course_users($cdom,$cnum,\%access,\@roles,\@sections,\%users);
}
foreach my $role (keys(%users)) {
@@ -605,14 +619,14 @@ function goBack(target) {
$output .= &Apache::loncommon::start_data_table();
if (keys(%recipients) > 0) {
$output .= &Apache::loncommon::start_data_table_header_row();
- $output .= ' | username:domain | | '.$lt{'emad'}.' | ';
+ $output .= ' | username:domain | '.$lt{'emad'}.' | ';
$output .= &Apache::loncommon::end_data_table_header_row();
}
foreach my $username (sort(keys(%recipients))) {
$output .= &Apache::loncommon::start_data_table_row();
if ($recipients{$username} =~ /\@/) {
my $value=&escape($username).':'.&escape($recipients{$username});
- $output .= ' | '.$username.' | | '.$recipients{$username}.' | ';
+ $output .= ' | '.$username.' | '.$recipients{$username}.' | ';
}
$output .= &Apache::loncommon::end_data_table_row();
}
@@ -628,7 +642,7 @@ function goBack(target) {
$output .= &Apache::lonhtmlcommon::row_title(&mt('Sender e-mail address'));
$output .= '';
$output .= &Apache::lonhtmlcommon::row_closure();
- $output .= &Apache::lonhtmlcommon::submit_row(&mt('Submit'),'process',&mt('Send Message'));
+ $output .= &Apache::lonhtmlcommon::submit_row(&mt('Submit'),'process',&mt('Send'));
$output .= &Apache::lonhtmlcommon::end_pick_box();
} else {
$output .= $lt{'nore'}."\n".
@@ -660,7 +674,7 @@ ENDSCRIPT
text=>"Select audience"});
&Apache::lonhtmlcommon::add_breadcrumb
({href=>"javascript:goBack('compose')",
- text=>"Compose Message"});
+ text=>"Compose E-mail"});
&Apache::lonhtmlcommon::add_breadcrumb
({href=>"/adm/notify?command=process",
text=>"Outcome"});
@@ -696,7 +710,7 @@ ENDSCRIPT
} else {
$output .= 'No mail sent - no recipients identified';
}
- $output .= '
Send another message?'."\n";
+ $output .= '
'.&mt('Send another e-mail').''."\n";
$output .= ''."\n".
''."\n";
$output .= &Apache::lonhtmlcommon::echo_form_input(['command','origin']);
@@ -728,7 +742,7 @@ sub get_user_info {
my ($user,%email_defaults) = @_;
my ($uname,$udom) = split(/:/,$user);
my @emailtypes = ('permanentemail','critnotification','notification');
- my %userinfo = &Apache::lonnet::get('environment',\@emailtypes,$udom,$uname);
+ my %userinfo = &Apache::loncommon::getemails($uname,$udom);
my $email = '';
foreach my $type (@emailtypes) {
$email = $userinfo{$type};
@@ -755,16 +769,16 @@ sub get_user_info {
sub form_elements {
my ($longtypes,$authtypes) = @_;
%{$longtypes} = (
- active => 'Currently has access',
- previous => 'Previously had access',
- future => 'Will have future access',
+ active => &mt('Currently has access'),
+ previous => &mt('Previously had access'),
+ future => &mt('Will have future access'),
);
%{$authtypes} = (
krb4 => 'Kerberos 4',
krb5 => 'Kerberos 5',
internal => 'Internal (LON-CAPA)',
unix => 'Filesystem (UNIX)',
- local => 'Local/Customized',
+ localauth => 'Local/Customized',
);
return;
}
@@ -776,7 +790,7 @@ sub store_mail {
$attachmenturl,$recipients,undef,undef,'dcmail');
# Store in dc email db files on primary library server for domain.
- my $server = $Apache::lonnet::domain_primary{$domain};
+ my $server = &Apache::lonnet::domain($domain,'primary');
if (defined($server)) {
unless (&Apache::lonnet::dcmailput($domain,$msgid,$message,$server)
eq 'ok') {