Diff for /loncom/interface/lonmsgdisplay.pm between versions 1.124.4.9 and 1.151

version 1.124.4.9, 2010/02/15 03:37:59 version 1.151, 2010/05/29 23:19:52
Line 113  use lib '/home/httpd/lib/perl/'; Line 113  use lib '/home/httpd/lib/perl/';
 use LONCAPA;  use LONCAPA;
   
 # Querystring component with sorting type  # Querystring component with sorting type
 my $sqs;  my $sqs='';
 my $startdis;  my $startdis='';
   
 # ============================================================ List all folders  # ============================================================ List all folders
   
Line 222  function folder_choice(targetform,caller Line 222  function folder_choice(targetform,caller
   
     $output .= '      $output .= '
 <form method="post" action="/adm/email" name="folderlist">  <form method="post" action="/adm/email" name="folderlist">
 <table border="0" cellspacing="2" cellpadding="2">     <table border="0" cellspacing="2" cellpadding="8">
  <tr>  
   <td align="left">  
    <table border="0" cellspacing="2" cellpadding="2">  
     <tr>      <tr>
      <td align="center"><b>'.$lt{'fold'}.'</b><br />'."\n".       <td><b>'.$lt{'fold'}.'</b><br />'."\n".
          &Apache::loncommon::select_form($folder,'folder',%formhash).'           &Apache::loncommon::select_form($folder,'folder',%formhash).'
      </td>       </td>
      <td align="center"><b>'.$lt{'show'}.'</b><br />'."\n".       <td><b>'.$lt{'show'}.'</b><br />'."\n".
          &Apache::loncommon::select_form($env{'form.interdis'},'interdis',           &Apache::loncommon::select_form($env{'form.interdis'},'interdis',
  %show).'   %show).'
      </td>       </td>
      <td align="center"><b>'.$lt{'status'}.'</b><br />'."\n".       <td><b>'.$lt{'status'}.'</b><br />'."\n".
        &Apache::loncommon::select_form($msgstatus,'msgstatus',%statushash).'         &Apache::loncommon::select_form($msgstatus,'msgstatus',%statushash).'
      </td>       </td>
      <td align="center"><b>'.$lt{'actn'}.'</b><br />'.       <td><b>'.$lt{'actn'}.'</b><br />'."\n".'
          &Apache::loncommon::select_form('view','folderaction',%actions).'           <span class="LC_nobreak">'.
      </td><td><br />'.           &Apache::loncommon::select_form('view','folderaction',%actions).
     '<input type="button" value="'.$lt{'go'}.'" onclick="javascript:folder_choice(this.form,'."'change'".');" />           ' <input type="button" value="'.$lt{'go'}.
            '" onclick="javascript:folder_choice(this.form,'."'change'".');" />
            </span>
        </td>
        <td><b>'.&mt('New Folder').'</b><br />'."\n".'
            <span class="LC_nobreak">
            <input type="text" size="15" name="newfolder" value="" />
            <input type="button" value="'.$lt{'go'}.
            '" onclick="javascript:folder_choice(this.form,'."'new'".');" />
            </span>
      </td>       </td>
     </tr>      </tr>
    </table>     </table>
   </td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>  '."\n".
   <td align="right">  
    <table><tr><td><br />  
     <input type="button" value="'.&mt('New Folder').  
     '" onclick="javascript:folder_choice(this.form,'."'new'".');" /></td>'.  
     '<td align="center"><b>'.&mt('Name').'</b><br />'.  
     '<input type="text" size="15" name="newfolder" value="" />  
     </td></tr></table>  
   </td>  
  </tr>  
 </table>'."\n".  
     '<input type="hidden" name="sortedby" value="'.$env{'form.sortedby'}.'" />'.      '<input type="hidden" name="sortedby" value="'.$env{'form.sortedby'}.'" />'.
     '<input type="hidden" name="renamed" value="" />'.      '<input type="hidden" name="renamed" value="" />'.
         ($folder=~/^critical/?'</form>':'');          ($folder=~/^critical/?'</form>':'');
Line 295  sub scrollbuttons { Line 291  sub scrollbuttons {
     } else {      } else {
         $status = $statushash{$msgstatus};          $status = $statushash{$msgstatus};
     }      }
     return      my $output = '<b>'.&mt('Page:').'</b> ';
    '<b>'.&mt('Page').'</b>: '.       if ($maxdis == 1) {
    '<input type="submit" name="firstview" value="|&lt;" />'.          # No buttons if only one page is displayed
    '<input type="submit" name="prevview" value="&lt;" />'.          $output .= '1/1';
    '<input type="text" size="5" name="startdis" value="'.$start.'" onchange="this.form.submit()" /> of '.$maxdis.      } else {
    '<input type="submit" name="nextview" value="&gt;" />'.          $output .=
    '<input type="submit" name="lastview" value="&gt;|" /><br />'.             '<input type="submit" name="firstview" value="|&lt;" />'.
    &mt('<b>[_1] messages</b>: showing messages [_2] through [_3] of [_4].',$status,$first,$finish,$total).'</form>';             '<input type="submit" name="prevview" value="&lt;" />'.
              ' <input type="text" size="5" name="startdis" value="'.$start.'" onchange="this.form.submit()" /> / '.$maxdis.' '.
              '<input type="submit" name="nextview" value="&gt;" />'.
              '<input type="submit" name="lastview" value="&gt;|" />';
       }
       $output .=
           '<p>'
          .'<b>'.&mt($status.' messages:').'</b> '
          .&mt('showing messages [_1] through [_2] of [_3].',
               $first,$finish,$total)
          .'</p>'
          .'</form>';
   
       return $output;
 }  }
 # =============================================================== Status Change  # =============================================================== Status Change
   
Line 369  sub deletefolder { Line 378  sub deletefolder {
     my ($folder)=@_;      my ($folder)=@_;
     my %permfolders = &get_permanent_folders();      my %permfolders = &get_permanent_folders();
     if (defined($permfolders{$folder})) {      if (defined($permfolders{$folder})) {
         return &mt('The folder "[_1]" may not be deleted',$folder);           return &mt('The folder "[_1]" may not be deleted.',$folder); 
     }      }
     my %userfolders = &Apache::lonmsg::get_user_folders();      my %userfolders = &Apache::lonmsg::get_user_folders();
     if (!defined($userfolders{$folder})) {      if (!defined($userfolders{$folder})) {
Line 525  sub discourse { Line 534  sub discourse {
                                                                \%defaultUsers,                                                                 \%defaultUsers,
                                                                1,"selectedusers",1,'email')                                                                 1,"selectedusers",1,'email')
        ) {         ) {
         my $bcc_curr_hdr;         my $bcc_curr_hdr;
         if ($crstype eq 'Community') {         if ($crstype eq 'Community') {
             $bcc_curr_hdr = &mt('Bcc: community participants with current access');             $bcc_curr_hdr = &mt('Bcc: community participants with current access');
         } else {         } else {
             $bcc_curr_hdr = &mt('Bcc: course members with current access');             $bcc_curr_hdr = &mt('Bcc: course members with current access');
         }         }
         $result .= '<fieldset id="LC_activeusers"><legend>'         $result .= '<fieldset id="LC_activeusers"><legend>'
                    .'<b>'.$bcc_curr_hdr.'</b>'                   .$bcc_curr_hdr
                    .'</legend>'                   .'</legend>'
                    .'<form name="activeusers">';                   .'<form name="activeusers">';
         $result .= $tmptext.'</form></fieldset><br />';         $result .= $tmptext.'</form></fieldset><br />';
         if (ref($statushash) eq 'HASH') {         if (ref($statushash) eq 'HASH') {
             $statushash->{'active'} = 1;             $statushash->{'active'} = 1;
         }         }
     }      }
     if ($tmptext = &Apache::lonselstudent::render_student_list($expired_members,      if ($tmptext = &Apache::lonselstudent::render_student_list($expired_members,
                                                                "previoususers",                                                                 "previoususers",
Line 546  sub discourse { Line 555  sub discourse {
                                                                \%defaultUsers,                                                                 \%defaultUsers,
                                                                1, "selectedusers",0,'email')                                                                 1, "selectedusers",0,'email')
        ) {         ) {
         my $bcc_prev_hdr;         my $bcc_prev_hdr;
         if ($crstype eq 'Community') {         if ($crstype eq 'Community') {
             $bcc_prev_hdr = &mt('Bcc: community participants with expired access');             $bcc_prev_hdr = &mt('Bcc: community participants with expired access');
         } else {         } else {
             $bcc_prev_hdr = &mt('Bcc: course members with expired access');             $bcc_prev_hdr = &mt('Bcc: course members with expired access');
         }         }
         $result .= '<fieldset id="LC_previoususers"><legend>'         $result .= '<fieldset id="LC_previoususers"><legend>'
                    .'<b>'.$bcc_prev_hdr.'</b>'                   .$bcc_prev_hdr
                    .'</legend>'                   .'</legend>'
                    .'<form name="previoususers">';                   .'<form name="previoususers">';
        $result .= $tmptext.'</form></fieldset><br />';         $result .= $tmptext.'</form></fieldset><br />';
        if (ref($statushash) eq 'HASH') {         if (ref($statushash) eq 'HASH') {
            $statushash->{'previous'} = 1;             $statushash->{'previous'} = 1;
        }         }
   
     }      }
     if ($tmptext = &Apache::lonselstudent::render_student_list($future_members,      if ($tmptext = &Apache::lonselstudent::render_student_list($future_members,
                                                                "futureusers",                                                                 "futureusers",
Line 567  sub discourse { Line 577  sub discourse {
                                                                \%defaultUsers,                                                                 \%defaultUsers,
                                                                1, "selectedusers",0,'email')                                                                 1, "selectedusers",0,'email')
        ) {         ) {
         my $bcc_future_hdr;         my $bcc_future_hdr;
         if ($crstype eq 'Community') {         if ($crstype eq 'Community') {
             $bcc_future_hdr = &mt('Bcc: community participants with future access');             $bcc_future_hdr = &mt('Bcc: community participants with future access');
         } else {         } else {
             $bcc_future_hdr = &mt('Bcc: course members with future access');             $bcc_future_hdr = &mt('Bcc: course members with future access');
         }         }
         $result .= '<fieldset id="LC_futureusers"><legend>'  
                    .'<b>'.$bcc_future_hdr.'</b>'         $result .= '<fieldset id="LC_futureusers"><legend>'
                    .'</legend>'                   .$bcc_future_hdr
                    .'<form name="futureusers">';                   .'</legend>'
                    .'<form name="futureusers">';
        $result .= $tmptext.'</form></fieldset>';         $result .= $tmptext.'</form></fieldset>';
        if (ref($statushash) eq 'HASH') {         if (ref($statushash) eq 'HASH') {
            $statushash->{'future'} = 1;             $statushash->{'future'} = 1;
        }         }
   
     }      }
     return $result;      return $result;
 }  }
Line 650  sub disgroup { Line 662  sub disgroup {
                     if (ref($access_status) eq 'HASH') {                      if (ref($access_status) eq 'HASH') {
                         $access_status->{$status} = $$numitems{$status};                          $access_status->{$status} = $$numitems{$status};
                     }                      }
                     $r->print('<fieldset><legend><b>'.$lt{$status}.                      $r->print('<fieldset>'.
                               '</b></legend><form name="'.$formname.'">'.                                '<legend>'.$lt{$status}.'</legend>'.
                                 '<form name="'.$formname.'">'.
                               '<span class="LC_nobreak">'.                                '<span class="LC_nobreak">'.
                               '<input type="button" value="'.&mt('Check All').'" '.                                '<input type="button" value="'.&mt('Check All').'" '.
                               'onclick="javascript:toggleAll('."this.form,'check'".')" />'.                                'onclick="javascript:toggleAll('."this.form,'check'".')" />'.
Line 698  sub disgroup { Line 711  sub disgroup {
 sub group_check_uncheck {  sub group_check_uncheck {
     my $output = qq|      my $output = qq|
 <script type="text/javascript">  <script type="text/javascript">
 / <![CDATA[  // <![CDATA[
 function toggleAll(form,action) {  function toggleAll(form,action) {
     if (typeof(form.selectedusers_forminput.length)=="undefined") {      if (typeof(form.selectedusers_forminput.length)=="undefined") {
          if (action == 'check') {           if (action == 'check') {
Line 751  sub groupmail_header { Line 764  sub groupmail_header {
             $brtitle = 'View community groups';                $brtitle = 'View community groups';  
         } else {          } else {
             $brtitle = 'View course groups';              $brtitle = 'View course groups';
         }          }  
         &Apache::lonhtmlcommon::add_breadcrumb          &Apache::lonhtmlcommon::add_breadcrumb
             ({href=>"/adm/coursegroups",              ({href=>"/adm/coursegroups",
               text=>"Groups",                text=>"Groups",
Line 1014  sub disfolder { Line 1027  sub disfolder {
     my ($startblock,$endblock) = &Apache::loncommon::blockcheck(\%setters,'com');      my ($startblock,$endblock) = &Apache::loncommon::blockcheck(\%setters,'com');
     my %lt = &Apache::lonlocal::texthash(      my %lt = &Apache::lonlocal::texthash(
                       sede => 'Select a destination folder to which the messages will be moved.',                        sede => 'Select a destination folder to which the messages will be moved.',
                       nome => 'No messages have been selected to apply ths action to.',                        nome => 'No messages have been selected to apply this action to.',
                       chec => 'Check the checkbox for at least one message.',                          chec => 'Check the checkbox for at least one message.',  
     );      );
     my $jscript = &Apache::loncommon::check_uncheck_jscript();      my $jscript = &Apache::loncommon::check_uncheck_jscript();
Line 1056  ENDDISHEADER Line 1069  ENDDISHEADER
     my $fsqs='&amp;folder='.$folder;      my $fsqs='&amp;folder='.$folder;
     my @temp=&sortedmessages(\%blocked,$startblock,$endblock,\$numblocked,$folder,$msgstatus);      my @temp=&sortedmessages(\%blocked,$startblock,$endblock,\$numblocked,$folder,$msgstatus);
     my $totalnumber=$#temp+1;      my $totalnumber=$#temp+1;
   
     if ($totalnumber < 1) {      if ($totalnumber < 1) {
         $r->print('<p class="LC_info">');          $r->print('<p class="LC_info">');
         if ($msgstatus eq '') {          if ($msgstatus eq '') {
             $r->print(&mt('There are no messages in this folder.'));              $r->print(&mt('There are no messages in this folder.'));
         } elsif ($msgstatus eq 'replied') {          } elsif ($msgstatus eq 'replied') {
             $r->print(&mt('You have not replied to any messages in this folder.'));              $r->print(&mt('You have not replied to any messages in this folder.'));
         } else {           } else {
             $r->print(&mt('There are no '.lc($statushash{$msgstatus}).' messages in this folder.'));              $r->print(&mt('There are no '.lc($statushash{$msgstatus}).' messages in this folder.'));
         }          }
         $r->print('</p>');          $r->print('</p>');
Line 1086  ENDDISHEADER Line 1098  ENDDISHEADER
     if ($lastdis>$#temp) { $lastdis=$#temp; }      if ($lastdis>$#temp) { $lastdis=$#temp; }
     $r->print(&scrollbuttons($startdis,$number,$firstdis,$lastdis,$totalnumber,$msgstatus));      $r->print(&scrollbuttons($startdis,$number,$firstdis,$lastdis,$totalnumber,$msgstatus));
     $r->print('<form method="post" name="disall" action="/adm/email">'.      $r->print('<form method="post" name="disall" action="/adm/email">'.
       '<table class="LC_mail_list"><tr><th colspan="1">&nbsp;</th><th>');        &Apache::loncommon::start_data_table().
             &Apache::loncommon::start_data_table_row().
             '<th colspan="1">&nbsp;</th><th>');
     if ($env{'form.sortedby'} eq "revdate") {      if ($env{'form.sortedby'} eq "revdate") {
  $r->print('<a href = "/adm/email?sortedby=date'.$fsqs.'">'.&mt('Date').'</a></th>');   $r->print('<a href = "/adm/email?sortedby=date'.$fsqs.'">'.&mt('Date').'</a></th>');
     } else {      } else {
Line 1116  ENDDISHEADER Line 1130  ENDDISHEADER
     } else {      } else {
         $r->print('<a href = "/adm/email?sortedby=revcourse'.$fsqs.'">'.&mt('Course').'</a>');          $r->print('<a href = "/adm/email?sortedby=revcourse'.$fsqs.'">'.&mt('Course').'</a>');
     }      }
     $r->print('</th><th>');      $r->print('</th><th colspan="2">');
     if ($env{'form.sortedby'} eq "revstatus") {      if ($env{'form.sortedby'} eq "revstatus") {
  $r->print('<a href = "/adm/email?sortedby=status'.$fsqs.'">'.&mt('Status').'</a></th>');   $r->print('<a href = "/adm/email?sortedby=status'.$fsqs.'">'.&mt('Status').'</a></th>');
     } else {      } else {
Line 1130  ENDDISHEADER Line 1144  ENDDISHEADER
  my ($sendtime,$shortsubj,$fromname,$fromdomain,$status,$origID,   my ($sendtime,$shortsubj,$fromname,$fromdomain,$status,$origID,
     $description,$recv_name,$recv_domain)=       $description,$recv_name,$recv_domain)= 
  @{$temp[$n]};   @{$temp[$n]};
  if (($status ne 'deleted') && defined($sendtime) && $sendtime!~/error/) {          if (($status ne 'deleted') && defined($sendtime) && $sendtime!~/error/) {
               my $class_msgstatus = '';
             $count ++;              $count ++;
     if ($status eq 'new') {              if ($status eq 'new') {
  $r->print('<tr class="LC_mail_new">');                  $class_msgstatus = 'LC_mail_new';
     } elsif ($status eq 'read') {              } elsif ($status eq 'read') {
  $r->print('<tr class="LC_mail_read">');                  $class_msgstatus = 'LC_mail_read';
     } elsif ($status eq 'replied') {              } elsif ($status eq 'replied') {
  $r->print('<tr class="LC_mail_replied">');                   $class_msgstatus = 'LC_mail_replied'; 
     } else {              } else {
  $r->print('<tr class="LC_mail_other">');                  $class_msgstatus = 'LC_mail_other';
     }              }
               $r->print(&Apache::loncommon::start_data_table_row($class_msgstatus));
     my ($dis_name,$dis_domain) = ($fromname,$fromdomain);      my ($dis_name,$dis_domain) = ($fromname,$fromdomain);
     if ($folder eq 'sent') {      if ($folder eq 'sent') {
                 if (defined($recv_name) && defined($recv_domain)) {                  if (defined($recv_name) && defined($recv_domain)) {
Line 1172  ENDDISHEADER Line 1188  ENDDISHEADER
                           '<a href="/adm/email?display='.$origID.$sqs.'">'.                            '<a href="/adm/email?display='.$origID.$sqs.'">'.
                           $item.(($status eq 'new')?'</b>':'').'</a></td>');                            $item.(($status eq 'new')?'</b>':'').'</a></td>');
             }              }
               # Description and Status
             my $showstatus;              my $showstatus;
             my %statushash = &get_msgstatus_types();              my %statushash = &get_msgstatus_types();
             if ($status eq '') {              if ($status eq '') {
Line 1179  ENDDISHEADER Line 1196  ENDDISHEADER
             } else {              } else {
                 $showstatus = $statushash{$status};                  $showstatus = $statushash{$status};
             }              }
     $r->print('<td>'.(($status eq 'new')?'<b>':'').$description.              $r->print('<td>'.(($status eq 'new')?'<b>':'').$description.
                       (($status eq 'new')?'</b>':'').'</td><td>'.                        (($status eq 'new')?'</b>':'').
                       (($status eq 'new')?'<b>':'').$showstatus.                        '</td>');
                       (($status eq 'new')?'</b>':'').'</td></tr>'."\n");              $r->print('<td class="'.$class_msgstatus.'">&nbsp;&nbsp;</td>'.
  } elsif ($status eq 'deleted') {                        '<td>'.
                         (($status eq 'new')?'<b>':'').&mt($showstatus).
                         (($status eq 'new')?'</b>':'').
                         '</td>');
   
               $r->print(&Apache::loncommon::end_data_table_row());
   
           } elsif ($status eq 'deleted') {
 # purge  # purge
     my ($result,$msg) =               my ($result,$msg) = 
  &movemsg(&unescape($origID),$folder,'trash');          &movemsg(&unescape($origID),$folder,'trash');
               }
  }  
     }         }   
     $r->print("</table>\n");      $r->print(&Apache::loncommon::end_data_table());
     $r->print('<table border="0" cellspacing="2" cellpadding="2">  
   
       # Bottom Functions
       $r->print('<table border="0" cellspacing="2" cellpadding="8">
  <tr>   <tr>
   <td>'.    <td>
   '<input type="button" onclick="javascript:checkAll(document.disall.delmark)" value="'.&mt('Check All').'" /><br />'."\n".     <fieldset>
   '<input type="button" onclick="javascript:uncheckAll(document.disall.delmark)" value="'.&mt('Uncheck All').'" />'."\n".     <legend>'.&mt('Select').'</legend>
   '<input type="hidden" name="sortedby" value="'.$env{'form.sortedby'}.'" /></td><td>&nbsp;</td>'."\n".     <span class="LC_nobreak">
   '<td align="center"><b>'.&mt('Action').'</b><br />'."\n".     <input type="button" onclick="javascript:checkAll(document.disall.delmark)" value="'.&mt('Check All').'" />'."\n".
     ' <input type="button" onclick="javascript:uncheckAll(document.disall.delmark)" value="'.&mt('Uncheck All').'" />'."\n".
     '<input type="hidden" name="sortedby" value="'.$env{'form.sortedby'}.'" />
     </span>
     </fieldset>
     </td>'."\n".
     '<td><b>'.&mt('Action').'</b><br />'."\n".
   '  <select name="checkedaction">'."\n");    '  <select name="checkedaction">'."\n");
   
     if ($folder ne 'trash') {      if ($folder ne 'trash') {
Line 1219  ENDDISHEADER Line 1251  ENDDISHEADER
     $r->print("\n".'</select></td>'."\n");      $r->print("\n".'</select></td>'."\n");
   
     if (keys(%gotfolders) > 0) {      if (keys(%gotfolders) > 0) {
         $r->print('<td align="center"><b>'.&mt('Destination folder').'<b><br />');          $r->print('<td><b>'.&mt('Destination folder').'<b><br />');
  my %userfolders;   my %userfolders;
         foreach my $key (keys(%gotfolders)) {          foreach my $key (keys(%gotfolders)) {
             $userfolders{$key} = $key;              $userfolders{$key} = $key;
Line 1228  ENDDISHEADER Line 1260  ENDDISHEADER
         $r->print(&Apache::loncommon::select_form('','movetofolder',%userfolders).          $r->print(&Apache::loncommon::select_form('','movetofolder',%userfolders).
                   '</td>');                    '</td>');
     }      }
     $r->print('<td>&nbsp;</td><td>&nbsp;&nbsp;'.      $r->print('<td>'.
               '<input type="button" name="go" value="'.&mt('Go').                '<input type="button" name="go" value="'.&mt('Go').
               '" onclick="javascript:validate_checkedaction()"/></td>'."\n".                '" onclick="javascript:validate_checkedaction()"/></td>'."\n".
               '</tr></table>');                '</tr></table>');
Line 1246  sub blocked_in_folder { Line 1278  sub blocked_in_folder {
     my $finishblock = &Apache::lonlocal::locallocaltime($endblock);      my $finishblock = &Apache::lonlocal::locallocaltime($endblock);
     my $output = '<br /><br />'.      my $output = '<br /><br />'.
                   &mt('[quant,_1,message is, messages are] not viewable because display of LON-CAPA messages sent to you by other students between [_2] and [_3] is currently being blocked because of online exams.',$numblocked,$beginblock,$finishblock);                    &mt('[quant,_1,message is, messages are] not viewable because display of LON-CAPA messages sent to you by other students between [_2] and [_3] is currently being blocked because of online exams.',$numblocked,$beginblock,$finishblock);
     $output .= &Apache::loncommon::build_block_table($startblock,$endblock,      #$output .= &Apache::loncommon::build_block_table($startblock,$endblock,
                                                      $setters);      #                                                 $setters);
       
       my ($blocked, $blocktext) = &Apache::loncommon::blocking_status("com");
       $output .="<br /><br />".$blocktext;
   
     return $output;      return $output;
 }  }
   
Line 1293  sub compout { Line 1329  sub compout {
              'Forwarding Multiple Messages');               'Forwarding Multiple Messages');
         if ($multiforward > 1) {          if ($multiforward > 1) {
             $r->print(&mt('Each of the[_1] [quant,_2,message] [_3]you checked'              $r->print(&mt('Each of the[_1] [quant,_2,message] [_3]you checked'
                          .' will be forwarded to the recipient(s) you select below.','<b>',$multiforward,'</b>')                           .' will be forwarded to the recipient(s) you select below.'
                            ,'<b>',$multiforward,'</b>')
                     .'<br />');                      .'<br />');
         } else {          } else {
             $r->print(&mt('The message you checked will be forwarded to the recipient(s) you select below.').'<br />');              $r->print(&mt('The message you checked will be forwarded to the recipient(s) you select below.').'<br />');
Line 1357  sub compout { Line 1394  sub compout {
         if (&Apache::lonnet::allowed('dff',$env{'request.course.id'}) ||          if (&Apache::lonnet::allowed('dff',$env{'request.course.id'}) ||
             &Apache::lonnet::allowed('dff',$env{'request.course.id'}.              &Apache::lonnet::allowed('dff',$env{'request.course.id'}.
                                      '/'.$env{'request.course.sec'})) {                                       '/'.$env{'request.course.sec'})) {
   
             my $rectxt;              my $rectxt;
             if (&Apache::loncommon::course_type() eq 'Community') {              if (&Apache::loncommon::course_type() eq 'Community') {
                 $rectxt = &mt("Include in community's 'User records' for recipient(s)");                  $rectxt = &mt("Include in community's 'User records' for recipient(s)");
             } else {              } else {
                 $rectxt = &mt("Include in course's 'User records' for recipient(s)");                  $rectxt = &mt("Include in course's 'User records' for recipient(s)");
             }              }
   
             $dispcrit.='<label>'.              $dispcrit.='<label>'.
                        '<input type="checkbox" name="courserecord" value="1" /> '.                         '<input type="checkbox" name="courserecord" value="1" /> '.
                        $rectxt.                         $rectxt.
Line 1743  sub additional_rec_row { Line 1782  sub additional_rec_row {
     my $bcc = &mt('Bcc:');      my $bcc = &mt('Bcc:');
     my $exmpl = &mt('username:domain,username:domain,...');       my $exmpl = &mt('username:domain,username:domain,...'); 
     my $output = <<"ENDADD";      my $output = <<"ENDADD";
 <tr><td colspan="3"><fieldset id="LC_additionalrecips"><legend><b>$lt->{'ad'}</b> <tt>($exmpl)</tt>:</legend><table>  <tr><td colspan="3"><fieldset id="LC_additionalrecips"><legend>$lt->{'ad'} <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>$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>$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></td></tr>  <tr><td>&nbsp;</td><td>$bcc</td><td><input type="text" size="50" name="additionalrec_bcc" /></td></tr></table></fieldset></td></tr>
Line 1821  sub retrieve_instructor_comments { Line 1860  sub retrieve_instructor_comments {
 }  }
   
 sub disfacetoface {  sub disfacetoface {
     my ($r,$user,$domain)=@_;      my ($r,$user,$domain,$target)=@_;
     my $target=$env{'form.grade_target'};      if ($target eq '') {
           $target=$env{'form.grade_target'};
       }
     unless ($env{'request.course.id'}) { return; }      unless ($env{'request.course.id'}) { return; }
     if  (!&Apache::lonnet::allowed('dff',$env{'request.course.id'})      if  (!&Apache::lonnet::allowed('dff',$env{'request.course.id'})
  && ! &Apache::lonnet::allowed('dff',$env{'request.course.id'}.   && ! &Apache::lonnet::allowed('dff',$env{'request.course.id'}.
Line 1834  sub disfacetoface { Line 1875  sub disfacetoface {
  $env{'course.'.$env{'request.course.id'}.'.domain'},   $env{'course.'.$env{'request.course.id'}.'.domain'},
  $env{'course.'.$env{'request.course.id'}.'.num'},   $env{'course.'.$env{'request.course.id'}.'.num'},
                          '%255b'.$user.'%253a'.$domain.'%255d');                           '%255b'.$user.'%253a'.$domain.'%255d');
     my $result='';      my $result='<div>';
     foreach my $key (sort(keys(%records))) {      foreach my $key (sort(keys(%records))) {
         my %content=&Apache::lonmsg::unpackagemsg($records{$key});          my %content=&Apache::lonmsg::unpackagemsg($records{$key});
         next if ($content{'senderdomain'} eq '');          next if ($content{'senderdomain'} eq '');
         if (!&Apache::lonfeedback::contains_block_html($content{'message'})) {      if (!&Apache::lonfeedback::contains_block_html($content{'message'})) {
             &Apache::lonfeedback::newline_to_br(\$content{'message'});   &Apache::lonfeedback::newline_to_br(\$content{'message'});
         }   }
         if ($content{'subject'}=~/^Record/) {          if ($content{'subject'}=~/^Record/) {
     $result.='<h3>'.&mt('Record').'</h3>';      $result.='<h3>'.&mt('Record').'</h3>';
         } elsif ($content{'subject'}=~/^Broadcast/) {          } elsif ($content{'subject'}=~/^Broadcast/) {
Line 1900  $content{'sendername'}.':'. Line 1941  $content{'sendername'}.':'.
  } else {   } else {
     $r->print('\textbf{'.&mt('No notes, face-to-face discussion records, critical messages or broadcast messages in this [_1].',$lctype).'}\\\\');      $r->print('\textbf{'.&mt('No notes, face-to-face discussion records, critical messages or broadcast messages in this [_1].',$lctype).'}\\\\');
  }   }
       } elsif ($target ne 'tex') {
          $r->print($result.'</div>');
     } else {      } else {
        $r->print($result);   $r->print(&Apache::lonxml::xmlparse($r, 'tex', $result));
     }   }
 }  }
   
 sub general_message {  sub general_message {
Line 1929  sub facetoface { Line 1972  sub facetoface {
     }      }
     my $crstype = &Apache::loncommon::course_type();      my $crstype = &Apache::loncommon::course_type();
     my $leaders = ($crstype eq 'Community') ? 'coordinators and leaders'      my $leaders = ($crstype eq 'Community') ? 'coordinators and leaders'
                                         : 'faculty and staff';                                              : 'faculty and staff';
     &printheader($r,      &printheader($r,
  '/adm/email?recordftf=query',   '/adm/email?recordftf=query',
  "User Notes, Face-to-Face, Critical Messages, Broadcast Messages, Archived Messages");   "User Notes, Face-to-Face, Critical Messages, Broadcast Messages, Archived Messages");
Line 1966  sub facetoface { Line 2009  sub facetoface {
              .&Apache::lonhtmlcommon::end_pick_box()               .&Apache::lonhtmlcommon::end_pick_box()
              .'<br />'               .'<br />'
              .'<input type="submit" value="'.$lt{'subm'}.'" />'               .'<input type="submit" value="'.$lt{'subm'}.'" />'
                .'</form>'
     );      );
   
     if (($stage ne 'query') &&      if (($stage ne 'query') &&
Line 2236  END Line 2280  END
             $r->print('<span class="LC_nobreak"><label><input type="checkbox" name="'.$block.'_'.$parmcount.'" '.$blockstatus.' value="1" />'.$types->{$block}.'</label></span><br />');              $r->print('<span class="LC_nobreak"><label><input type="checkbox" name="'.$block.'_'.$parmcount.'" '.$blockstatus.' value="1" />'.$types->{$block}.'</label></span><br />');
         }          }
         $r->print(<<"END");          $r->print(<<"END");
         </td>          </td>      
         <td><span class="LC_nobreak"><label>          <td><span class="LC_nobreak"><label>
         <input type="checkbox" name="modify_$parmcount" />$lt{'modi'}          <input type="checkbox" name="modify_$parmcount" />$lt{'modi'}
         </label></span><br /><span class="LC_nobreak">          </label></span><br /><span class="LC_nobreak">
Line 2330  sub displaymessage { Line 2374  sub displaymessage {
     my @messages=&sortedmessages(\%blocked,$startblock,$endblock,\$numblocked,$folder,$msgstatus);      my @messages=&sortedmessages(\%blocked,$startblock,$endblock,\$numblocked,$folder,$msgstatus);
     if ( $blocked{$msgid} eq 'ON' ) {      if ( $blocked{$msgid} eq 'ON' ) {
         &printheader($r,'/adm/email',&mt('Display a Message'));          &printheader($r,'/adm/email',&mt('Display a Message'));
         $r->print(&mt('You attempted to display a message that is currently blocked because you are enrolled in one or more courses for which there is an ongoing online exam.'));          #$r->print(&mt('You attempted to display a message that is currently blocked because you are enrolled in one or more courses for which there is an ongoing online exam.'));
         $r->print(&Apache::loncommon::build_block_table($startblock,$endblock,\%setters));          #&build_block_table($r,$startblock,$endblock,\%setters);
           my($blocked, $blocktext) = &Apache::loncommon::blocking_status("com");
           $r->print("<br />".$blocktext);
         return;          return;
     }      }
     if ($msgstatus eq '') {      if ($msgstatus eq '') {
Line 2368  sub displaymessage { Line 2414  sub displaymessage {
     &printheader($r,'/adm/email?display='.&escape($msgid),'Display a Message','',$content{'baseurl'});      &printheader($r,'/adm/email?display='.&escape($msgid),'Display a Message','',$content{'baseurl'});
     my %courseinfo=&Apache::lonnet::coursedescription($content{'courseid'});      my %courseinfo=&Apache::lonnet::coursedescription($content{'courseid'});
   
 # Functions and Actions  
     my $li_start='<span class="LC_nobreak">&bull; ';  
     my $li_end='</span> ';  
   
 # Prepare available functions  # Prepare available functions
     my @functionlist;      my @functionlist;
     if (!$content{'noreplies'}) {      if (!$content{'noreplies'}) {
Line 2401  sub displaymessage { Line 2443  sub displaymessage {
                           .&mt('Next')                            .&mt('Next')
                           .'</a>');                            .'</a>');
     }      }
 # Print functions  
     my $legendtext='<span class="LC_mail_functions">'  
                    .&mt('Functions')  
                    .'</span>';  
     my $showfunctionlist = $li_start.join($li_end.$li_start,@functionlist).$li_end;  
     $r->print('<div class="LC_left_float">'  
              .'<fieldset>'  
              .'<legend>'  
              .$legendtext  
              .'</legend>'  
              .$showfunctionlist  
              .'</fieldset>'  
              .'</div>'  
     );  
   
 # Prepare available actions  # Prepare available actions
     my $symb;      my $symb;
Line 2423  sub displaymessage { Line 2451  sub displaymessage {
     } elsif (defined($content{'baseurl'})) {      } elsif (defined($content{'baseurl'})) {
         $symb=&Apache::lonnet::symbread($content{'baseurl'});          $symb=&Apache::lonnet::symbread($content{'baseurl'});
     }      }
     if ($env{'user.adv'}) {  
         my @actionlist;          my @actionlist;
       if ($env{'user.adv'}) {
   
  if (&Apache::lonnet::allowed('vgr',$env{'request.course.id'})) {   if (&Apache::lonnet::allowed('vgr',$env{'request.course.id'})) {
  push(@actionlist,&Apache::loncommon::track_student_link(   push(@actionlist,&Apache::loncommon::track_student_link(
Line 2449  sub displaymessage { Line 2477  sub displaymessage {
                                      ,$symb                                       ,$symb
                                      ,'check'));                                       ,'check'));
  }   }
       }
   
 # Print actions  # Print functionlist and actionlist in page header
           my $functions='<div class="LC_columnSection">';
   
           # Functionlist
           $functions.=&Apache::lonhtmlcommon::start_funclist();
           foreach my $item (@functionlist) {
               $functions.=&Apache::lonhtmlcommon::add_item_funclist($item);
           }
           $functions .= &Apache::lonhtmlcommon::end_funclist();
   
           # Actionlist
         if (@actionlist) {          if (@actionlist) {
             my $showactionlist = $li_start.join($li_end.$li_start,@actionlist).$li_end;              my $legendtext=&mt('Currently available actions (will open extra window)');
             $legendtext=&mt('[_1]Currently available actions[_2] (will open extra window):'              $functions.=&Apache::lonhtmlcommon::start_funclist($legendtext);
                            ,'<span class="LC_mail_functions">','</span>');              foreach my $item (@actionlist) {
             $r->print('<div class="LC_left_float">'                  $functions.=&Apache::lonhtmlcommon::add_item_funclist($item);
                      .'<fieldset>'              }
                      .'<legend>'              $functions.=&Apache::lonhtmlcommon::end_funclist();
                      .$legendtext  
                      .'</legend>'  
                      .$showactionlist  
                      .'</fieldset>'  
                      .'</div>'  
             );  
         }          }
     }  
           $functions.='</div>';
           $r->print(&Apache::loncommon::head_subbox($functions));
   
   
     my ($tonum,$tolist,$cclist,$bcclist,$groupcclist,%recipients);      my ($tonum,$tolist,$cclist,$bcclist,$groupcclist,%recipients);
     if ($content{'recipid'}) {      if ($content{'recipid'}) {
Line 3149  sub sendoffmail { Line 3185  sub sendoffmail {
     my ($recuname,$recdomain)=split(/\:/,$address);      my ($recuname,$recdomain)=split(/\:/,$address);
             my $msgtxt = $savemsg;              my $msgtxt = $savemsg;
             if ($toaddr{$address}) {              if ($toaddr{$address}) {
         $msgtxt.='<hr />'.$toaddr{$address};          $msgtxt.="\n".'<hr />'."\n".$toaddr{$address};
             }              }
     my @thismsg;      my @thismsg;
     if ($msgtype eq 'critical') {      if ($msgtype eq 'critical') {
Line 3254  sub sendoffmail { Line 3290  sub sendoffmail {
                        '','','','',$recipid);                         '','','','',$recipid);
             }              }
         }          }
         if (!$env{'form.multiforward'}) {           if (!$env{'form.multiforward'}) {
             if ($sendstatus=~/^(\s*(?:ok|con_delayed)\s*)*$/) {              if ($sendstatus=~/^(\s*(?:ok|con_delayed)\s*)*$/) {
                 my $message = &Apache::lonhtmlcommon::confirm_success(&mt('Completed.'));                  my $message = &Apache::lonhtmlcommon::confirm_success(&mt('Completed.'));
                 $message = &Apache::loncommon::confirmwrapper($message);                  $message = &Apache::loncommon::confirmwrapper($message);
Line 3391  sub handler { Line 3427  sub handler {
     &statuschange($env{'form.markdel'},'deleted',$folder);      &statuschange($env{'form.markdel'},'deleted',$folder);
  if (!$result) {   if (!$result) {
             my $message = &Apache::lonhtmlcommon::confirm_success(&mt('Failed to delete the message.'),1);              my $message = &Apache::lonhtmlcommon::confirm_success(&mt('Failed to delete the message.'),1);
             $message .= '<p class="LC_error">'.$msg.'</p>';              $message .= '<p class="LC_error" style="font-size: inherit;">'.$msg.'</p>';
             $message = &Apache::loncommon::confirmwrapper($message);              $message = &Apache::loncommon::confirmwrapper($message);
             $r->print($message);              $r->print($message);
  }   }
Line 3418  sub handler { Line 3454  sub handler {
         my $message = &Apache::lonhtmlcommon::confirm_success(&mt('Marked [quant,_1,message] read',$total));          my $message = &Apache::lonhtmlcommon::confirm_success(&mt('Marked [quant,_1,message] read',$total));
         $message = &Apache::loncommon::confirmwrapper($message);          $message = &Apache::loncommon::confirmwrapper($message);
         $r->print($message);          $r->print($message);
         # $r->print('<p>');
         &Apache::loncommunicate::menu($r);          &Apache::loncommunicate::menu($r);
         &disall($r,($folder?$folder:$dismode),$msgstatus);          &disall($r,($folder?$folder:$dismode),$msgstatus);
     } elsif ($env{'form.markedaction'} eq 'markedunread') {      } elsif ($env{'form.markedaction'} eq 'markedunread') {
Line 3431  sub handler { Line 3468  sub handler {
         my $message = &Apache::lonhtmlcommon::confirm_success(&mt('Marked [quant,_1,message] unread',$total));          my $message = &Apache::lonhtmlcommon::confirm_success(&mt('Marked [quant,_1,message] unread',$total));
         $message = &Apache::loncommon::confirmwrapper($message);          $message = &Apache::loncommon::confirmwrapper($message);
         $r->print($message);          $r->print($message);
         # $r->print('<p>');
         &Apache::loncommunicate::menu($r);          &Apache::loncommunicate::menu($r);
         &disall($r,($folder?$folder:$dismode),$msgstatus);          &disall($r,($folder?$folder:$dismode),$msgstatus);
     } elsif ($env{'form.markedaction'} eq 'markedmove') {      } elsif ($env{'form.markedaction'} eq 'markedmove') {
Line 3439  sub handler { Line 3477  sub handler {
         &printheader($r,'','Moved Messages');          &printheader($r,'','Moved Messages');
         if (!defined($gotfolders{$destfolder})) {          if (!defined($gotfolders{$destfolder})) {
             $r->print(&mt('Destination folder [_1] is not a valid folder',              $r->print(&mt('Destination folder [_1] is not a valid folder',
                       $destfolder));                            '<span class="LC_filename">'.$destfolder.'</span>'));
         } else {          } else {
     my ($total,$failed,@failed_msg)=(0,0);      my ($total,$failed,@failed_msg)=(0,0);
             my @to_move = &Apache::loncommon::get_env_multiple('form.delmark');              my @to_move = &Apache::loncommon::get_env_multiple('form.delmark');
Line 3453  sub handler { Line 3491  sub handler {
     push(@failed_msg,$msg);      push(@failed_msg,$msg);
         }          }
     }      }
             my $message;              my $message = '';
             if ($failed) {              if ($failed) {
                 $message = &Apache::lonhtmlcommon::confirm_success(&mt('Failed to move [quant,_1,message]',$failed),1);                  $message .= &Apache::lonhtmlcommon::confirm_success(&mt('Failed to move [quant,_1,message]',$failed),1);
                 $message .= '<p class="LC_error">'.                  $message .= '<p class="LC_error" style="font-size: inherit;">'.
             join("</p>\n<p class=\"LC_error\">",@failed_msg).              join("</p>\n<p class=\"LC_error\" style=\"font-size: inherit;\">",@failed_msg).
             "</p>\n";              "</p>\n";
             }              }
             $message .= &Apache::lonhtmlcommon::confirm_success(&mt('Moved [quant,_1,message]',$total));              $message .= &Apache::lonhtmlcommon::confirm_success(&mt('Moved [quant,_1,message]',$total));
             $message = &Apache::loncommon::confirmwrapper($message);              $message = &Apache::loncommon::confirmwrapper($message);
             $r->print($message);              $r->print($message);
             # $r->print('<p>');
         }          }
  &Apache::loncommunicate::menu($r);   &Apache::loncommunicate::menu($r);
  &disall($r,($folder?$folder:$dismode),$msgstatus);   &disall($r,($folder?$folder:$dismode),$msgstatus);
Line 3480  sub handler { Line 3519  sub handler {
     }      }
  }   }
  &printheader($r,'','Deleted Messages');   &printheader($r,'','Deleted Messages');
         my $message;          my $message = '';
  if ($failed) {   if ($failed) {
             $message = &Apache::lonhtmlcommon::confirm_success(&mt('Failed to delete [quant,_1,message]',$failed),1);              $message .= &Apache::lonhtmlcommon::confirm_success(&mt('Failed to delete [quant,_1,message]',$failed),1);
             $message .= '<p class="LC_error">'.              $message .= '<p class="LC_error" style="font-size: inherit;">'.
       join("</p>\n<p class=\"LC_error\">",@failed_msg).        join("</p>\n<p class=\"LC_error\" style=\"font-size: inherit;\">",@failed_msg).
       "</p>\n";        "</p>\n";
  }   }
         $message .= &Apache::lonhtmlcommon::confirm_success(&mt('Deleted [quant,_1,message]',$total));          $message .= &Apache::lonhtmlcommon::confirm_success(&mt('Deleted [quant,_1,message]',$total));
         $message = &Apache::loncommon::confirmwrapper($message);          $message = &Apache::loncommon::confirmwrapper($message);
         $r->print($message);          $r->print($message);
         # $r->print('<p>');
  &Apache::loncommunicate::menu($r);   &Apache::loncommunicate::menu($r);
  &disall($r,($folder?$folder:$dismode),$msgstatus);   &disall($r,($folder?$folder:$dismode),$msgstatus);
     } elsif ($env{'form.markunread'}) {      } elsif ($env{'form.markunread'}) {

Removed from v.1.124.4.9  
changed lines
  Added in v.1.151


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>