--- 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'".')" />'. - ' '. - '<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'".')" />'. + ' '. + '<input type="button" value="'.&mt('Uncheck All').'" '. + 'onclick="javascript:toggleAll('."this.form,'uncheck'".')" />'. + '</span>'); if ($status eq 'active') { - $result .= ' <select name="groupmail">'. - '<option value="bcc" selected="selected">'.&mt('Bcc').'</option>'. - '<option value="cc">'.&mt('Cc').'</option>'. - '</select>'; + $r->print((' '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>':'').' '. '<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> </td><td>$lt->{'to'}</td><td><input type="text" size="50" name="additionalrec_to" /></td></tr> <tr><td> </td><td>$cc</td><td><input type="text" size="50" name="additionalrec_cc" /></td></tr> -<tr><td> </td><td>$bcc</td><td><input type="text" size="50" name="additionalrec_bcc" /></td></tr></table></fieldset> +<tr><td> </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;