Diff for /loncom/interface/lonsupportreq.pm between versions 1.79.2.2 and 1.82

version 1.79.2.2, 2017/01/23 01:56:26 version 1.82, 2016/02/19 02:39:07
Line 27 Line 27
 package Apache::lonsupportreq;  package Apache::lonsupportreq;
   
 use strict;  use strict;
 use MIME::Types;  
 use MIME::Lite;  
 use CGI::Cookie();  use CGI::Cookie();
 use Apache::Constants qw(:common);  use Apache::Constants qw(:common);
 use Apache::loncommon();  use Apache::loncommon();
Line 79  sub handler { Line 77  sub handler {
     }      }
     return OK;      return OK;
 }  }
       
 sub print_request_form {  sub print_request_form {
     my ($r,$origurl,$function) = @_;      my ($r,$origurl,$function) = @_;
     my ($os,$browser,$bversion,$uname,$udom,$uhome,$urole,$usec,$email,$cid,      my ($os,$browser,$bversion,$uhost,$uname,$udom,$uhome,$urole,$usec,$email,$cid,
         $cdom,$cnum,$ctitle,$ccode,$sectionlist,$lastname,$firstname,$server,          $cdom,$cnum,$ctitle,$ccode,$sectionlist,$lastname,$firstname,$server,
         $formname,$public,$homeserver,$knownuser,$captcha_form,$captcha_error,          $formname,$public,$homeserver,$knownuser,$captcha_form,$captcha_error,
         $captcha,$recaptcha_version);          $captcha,$recaptcha_version);
Line 91  sub print_request_form { Line 89  sub print_request_form {
     $os = $env{'browser.os'};      $os = $env{'browser.os'};
     $browser = $env{'browser.type'};      $browser = $env{'browser.type'};
     $bversion = $env{'browser.version'};      $bversion = $env{'browser.version'};
       $uhost = $env{'request.host'};
     if (($env{'user.name'} eq 'public') && ($env{'user.domain'} eq 'public')) {      if (($env{'user.name'} eq 'public') && ($env{'user.domain'} eq 'public')) {
         $public = 1;          $public = 1;
     } else {      } else {
Line 105  sub print_request_form { Line 104  sub print_request_form {
             }              }
         }          }
     }      }
     if (($env{'user.name'} =~ /^$match_username$/) &&      if (($env{'user.name'} =~ /^$match_username$/) && 
         ($env{'user.domain'} =~ /^$match_domain$/) && (!$public)) {          ($env{'user.domain'} =~ /^$match_domain$/) && (!$public)) {
         $knownuser = 1;          $knownuser = 1;
     } else {      } else {
Line 153  sub print_request_form { Line 152  sub print_request_form {
                   subj => 'Subject',                    subj => 'Subject',
                   detd => 'Detailed Description',                    detd => 'Detailed Description',
                   opfi => 'Optional file upload',                    opfi => 'Optional file upload',
                   uplf => 'Upload a file (e.g., a screenshot) relevant to your help request (128 KB max.)',                    uplf => 'Upload a file (e.g., a screenshot) relevant to your help request (1 MB max.)',
                   fini => 'Finish',                    fini => 'Finish',
                   clfm => 'Clear Form',                    clfm => 'Clear Form',
     );      );
Line 269  function initialize_codes() { Line 268  function initialize_codes() {
                 my $allidlist = $idlist{$codetitles[0]};                  my $allidlist = $idlist{$codetitles[0]};
                 $jscript .= &Apache::courseclassifier::courseset_js_start($formname,$longtitles_str,$allidlist);                  $jscript .= &Apache::courseclassifier::courseset_js_start($formname,$longtitles_str,$allidlist);
                 $jscript .= $scripttext;                  $jscript .= $scripttext;
                 $jscript .= &Apache::courseclassifier::javascript_code_selections($formname,\@codetitles);                  $jscript .= &Apache::courseclassifier::javascript_code_selections($formname,@codetitles);
                 $loaditems = '';                  $loaditems = '';
             }              }
         }          }
Line 283  $jscript Line 282  $jscript
 $loaditems  $loaditems
 // ]]>  // ]]>
 </script>  </script>
   <script type="text/javascript" src="/res/adm/includes/file_upload.js"></script>
 ENDJS  ENDJS
     if ($recaptcha_version >=2) {      if ($recaptcha_version >=2) {
         $js.= "\n".'<script src="https://www.google.com/recaptcha/api.js"></script>'."\n";          $js.= "\n".'<script src="https://www.google.com/recaptcha/api.js"></script>'."\n";
Line 341  ENDJS Line 341  ENDJS
     $num ++;      $num ++;
     $i = $num%2;      $i = $num%2;
     if ($knownuser) {      if ($knownuser) {
         if ($homeserver) {           if ($homeserver) {
             $output .= &Apache::lonhtmlcommon::row_title($html_lt{'emac'},undef,$css[$i]).              $output .= &Apache::lonhtmlcommon::row_title($html_lt{'emac'},undef,$css[$i]).
                        '<input type="text" size="50" name="cc" value="" /><br />'."\n".                         '<input type="text" size="50" name="cc" value="" /><br />'."\n".
                        &Apache::lonhtmlcommon::row_closure();                         &Apache::lonhtmlcommon::row_closure();
Line 516  ENDJS Line 516  ENDJS
     $i = $num%2;       $i = $num%2; 
     if ($knownuser) {      if ($knownuser) {
         if ($homeserver) {          if ($homeserver) {
             $output .= &Apache::lonhtmlcommon::row_title($html_lt{'opfi'},undef,$css[$i]).              $output .= &Apache::lonhtmlcommon::row_title($html_lt{'opfi'},undef,$css[$i])
                        ' <input type="file" name="screenshot" size="20" /><br />'.                  .' <input type="file" name="screenshot" class="flUpload" size="20" />'
                        "\n".$html_lt{'uplf'}."\n".                  .'<input type="hidden" id="free_space" value="1048576" />'
                        &Apache::lonhtmlcommon::row_closure();                  .'<br />'."\n".$html_lt{'uplf'}."\n"
                   .&Apache::lonhtmlcommon::row_closure();
             $num ++;              $num ++;
             $i = $num%2;              $i = $num%2;
         }          }
Line 850  END Line 851  END
     if ((defined($env{'user.name'})) && (!$public)) {      if ((defined($env{'user.name'})) && (!$public)) {
         if ($homeserver && $env{'form.screenshot.filename'}) {          if ($homeserver && $env{'form.screenshot.filename'}) {
             $attachmentsize = length($env{'form.screenshot'});              $attachmentsize = length($env{'form.screenshot'});
             if ($attachmentsize > 131072) {              if ($attachmentsize > 1048576) {
                 $displaymsg .= '<br /><span class="LC_warning">'.                  $displaymsg .= '<br /><span class="LC_warning">'.
                                &mt('The uploaded screenshot file ([_1] bytes) included with your request exceeded the maximum allowed size - 128 KB, and has therefore been discarded.',$attachmentsize).'</span>';                                 &mt('The uploaded screenshot file ([_1] bytes) included with your request exceeded the maximum allowed size - 1 MB, and has therefore been discarded.',$attachmentsize).'</span>';
             } else {              } else {
                 $attachmentpath=&Apache::lonnet::userfileupload('screenshot',undef,'helprequests');                  $attachmentpath=&Apache::lonnet::userfileupload('screenshot',undef,'helprequests');
             }              }
Line 885  END Line 886  END
         }          }
     }      }
     
     my $msg = MIME::Lite->new(      my $cc_string;
                  From    => $from,  
                  To      => $to,  
                  Subject => $subject,  
                  Type    =>'TEXT',  
                  Data    => $supportmsg,  
                  );  
     if ($homeserver) {      if ($homeserver) {
         if (@ok_ccs > 0) {          if (@ok_ccs > 0) {
             my $cc_string = join(', ',@ok_ccs);              $cc_string = join(', ',@ok_ccs);
             $msg->add("Cc" => $cc_string);  
         }          }
     }      }
     if ($bcc ne '') {  
         $msg->add("Bcc" => $bcc);  
     }  
     $msg->attr("content-type"         => "text/plain");  
     $msg->attr("content-type.charset" => "UTF-8");  
   
     if ($homeserver && $attachmentpath) {  
         my ($type, $encoding) = MIME::Types::by_suffix($attachmentpath);  
         $msg->attach(Type     => $type,  
                      Path     => $attachmentpath,  
                      Filename => $fname  
                      );  
   
     } else {      my $attachment_text;
       unless ($homeserver && $attachmentpath) {
         my $envdata = '';          my $envdata = '';
         foreach my $var (@cookievars) {          foreach my $var (@cookievars) {
             $envdata .= "$var: $cookies{$var}\n";              $envdata .= "$var: $cookies{$var}\n";
Line 925  END Line 908  END
         foreach my $var (@loncvars) {          foreach my $var (@loncvars) {
             $envdata .= "$var: $env{$var}\n";              $envdata .= "$var: $env{$var}\n";
         }          }
         $msg->attach(Type => 'TEXT',          $attachment_text = $envdata;
                      Data => $envdata);  
     }      }
       
 ### Send it:      # Compose and send a MIME email
     $msg->send('sendmail');      &Apache::loncommon::mime_email($from, $to, $subject, $supportmsg, $cc_string, $bcc, 
                                       $attachmentpath, $fname, $attachment_text);
   
     if ($attachmentpath =~ m|$Apache::lonnet::perlvar{'lonDaemons'}/tmp/helprequests/(\d+)/[^/]+|) {      if ($attachmentpath =~ m|$Apache::lonnet::perlvar{'lonDaemons'}/tmp/helprequests/(\d+)/[^/]+|) {
         unlink($attachmentpath);          unlink($attachmentpath);

Removed from v.1.79.2.2  
changed lines
  Added in v.1.82


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