--- loncom/interface/lonnotify.pm	2009/02/02 13:27:39	1.33
+++ loncom/interface/lonnotify.pm	2012/12/17 15:06:39	1.39
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Sending messages
 #
-# $Id: lonnotify.pm,v 1.33 2009/02/02 13:27:39 schafran Exp $
+# $Id: lonnotify.pm,v 1.39 2012/12/17 15:06:39 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -118,7 +118,7 @@ sub start_page {
 $start_page
 $breadcrumbs
 <br />
-<form name="$formname" method="POST">
+<form name="$formname" method="post" action="">
 ENDONE
 
     return $output;
@@ -143,19 +143,35 @@ function next_page(caller) {
 }
     |; 
 
-    my $output = &start_page(&add_script($jscript),
-			     'Broadcast e-mail to Domain', $formname);
-
-    $output .= '<input type="hidden" name="command" />';
-    $output .= '<table class="LC_notify_front_page">'.
-              '<tr><td><a href="javascript:next_page('."'new'".')">'.
-              &mt('Send a new e-mail to selected users from this domain').'</a></td></tr><tr>'.
-              '<td><a href="javascript:next_page('."'view'".')">'.
-              &mt('Display e-mail sent by Domain Coordinators in this domain').
-              '</a></td></tr></table>';
-    $output .= &end_page();
 
-    $r->print($output);
+    my @menu=
+        ({  categorytitle=>'Broadcast e-mail to Domain',
+        items =>[
+            {   linktext => 'Send e-mail to selected users',
+                url => 'javascript:next_page('."'new'".')',
+                permission => 1,
+                #help => '',
+                icon => 'mail-reply-all.png',
+                linktitle => 'Send a new e-mail to selected users from this domain'
+            },
+            {   linktext => 'Display sent e-mails',
+                url => 'javascript:next_page('."'view'".')',
+                permission => 1,
+                #help => '',
+                icon => 'messalog.png',
+                linktitle => 'Display e-mail sent by Domain Coordinators in this domain'
+            },
+        ]
+        },
+        );
+
+    $r->print(
+        &start_page(&add_script($jscript),
+            'Broadcast e-mail to Domain', $formname)
+       .'<input type="hidden" name="command" />'
+       .&Apache::lonhtmlcommon::generate_menu(@menu)
+       .&end_page()
+    );
     return;
 }
 
@@ -164,7 +180,7 @@ sub print_display_option_form {
     &Apache::lonhtmlcommon::add_breadcrumb({text=>"Display options"});
 
     my $cmd = 'display';
-    my $submit_text = 'Display e-mail';
+    my $submit_text = &mt('Display e-mail');
     my @roles = ('dc');
     my $now = time;
 
@@ -397,6 +413,7 @@ sub print_selection_form {
             $jscript .= &Apache::courseclassifier::javascript_code_selections($formname,@codetitles);
         }
     }
+    my @standardnames = &Apache::loncommon::get_standard_codeitems();
 
     my $cb_jscript = &Apache::loncommon::coursebrowser_javascript($cdom);
 
@@ -420,7 +437,7 @@ function setCourseCat(formname) {
     if (formname.Year.options[formname.Year.selectedIndex].value == -1) {
         return;
     }
-    courseSet('Year');
+    courseSet('$codetitles[0]');
     for (var j=0; j<formname.Semester.length; j++) {
         if (formname.Semester.options[j].value == "$env{'form.Semester'}") {
             formname.Semester.options[j].selected = true;
@@ -429,7 +446,7 @@ function setCourseCat(formname) {
     if (formname.Semester.options[formname.Semester.selectedIndex].value == -1) {
         return;
     }
-    courseSet('Semester');
+    courseSet('$codetitles[1]');
     for (var j=0; j<formname.Department.length; j++) {
         if (formname.Department.options[j].value == "$env{'form.Department'}") {
             formname.Department.options[j].selected = true;
@@ -438,7 +455,7 @@ function setCourseCat(formname) {
     if (formname.Department.options[formname.Department.selectedIndex].value == -1) {
         return;
     }
-    courseSet('Department');
+    courseSet('$codetitles[2]');
     for (var j=0; j<formname.Number.length; j++) {
         if (formname.Number.options[j].value == "$env{'form.Number'}") {
             formname.Number.options[j].selected = true;
@@ -465,7 +482,7 @@ function setCourseCat(formname) {
     my $submit_text = $lt{'comp'};
     my $cmd = 'compose';
     $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::course_select_row(&mt('Courses'),$formname,$totcodes,\@codetitles,\%idlist,\%idlist_titles,undef,undef,\@standardnames);
     $output .= &Apache::lonhtmlcommon::status_select_row(\%longtypes,&mt('Access status'));
     $output .= &Apache::lonhtmlcommon::email_default_row(\%authtypes,&mt('Username -> E-mail conversion'),$descrip);
     $output .= &Apache::lonhtmlcommon::submit_row(&mt('Submit'),$cmd,$submit_text);
@@ -510,20 +527,15 @@ function goBack(target) {
         %courses = &Apache::lonnet::courseiddump($cdom,'.','.','.','.','.',
                                                  undef,undef,'Course');
     } elsif ($coursefilter eq 'category') {
-        my $instcode = '';
-        my @cats = ('Semester','Year','Department','Number');
-        foreach my $category (@cats) {
-            if (defined($env{'form.'.$category})) {
-                unless ($env{'form.'.$category} eq '-1') {
-                    $instcode .= $env{'form.'.$category};
-                }
-            }
-        }
+        my $instcode = &Apache::courseclassifier::instcode_from_selectors($cdom);
+        my $regexp = '';
         if ($instcode eq '') {
             $instcode = '.';
+        } else {
+            $regexp = 1;
         }
         %courses = &Apache::lonnet::courseiddump($cdom,'.','.',$instcode,'.','.',
-                                                 undef,undef,'Course');
+                                                 undef,undef,'Course',$regexp);
     } elsif ($coursefilter eq 'specific') {
         if ($env{'form.coursetotal'} > 1) {
             my @course_ids = split(/&&/,$env{'form.courselist'});
@@ -693,7 +705,7 @@ ENDSCRIPT
 	    '<th>'.&mt('Status').'</th>'.
 	    '<th>'.&mt('Subject').'</th>'.
 	    '<th>'.&mt('Message').'</th>'.
-	    '<th>'.&mt('Recipents').'</th>'.
+	    '<th>'.&mt('Recipients').'</th>'.
 	    &Apache::loncommon::end_data_table_header_row();
 	$output .= &Apache::loncommon::start_data_table_row().
 	    '<td valign="middle">'.&mt('Sent').'</td>'.
@@ -730,6 +742,7 @@ sub broadcast_email {
         $msg->to($to);
         $msg->subject($subject);
         $msg->add('From',"$from");
+        $msg->add('Content-type','text/plain; charset=UTF-8');
         if (my $fh = $msg->open()) {
             print $fh $message;
             $fh->close;