--- loncom/interface/lonmsgdisplay.pm	2008/12/07 19:29:29	1.101
+++ loncom/interface/lonmsgdisplay.pm	2009/02/10 09:30:16	1.113
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Routines for messaging display
 #
-# $Id: lonmsgdisplay.pm,v 1.101 2008/12/07 19:29:29 bisitz Exp $
+# $Id: lonmsgdisplay.pm,v 1.113 2009/02/10 09:30:16 schafran Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -353,7 +353,7 @@ sub makefolder {
         }
     } else {
         $outcome = 
-	    &mt('Error - could not obtain lock on e-mail folders record.');
+	    &mt('Error - could not obtain lock on message folders record.');
     }
     return ($outcome,$warning);
 }
@@ -555,17 +555,16 @@ sub discourse {
 }
 
 sub disgroup {
-    my ($cdom,$cnum,$group,$access_status) = @_;
-    my $result;
+    my ($r,$cdom,$cnum,$group,$access_status) = @_;
+    my $hasfloat;
     #  Needs to be in a course
     if (!($env{'request.course.fn'})) {
-        $result = &mt('Error: you must have a course role selected to be able to send a broadcast 
-e-mail to a group in the course.');
-        return $result;
+        $r->print('<span class="LC_error">'.&mt('Error: you must have a course role selected to be able to send a broadcast message to a group in the course.').'</span>');
+        return;
     }
     if ($cdom eq '' || $cnum eq '') {
-        $result = &mt('Error: could not determine domain or number of course');
-        return $result;
+        $r->print('<span class="LC_error">'.&mt('Error: could not determine domain or number of course').'</span>');
+        return;
     }
     my ($memberinfo,$numitems) =
                  &Apache::longroup::group_memberlist($cdom,$cnum,$group,{},[]);
@@ -578,10 +577,15 @@ e-mail to a group in the course.');
         push(@statustypes,('future','previous'));
     }
     if (keys(%{$memberinfo}) == 0) {
-        $result = &mt('As this group has no members, there are no '.
-                      'recipients to select.');
-        return $result;
+        $r->print('<span class="LC_warning">'.
+                  &mt('As this group has no members, there are no recipients to select').
+                  '</span>');
+        return;
     } else {
+        $hasfloat = 1;
+        unless($env{'environment.wysiwygeditor'} eq 'on') {
+            $r->print('<div class="LC_left_float">');
+        }
         my %Sortby = (
                          active   => {},
                          previous => {},
@@ -607,7 +611,7 @@ e-mail to a group in the course.');
                 push(@{$Sortby{$status}{$$memberinfo{$user}{fullname}}},$user);
             }
         }
-        $result .= &group_check_uncheck();
+        $r->print(&group_check_uncheck());
         foreach my $status (@statustypes)  {
             if (ref($numitems) eq 'HASH') {
                 if ((defined($$numitems{$status})) && ($$numitems{$status})) {
@@ -615,46 +619,49 @@ e-mail to a group in the course.');
                     if (ref($access_status) eq 'HASH') {
                         $access_status->{$status} = $$numitems{$status};
                     }
-                    $result.='<fieldset><legend><b>'.$lt{$status}.
-                             '</b></legend><form name="'.$formname.'">'.
-                             '<span class="LC_nobreak">'.
-                             '<input type="button" value="'.&mt('Check All').'" '.
-                             'onclick="javascript:toggleAll('."this.form,'check'".')" />'.
-                             '&nbsp;&nbsp;'.
-                             '<input type="button" value="'.&mt('Uncheck All').'" '.
-                             'onclick="javascript:toggleAll('."this.form,'uncheck'".')" />'.
-                             '</span>';
+                    $r->print('<fieldset><legend><b>'.$lt{$status}.
+                              '</b></legend><form name="'.$formname.'">'.
+                              '<span class="LC_nobreak">'.
+                              '<input type="button" value="'.&mt('Check All').'" '.
+                              'onclick="javascript:toggleAll('."this.form,'check'".')" />'.
+                              '&nbsp;&nbsp;'.
+                              '<input type="button" value="'.&mt('Uncheck All').'" '.
+                              'onclick="javascript:toggleAll('."this.form,'uncheck'".')" />'.
+                              '</span>');
                     if ($status eq 'active') {
-                        $result .= '&nbsp;&nbsp;&nbsp;<select name="groupmail">'.
-                                   '<option value="bcc" selected="selected">'.&mt('Bcc').'</option>'.
-                                   '<option value="cc">'.&mt('Cc').'</option>'.
-                               '</select>';
+                        $r->print(('&nbsp;'x3).'<select name="groupmail">'.
+                                 '<option value="bcc" selected="selected">'.&mt('Bcc').'</option>'.
+                                 '<option value="cc">'.&mt('Cc').'</option>'.
+                               '</select>');
                     }
-                    $result .= '<br />'.&Apache::loncommon::start_data_table().
+                    $r->print('<br />'.&Apache::loncommon::start_data_table().
                                &Apache::loncommon::start_data_table_header_row().
-                               "<th>$lt{'name'}</a></th>".
-                               "<th>$lt{'usnm'}</a></th>".
-                               "<th>$lt{'doma'}</a></th>".
-                               &Apache::loncommon::end_data_table_header_row();
+                               "<th>$lt{'name'}</th>".
+                               "<th>$lt{'usnm'}</th>".
+                               "<th>$lt{'doma'}</th>".
+                               &Apache::loncommon::end_data_table_header_row());
                     foreach my $key (sort(keys(%{$Sortby{$status}}))) {
                         foreach my $user (@{$Sortby{$status}{$key}}) {
-                            $result .=
-                                &Apache::loncommon::start_data_table_row().
-                                '<td><input type="checkbox" '.
+                            $r->print(&Apache::loncommon::start_data_table_row().
+                                '<td><span class="LC_nobreak"><input type="checkbox" '.
                                 'name="selectedusers_forminput" value="'.
                                 $user.':'.$status.'" />'.
-                                $$memberinfo{$user}{'fullname'}.'</td>'.
+                                $$memberinfo{$user}{'fullname'}.'</span></td>'.
                                 '<td>'.$$memberinfo{$user}{'uname'}.'</td>'.
                                 '<td>'.$$memberinfo{$user}{'udom'}.'</td>'.
-                                &Apache::loncommon::end_data_table_row();
+                                &Apache::loncommon::end_data_table_row());
                         }
                     }
-                    $result .= &Apache::loncommon::end_data_table().'</form></fieldset><br />';
+                    $r->print(&Apache::loncommon::end_data_table().'</form>'.
+                              '</fieldset><br />');
                 }
             }
         }
+        unless($env{'environment.wysiwygeditor'} eq 'on') {
+            $r->print('</div>');
+        }
     }
