Diff for /loncom/interface/lonmsgdisplay.pm between versions 1.81 and 1.86

version 1.81, 2007/07/17 18:35:54 version 1.86, 2008/06/06 05:24:28
Line 555  sub disgroup { Line 555  sub disgroup {
                       'recipients to select.');                        'recipients to select.');
         return $result;          return $result;
     } else {      } else {
         $result = &mt('Select message recipients from the group members listed below.<br />');            $result = &mt('Select message recipients from the group members listed below.').'<br />';  
         my %Sortby = (          my %Sortby = (
                          active   => {},                           active   => {},
                          previous => {},                           previous => {},
Line 737  $content{'sendername'}.':'. Line 737  $content{'sendername'}.':'.
             '<br />'.&mt('Subject').': '.$content{'subject'}.              '<br />'.&mt('Subject').': '.$content{'subject'}.
             '<br /><pre>'.              '<br /><pre>'.
               &Apache::lontexconvert::msgtexconverted($content{'message'}).                &Apache::lontexconvert::msgtexconverted($content{'message'}).
             '</pre><small>';              '</pre><div class="LC_error">';
         my ($rec_button,$reprec_button);          my ($rec_button,$reprec_button);
         $rec_button = &mt('Move to Inbox');          $rec_button = &mt('Move to Inbox');
         if (!$content{'noreplies'}) {          if (!$content{'noreplies'}) {
Line 752  $content{'sendername'}.':'. Line 752  $content{'sendername'}.':'.
         } else {          } else {
             $result .= &mt('Access to other pages will be prevented until you have moved the message to your inbox.');               $result .= &mt('Access to other pages will be prevented until you have moved the message to your inbox.'); 
         }          }
         $result .= '</small><br />'.          $result .= '</div><br />'.
             '<input type="submit" name="rec_'.$key.'" value="'.$rec_button.'" />';              '<input type="submit" name="rec_'.$key.'" value="'.$rec_button.'" />';
         if (!$content{'noreplies'}) {          if (!$content{'noreplies'}) {
             $result .= '<input type="submit" name="reprec_'.$key.'" '.              $result .= '<input type="submit" name="reprec_'.$key.'" '.
Line 929  sub disfolder { Line 929  sub disfolder {
 <script type="text/javascript">  <script type="text/javascript">
     $jscript      $jscript
   
     function checkfoldermove() {  
         if (document.disall.checkedaction.options[document.disall.checkedaction.selectedIndex].value == 'markedmove') {  
             if (document.disall.movetofolder.options[document.disall.movetofolder.selectedIndex].value == "") {  
                 alert("$lt{'sede'}");  
                 return;  
             }  
         }  
         return;   
     }  
   
     function validate_checkedaction() {      function validate_checkedaction() {
         document.disall.markedaction.value = document.disall.checkedaction.options[document.disall.checkedaction.selectedIndex].value;          document.disall.markedaction.value = document.disall.checkedaction.options[document.disall.checkedaction.selectedIndex].value;
         if (document.disall.checkedaction.options[document.disall.checkedaction.selectedIndex].value == 'markedmove') {          if (document.disall.checkedaction.options[document.disall.checkedaction.selectedIndex].value == 'markedmove') {
Line 1110  ENDDISHEADER Line 1100  ENDDISHEADER
   '<input type="button" onclick="javascript:uncheckAll(document.disall.delmark)" value="'.&mt('Uncheck 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'}.'" /></td><td>&nbsp;</td>'."\n".    '<input type="hidden" name="sortedby" value="'.$env{'form.sortedby'}.'" /></td><td>&nbsp;</td>'."\n".
   '<td align="center"><b>'.&mt('Action').'</b><br />'."\n".    '<td align="center"><b>'.&mt('Action').'</b><br />'."\n".
   '  <select name="checkedaction" onchange="javascript:checkfoldermove()">'."\n");    '  <select name="checkedaction">'."\n");
   
     if ($folder ne 'trash') {      if ($folder ne 'trash') {
         $r->print('    <option value="markeddel">'.&mt('Delete').'</option>'."\n");          $r->print('    <option value="markeddel">'.&mt('Delete').'</option>'."\n");
Line 1204  sub compout { Line 1194  sub compout {
         &printheader($r,'/adm/email?compose=multiforward',          &printheader($r,'/adm/email?compose=multiforward',
              'Forwarding Multiple Messages');               'Forwarding Multiple Messages');
         if ($multiforward > 1) {          if ($multiforward > 1) {
             $r->print(&mt('Each of the <b>[quant,_1,message]</b> you checked              $r->print(&mt('Each of the <b>[quant,_1,message]</b> you checked'
 will be forwarded to the recipient(s) you select below.',$multiforward).'<br />');                           .' will be forwarded to the recipient(s) you select below.',$multiforward)
                       .'<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 1219  will be forwarded to the recipient(s) yo Line 1210  will be forwarded to the recipient(s) yo
     my $dissub='';      my $dissub='';
     my $dismsg='';      my $dismsg='';
     my $disbase='';      my $disbase='';
       my $attachrow;
     my $func=&mt('Send New');      my $func=&mt('Send New');
     my %lt=&Apache::lonlocal::texthash('us'  => 'Username',      my %lt=&Apache::lonlocal::texthash('us'  => 'Username',
        'do'  => 'Domain',         'do'  => 'Domain',
Line 1233  will be forwarded to the recipient(s) yo Line 1225  will be forwarded to the recipient(s) yo
                                        'gmt' => 'General message text',                                         'gmt' => 'General message text',
                                        'tff' => 'The file format for the uploaded portion of the message is',                                         'tff' => 'The file format for the uploaded portion of the message is',
                                        'uas' => 'Upload and Send',                                         'uas' => 'Upload and Send',
                                          'atta' => 'Attachment',
                                       );                                        );
       my %attachmax = (
                        text => '(128 KB max size)',
                        num  => 131072,
                       );
       if (!$forwarding && !$multiforward) {
           $attachrow = '<br />'.$lt{'atta'}.' '.$attachmax{'text'}.': <input type="file" name="attachment" />';
       }
     if (&Apache::lonnet::allowed('srm',$env{'request.course.id'})      if (&Apache::lonnet::allowed('srm',$env{'request.course.id'})
  || &Apache::lonnet::allowed('srm',$env{'request.course.id'}.   || &Apache::lonnet::allowed('srm',$env{'request.course.id'}.
     '/'.$env{'request.course.sec'})) {      '/'.$env{'request.course.sec'})) {
Line 1427  $latexHelp. Line 1427  $latexHelp.
 </table>  </table>
 $latexHelp  $latexHelp
 <textarea name="message" id="message" cols="80" rows="15" wrap="hard">$dismsg  <textarea name="message" id="message" cols="80" rows="15" wrap="hard">$dismsg
 </textarea></p><br />  </textarea>
   $attachrow
   </p>
   <br />
 $dispcrit  $dispcrit
 $disbase  $disbase
 ENDCOMP  ENDCOMP
Line 1514  ENDREP Line 1517  ENDREP
 sub additional_rec_row {  sub additional_rec_row {
     my ($lt) = @_;      my ($lt) = @_;
     my $cc = &mt('Cc:');      my $cc = &mt('Cc:');
     my $bcc = &mt('Bcc:');       my $bcc = &mt('Bcc:');
       my $exmpl = &mt('username:domain,username:domain,...'); 
     my $output = <<"ENDADD";      my $output = <<"ENDADD";
 <tr><td>$lt->{'ad'} :<br /><tt>username:domain,username:domain, ...  <tr><td>$lt->{'ad'} :<br /><tt>($exmpl)
 </tt></td><td>&nbsp;<span class="LC_nobreak">$cc   </tt></td><td>&nbsp;<span class="LC_nobreak">$cc 
 <input type="text" size="50" name="additionalrec_cc" /></span><br />  <input type="text" size="50" name="additionalrec_cc" /></span><br />
 <span class="LC_nobreak">$bcc <input type="text" size="50" name="additionalrec_bcc" /></span></td></tr>  <span class="LC_nobreak">$bcc <input type="text" size="50" name="additionalrec_bcc" /></span></td></tr>
Line 2073  sub displaymessage { Line 2077  sub displaymessage {
  $counter++;   $counter++;
     }      }
     $r->print('</pre>');      $r->print('</pre>');
   
       my $see_anonymous;
       my $from_student = 0;
       if ($env{'request.course.id'} eq $content{'courseid'}) {
    my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
    my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
    my $username = $content{'sendername'}.':'.$content{'senderdomain'};
    my %classlist_entry =
       &Apache::lonnet::get('classlist',[$username],$cdom,$cnum);
    if (exists($classlist_entry{$username})) {
       $from_student = 1;
       $see_anonymous = &Apache::lonnet::allowed('rin',$env{'request.course.id'}.($env{'request.course.sec'}?'/'.$env{'request.course.sec'}:''));
    }
       }
   
   
     my $number_of_messages = scalar(@messages); #subtract 1 for last index      my $number_of_messages = scalar(@messages); #subtract 1 for last index
 # start output  # start output
     &printheader($r,'/adm/email?display='.&escape($msgid),'Display a Message','',$content{'baseurl'});      &printheader($r,'/adm/email?display='.&escape($msgid),'Display a Message','',$content{'baseurl'});
Line 2107  sub displaymessage { Line 2127  sub displaymessage {
         $symb=&Apache::lonnet::symbread($content{'baseurl'});          $symb=&Apache::lonnet::symbread($content{'baseurl'});
     }      }
     if ($env{'user.adv'}) {      if ($env{'user.adv'}) {
    my $adv_actions;
  $r->print('<table border="2" width="100%"><tr bgcolor="#FFAAAA"><td>'.&mt('Currently available actions (will open extra window)').':</td>');   $r->print('<table border="2" width="100%"><tr bgcolor="#FFAAAA"><td>'.&mt('Currently available actions (will open extra window)').':</td>');
  if (&Apache::lonnet::allowed('vgr',$env{'request.course.id'})) {   if (&Apache::lonnet::allowed('vgr',$env{'request.course.id'})) {
  $r->print('<td><b>'.&Apache::loncommon::track_student_link(&mt('View recent activity'),$content{'sendername'},$content{'senderdomain'},'check').'</b></td>');   $r->print('<td><b>'.&Apache::loncommon::track_student_link(&mt('View recent activity'),$content{'sendername'},$content{'senderdomain'},'check').'</b></td>');
Line 2146  sub displaymessage { Line 2167  sub displaymessage {
     if (defined($content{'baseurl'})) {      if (defined($content{'baseurl'})) {
         $baseurl = &Apache::lonenc::check_encrypt($content{'baseurl'});          $baseurl = &Apache::lonenc::check_encrypt($content{'baseurl'});
     }      }
     $r->print(&Apache::loncommon::student_image_tag($content{'senderdomain'},$content{'sendername'}));      if ($from_student && $see_anonymous ) {
    $r->print(&Apache::loncommon::student_image_tag($content{'senderdomain'},$content{'sendername'}));
       }
   
     $r->print('<br /><b>'.&mt('Subject').':</b> '.$content{'subject'});      $r->print('<br /><b>'.&mt('Subject').':</b> '.$content{'subject'});
     if ($folder eq 'sent') {      if ($folder eq 'sent') {
         $r->print('<br /><b>'.&mt('To').':</b> '.$tolist);          $r->print('<br /><b>'.&mt('To').':</b> '.$tolist);
Line 2380  sub sendoffmail { Line 2404  sub sendoffmail {
     my %msg_status;      my %msg_status;
     my $numsent = 0;      my $numsent = 0;
     my $nosentstore = 1;      my $nosentstore = 1;
       my $attachmenturl;
       my $now = time;
     my ($cdom,$cnum,$group);      my ($cdom,$cnum,$group);
     if (exists($env{'form.group'})) {      if (exists($env{'form.group'})) {
         $group = $env{'form.group'};          $group = $env{'form.group'};
Line 2402  sub sendoffmail { Line 2428  sub sendoffmail {
  if ($env{'form.forwid'}) {   if ($env{'form.forwid'}) {
     my $msgid=$env{'form.forwid'};      my $msgid=$env{'form.forwid'};
     my %message=&Apache::lonnet::get('nohist_email'.$suffix,[$msgid]);      my %message=&Apache::lonnet::get('nohist_email'.$suffix,[$msgid]);
     %content=&Apache::lonmsg::unpackagemsg($message{$msgid},1);      %content=&Apache::lonmsg::unpackagemsg($message{$msgid},1,1);
     &statuschange($msgid,'forwarded',$folder);      &statuschange($msgid,'forwarded',$folder);
     $env{'form.message'}.="\n\n-- Forwarded message --\n\n".              if ($content{'attachmenturl'} ne '') {
  $content{'message'};                  $attachmenturl = $content{'attachmenturl'};
               }
       $env{'form.message'} .= "\n\n-- Forwarded message --\n\n".
                       $content{'message'};
  }   }
  if ($env{'form.replyid'}) {   if ($env{'form.replyid'}) {
     my $msgid=$env{'form.replyid'};      my $msgid=$env{'form.replyid'};
Line 2504  sub sendoffmail { Line 2533  sub sendoffmail {
                                        $env{'user.domain'},\%reciphash);                                         $env{'user.domain'},\%reciphash);
         if ($recipstatus ne 'ok') {          if ($recipstatus ne 'ok') {
             &Apache::lonnet::logthis('Failed to store Bcc and Cc recipients for '.$env{'user.name'}.':'.$env{'user.domain'});              &Apache::lonnet::logthis('Failed to store Bcc and Cc recipients for '.$env{'user.name'}.':'.$env{'user.domain'});
         }            }
           if ($env{'form.attachment'}) {
               if (length($env{'form.attachment'})<131072) {
                   $attachmenturl=&Apache::lonnet::userfileupload('attachment',undef,'feedback/'.$now);
               } else {
                   $r->print('<p><span class="LC_warning">'.&mt('Attachment not included - exceeded permitted length').'</span><br /></p>');
               }
           } elsif ($env{'form.multiforward'}) {
               if ($env{'form.attachmenturl'} ne '') {
                   $attachmenturl = $env{'form.attachmenturl'};
               }
           }
         my @recusers;          my @recusers;
         my @recudoms;          my @recudoms;
  foreach my $address (sort(keys(%toaddr))) {   foreach my $address (sort(keys(%toaddr))) {
Line 2530  sub sendoffmail { Line 2570  sub sendoffmail {
     &Apache::lonmsg::user_normal_msg($recuname,$recdomain,      &Apache::lonmsg::user_normal_msg($recuname,$recdomain,
      $msgsubj,$msgtxt,       $msgsubj,$msgtxt,
      $content{'citation'},       $content{'citation'},
      undef,undef,       undef,$attachmenturl,
      $env{'form.permanent'},       $env{'form.permanent'},
      \$sentmessage{$address},       \$sentmessage{$address},
                                                      undef,undef,undef,                                                       undef,undef,undef,
Line 2563  sub sendoffmail { Line 2603  sub sendoffmail {
                 $specialresult =                   $specialresult = 
                     &Apache::lonmsg::user_normal_msg_raw($cnum,$cdom,                      &Apache::lonmsg::user_normal_msg_raw($cnum,$cdom,
                         $subj_prefix.' '.$course_str,$savemsg,undef,undef,                          $subj_prefix.' '.$course_str,$savemsg,undef,undef,
                         undef,undef,undef,\$specialmsgid,undef,undef,undef,                          $attachmenturl,undef,undef,\$specialmsgid,undef,undef,undef,
                         undef,undef,1);                          undef,undef,1);
                 $specialmsgid = &unescape($specialmsgid);                  $specialmsgid = &unescape($specialmsgid);
                 if ($specialresult eq 'ok') {                  if ($specialresult eq 'ok') {
Line 2580  sub sendoffmail { Line 2620  sub sendoffmail {
     $pid);      $pid);
                             &Apache::lonmsg::user_normal_msg_raw($cnum,$cdom,                              &Apache::lonmsg::user_normal_msg_raw($cnum,$cdom,
                                 $subj_prefix.' ['.$recipient.']',$msgsubj,                                  $subj_prefix.' ['.$recipient.']',$msgsubj,
                                 undef,undef,undef,undef,$usermsgid,undef,                                  undef,undef,$attachmenturl,undef,$usermsgid,undef,
                                 undef,$specialmsgid,undef,undef,undef,1);                                  undef,$specialmsgid,undef,undef,undef,1);
                         }                          }
                     }                      }
Line 2588  sub sendoffmail { Line 2628  sub sendoffmail {
                         &Apache::lonmsg::process_sent_mail($msgsubj,                          &Apache::lonmsg::process_sent_mail($msgsubj,
                            $subj_prefix,$numsent,$stamp,$msgname,$msgdom,                             $subj_prefix,$numsent,$stamp,$msgname,$msgdom,
                            $msgcount,$context,$pid,$savemsg,\@recusers,                             $msgcount,$context,$pid,$savemsg,\@recusers,
                            \@recudoms);                             \@recudoms,undef,$attachmenturl);
                     }                      }
                 } else {                  } else {
                     &Apache::lonnet::logthis('Failed to create record of critical, broadcast or archived message in '.$env{'course.'.$env{'request.course.id'}.'.num'}.' '&mt('at').' '.$env{'course.'.$env{'request.course.id'}.'.domain'}.' - no msgid generated');                      &Apache::lonnet::logthis('Failed to create record of critical, broadcast or archived message in '.$env{'course.'.$env{'request.course.id'}.'.num'}.' '&mt('at').' '.$env{'course.'.$env{'request.course.id'}.'.domain'}.' - no msgid generated');
Line 2600  sub sendoffmail { Line 2640  sub sendoffmail {
                 &Apache::lonmsg::process_sent_mail($msgsubj,$subj_prefix,                  &Apache::lonmsg::process_sent_mail($msgsubj,$subj_prefix,
                        $numsent,$stamp,$env{'user.name'},                         $numsent,$stamp,$env{'user.name'},
                        $env{'user.domain'},$msgcount,$context,                         $env{'user.domain'},$msgcount,$context,
                        $$,$savemsg,\@recusers,\@recudoms);                         $$,$savemsg,\@recusers,\@recudoms,undef,$attachmenturl);
             }              }
         }          }
         if (!$env{'form.multiforward'}) {           if (!$env{'form.multiforward'}) { 
Line 2617  sub sendoffmail { Line 2657  sub sendoffmail {
         }          }
             } else {              } else {
         $r->print('<p><span class="LC_error">'.&mt('Could not deliver message').'</span> '.          $r->print('<p><span class="LC_error">'.&mt('Could not deliver message').'</span> '.
           &mt('Please use the browser "Back" button and correct the recipient addresses '."($sendstatus)").'</p>');            &mt('Please use the browser "Back" button and correct the recipient addresses ([_1]).',$sendstatus).'</p>');
             }              }
         }          }
     }      }
Line 2852  sub handler { Line 2892  sub handler {
             foreach my $item (@to_forward) {              foreach my $item (@to_forward) {
                 my $msgid=&unescape($item);                  my $msgid=&unescape($item);
                 my %message=&Apache::lonnet::get('nohist_email'.$suffix,[$msgid]);                  my %message=&Apache::lonnet::get('nohist_email'.$suffix,[$msgid]);
                 my %content=&Apache::lonmsg::unpackagemsg($message{$msgid},1);                  my %content=&Apache::lonmsg::unpackagemsg($message{$msgid},1,1);
                 if ($env{'form.showorigsubj'}) {                  if ($env{'form.showorigsubj'}) {
                     $env{'form.subject'} = $fixed_subj.$content{'subject'};                      $env{'form.subject'} = $fixed_subj.$content{'subject'};
                 } else {                  } else {
Line 2866  sub handler { Line 2906  sub handler {
                         &Apache::loncommon::plainname($uname,$udom).' ('.                          &Apache::loncommon::plainname($uname,$udom).' ('.
                                            $uname.':'.$udom.')';                                             $uname.':'.$udom.')';
                 }                  }
                 $env{'form.message'} .= "\n\n-- Forwarded message --\n\n".                  $env{'form.message'}.="\n\n-- Forwarded message --\n\n".
                                         $content{'message'};                                        $content{'message'};
                   $env{'form.attachmenturl'} = $content{'attachmenturl'};
                   $env{'form.multiforwid'} = $item;
                 $fwdcount ++;                  $fwdcount ++;
                 $r->print($fwdcount.': ');                   $r->print($fwdcount.': '); 
                 $sendresult{$msgid} = &sendoffmail($r,$folder);                  $sendresult{$msgid} = &sendoffmail($r,$folder);

Removed from v.1.81  
changed lines
  Added in v.1.86


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