-    return $result;
+    return $hasfloat;
 }
 
 sub group_check_uncheck {
@@ -1108,10 +1115,10 @@ ENDDISHEADER
 	    }
             my $localsenttime = &Apache::lonlocal::locallocaltime($sendtime);
             my $count = $n +1;
-	    $r->print('<td align="right"><nobr>'.(($status eq 'new')?'<b>':'').
+	    $r->print('<td align="right"><span class="LC_nobreak">'.(($status eq 'new')?'<b>':'').
                       $count.'.'.(($status eq 'new')?'</b>':'').'&nbsp;'.
                       '<input type="checkbox" name="delmark"'. 
-                      ' value="'.$origID.'" /></nobr></td>');
+                      ' value="'.$origID.'" /></span></td>');
             foreach my $item ($localsenttime,$dis_name,$dis_domain,$shortsubj) {
                 $r->print('<td>'.(($status eq 'new')?'<b>':'').
                           '<a href="/adm/email?display='.$origID.$sqs.'">'.
@@ -1317,16 +1324,17 @@ sub compout {
         if ($group eq '') {
             my $studentsel = &discourse(\%access_status);
             if ($studentsel) {
-                $r->print('<div class="LC_left_float">'.$studentsel.'</div>');
+                if ($env{'environment.wysiwygeditor'} eq 'on') {
+                    $r->print($studentsel);
+                } else {
+                    $r->print('<div class="LC_left_float">'.$studentsel.'</div>');
+                }
                 $hasfloat = 1;
             }
         } else {
             $can_grp_broadcast = &check_group_priv($group);
             if ($can_grp_broadcast) {
-                $r->print('<div class="LC_left_float">'.
-                          &disgroup($cdom,$cnum,$group,\%access_status).
-                         '</div>');
-                $hasfloat = 1;
+                $hasfloat = &disgroup($r,$cdom,$cnum,$group,\%access_status);
             }
         }
         if ($hasfloat) {
@@ -1412,7 +1420,11 @@ ENDREPSCRIPT
     if ($env{'form.text'}) { $dismsg=$env{'form.text'}; }
     if ($env{'form.subject'}) { $dissub=$env{'form.subject'}; }
     if ($hasfloat) {
-        $r->print($broadcast_js.'<div class="LC_left_float">');
+        if ($env{'environment.wysiwygeditor'} eq 'on') {
+            $r->print($broadcast_js);
+        } else {
+            $r->print($broadcast_js.'<div class="LC_left_float">');
+        }
         $onsubmit = ' onsubmit="javascript:courseRecipients();" ';
     }
     $r->print(
@@ -1521,7 +1533,7 @@ ENDREPSCRIPT
             $r->print(&recipient_input_row($defdom,%lt));
         }
     }
-    my $latexHelp = &Apache::loncommon::helpLatexCheatsheet();
+    my $latexHelp = &Apache::loncommon::helpLatexCheatsheet(undef,undef,1);
     my $wysiwyglink=&Apache::lonhtmlcommon::htmlareaselectactive('message').'<br />';
     my $subj_size;
     if ($multiforward) {
@@ -1618,7 +1630,9 @@ ENDUPLOAD
     }
     $r->print('</form>');
     if ($hasfloat) {
-        $r->print('</div><div class="LC_clear_float_footer"></div>');
+        unless($env{'environment.wysiwygeditor'} eq 'on') {
+            $r->print('</div><div class="LC_clear_float_footer"></div>');
+        }
     }
     $r->print(&generate_preview_form);
 }
@@ -1668,7 +1682,7 @@ sub additional_rec_row {
 <tr><td colspan="3"><fieldset id="LC_additionalrecips"><legend><b>$lt->{'ad'}</b> <tt>($exmpl)</tt>:</legend><table>
 <tr><td>&nbsp;</td><td>$lt->{'to'}</td><td><input type="text" size="50" name="additionalrec_to" /></td></tr>
 <tr><td>&nbsp;</td><td>$cc</td><td><input type="text" size="50" name="additionalrec_cc" /></td></tr> 
-<tr><td>&nbsp;</td><td>$bcc</td><td><input type="text" size="50" name="additionalrec_bcc" /></td></tr></table></fieldset>
+<tr><td>&nbsp;</td><td>$bcc</td><td><input type="text" size="50" name="additionalrec_bcc" /></td></tr></table></fieldset></td></tr>
 ENDADD
     return $output;
 }
@@ -1814,7 +1828,7 @@ $content{'sendername'}.':'.
      }
     # Check to see if there were any messages.
     if ($result eq '') {
-        my $lctype = lc(&Apache::loncommon::course_type());
+        my $lctype = &mt(lc(&Apache::loncommon::course_type()));
 	if ($target ne 'tex') { 
 	    $r->print("<p><b>".&mt('No notes, face-to-face discussion records, critical messages, or broadcast messages in this [_1].',$lctype)."</b></p>");
 	} else {
@@ -2312,11 +2326,11 @@ sub displaymessage {
               .$li_end;
     }
 # Print functions
-    $r->print('<div>'
+    $r->print('<div class="LC_left_float">'
              .'<fieldset>'
-             .'<legend>'
+             .'<legend><span class="LC_mail_functions">'
              .&mt('Functions')
-             .'</legend>'
+             .'</span></legend>'
              .$functionlist
              .'</fieldset>'
              .'</div>'
@@ -2353,10 +2367,10 @@ sub displaymessage {
 
 # Print actions
         if ($actionlist) {
-            $r->print('<div>'
+            $r->print('<div class="LC_left_float">'
                      .'<fieldset>'
                      .'<legend>'
-                     .&mt('Currently available actions (will open extra window):')
+                     .&mt('[_1]Currently available actions[_2] (will open extra window):','<span class="LC_mail_functions">','</span>')
                      .'</legend>'
                      .$actionlist
                      .'</fieldset>'
@@ -2378,7 +2392,16 @@ sub displaymessage {
             $bcclist = join(', ',@{$recipients{'bcc'}});
         }
     }
-    if (!$tolist && ref($content{'recuser'}) eq 'ARRAY') {
+
+    my $broadcast_link;
+    if (($content{'courseid'}) && ($content{'recipid'} &&
+        (ref($recipients{'course_broadcast'}) eq 'ARRAY') ||
+        (ref($recipients{'group_cc_broadcast'}) eq 'ARRAY') ||
+        (ref($recipients{'group_bcc_broadcast'}) eq 'ARRAY'))) {
+        $broadcast_link = &recipients_link($r,\%content,\%recipients);
+    }
+
+    if (((!$tolist) && (!$broadcast_link)) && ref($content{'recuser'}) eq 'ARRAY') {
         my @recipients;
         for (my $i=0; $i<@{$content{'recuser'}}; $i++) {
             $recipients[$i] =  &Apache::loncommon::aboutmewrapper(
@@ -2400,21 +2423,14 @@ sub displaymessage {
     if (defined($content{'baseurl'})) {
         $baseurl = &Apache::lonenc::check_encrypt($content{'baseurl'});
     }
+    $r->print('<div class="LC_clear_float_footer">');
     if ($from_student && $see_anonymous ) {
-	$r->print(&Apache::loncommon::student_image_tag($content{'senderdomain'},$content{'sendername'}));
-    }
-
-    my $broadcast_link;
-    if (($content{'courseid'}) && ($content{'recipid'} && 
-        (ref($recipients{'course_broadcast'}) eq 'ARRAY') || 
-        (ref($recipients{'group_cc_broadcast'}) eq 'ARRAY') ||
-        (ref($recipients{'group_bcc_broadcast'}) eq 'ARRAY'))) {
-        $broadcast_link = &recipients_link($r,\%content,\%recipients);
+	$r->print(&Apache::loncommon::student_image_tag($content{'senderdomain'},$content{'sendername'}).'</br>');
     }
 
     # Display LON-CAPA Message (Start)
     # Subject
-    $r->print('<br />'
+    $r->print('</div>'
              .&Apache::lonhtmlcommon::start_pick_box()
              .&Apache::lonhtmlcommon::row_title(&mt('Subject'))
              .$content{'subject'}
@@ -2422,10 +2438,12 @@ sub displaymessage {
     );
     if ($folder eq 'sent') {
         # To
-        $r->print(&Apache::lonhtmlcommon::row_title(&mt('To'))
-                 .$tolist
-                 .&Apache::lonhtmlcommon::row_closure()
-        );
+        if ($tolist) {
+            $r->print(&Apache::lonhtmlcommon::row_title(&mt('To'))
+                     .$tolist
+                     .&Apache::lonhtmlcommon::row_closure()
+            );
+        }
         if ($cclist) {
             $r->print(&Apache::lonhtmlcommon::row_title(&mt('Cc'))
                      .$cclist
@@ -2679,13 +2697,13 @@ sub recipients_link {
             $nothing=&Apache::lonhtmlcommon::javascript_nothing();
             $height = 400;
             $width = 600;
-            my $start_page =
-                    &Apache::loncommon::start_page('Broadcast List', undef,
-                                       {only_body => 1,
-                                        js_ready  => 1,});
-            my $end_page = &Apache::loncommon::end_page({js_ready => 1,});
-            my $body = '<h3>'.&mt("Recipients of broadcast message").'</h3>'.
-                       &Apache::loncommon::start_data_table();
+            $start_page =
+                &Apache::loncommon::start_page('Broadcast List', undef,
+                                               {only_body => 1,
+                                                js_ready  => 1,});
+            $end_page = &Apache::loncommon::end_page({js_ready => 1,});
+            $body = '<h3>'.&mt("Recipients of broadcast message").'</h3>'.
+                    &Apache::loncommon::start_data_table();
             my $cell = 0;
             $body .= &Apache::loncommon::start_data_table_row();
             foreach my $item (@{$recipients->{$show.'_broadcast'}}) {
@@ -3465,7 +3483,7 @@ sub handler {
         my $showfolder = $env{'form.newfolder'};
 	my ($makeresult,$warning) = &makefolder($env{'form.newfolder'});
         if ($makeresult eq 'ok') {
-            $r->print(&mt('Mail folder "[_1]" created.',$showfolder).'<br />');
+            $r->print(&mt('Folder "[_1]" created.',$showfolder).'<br />');
         } else {
             $r->print(&mt('Creation failed.').' '.$makeresult.'<br />'.
                       $warning);
@@ -3480,7 +3498,7 @@ sub handler {
         my $showfolder = '';
         my $delresult = &deletefolder($folder);
         if ($delresult eq 'ok') {
-            $r->print(&mt('Mail folder "[_1]" deleted.',$folder).'<br />');
+            $r->print(&mt('Folder "[_1]" deleted.',$folder).'<br />');
             $env{'form.folder'} = '';
         } else {
             $r->print(&mt('Deletion failed.').' '.$delresult.'<br />');
@@ -3493,7 +3511,7 @@ sub handler {
         my $showfolder = $env{'form.renamed'};
         my $renresult = &renamefolder($folder);
         if ($renresult eq 'ok') {
-            $r->print(&mt('Mail folder "[_1]" renamed "[_2]".',$folder,$showfolder).'<br />');
+            $r->print(&mt('Folder "[_1]" renamed to "[_2]".',$folder,$showfolder).'<br />');
         } else {
             $r->print(&mt('Renaming failed.').' '.$renresult.'<br />');
             $showfolder = $folder;