Diff for /loncom/interface/lonsupportreq.pm between versions 1.90 and 1.95

version 1.90, 2017/01/23 19:51:52 version 1.95, 2019/06/16 05:49:43
Line 67  sub handler { Line 67  sub handler {
         }          }
     }      }
     my $origurl = $env{'form.origurl'};      my $origurl = $env{'form.origurl'};
     $origurl =~ s{^https?://}{};      if ($origurl =~ m{^https?://[^/]+(.*)$}) {
           $origurl =~ $1;
       }
     $origurl =~ s/(`)//g;      $origurl =~ s/(`)//g;
     $origurl =~ s/\$/\(\$\)/g;      $origurl =~ s/\$/\(\$\)/g;
     my $command = $env{'form.command'};      my $command = $env{'form.command'};
Line 393  ENDJS Line 395  ENDJS
             }              }
         }          }
     }      }
     unless ($helpform{'user'} eq 'no') {      unless (($helpform{'user'} eq 'no') || ($env{'request.lti.login'})) {
         $output .= &Apache::lonhtmlcommon::row_title("$html_lt{'unme'}/$html_lt{'doma'}",undef,$css[$i]);          $output .= &Apache::lonhtmlcommon::row_title("$html_lt{'unme'}/$html_lt{'doma'}",undef,$css[$i]);
         my $udom_input = '<input type="hidden" name="udom" value="'.          my $udom_input = '<input type="hidden" name="udom" value="'.
                          &HTML::Entities::encode($udom,'"<>&').'" />'."\n";                           &HTML::Entities::encode($udom,'"<>&').'" />'."\n";
Line 430  ENDJS Line 432  ENDJS
         }          }
         $output .= &Apache::lonhtmlcommon::row_closure();          $output .= &Apache::lonhtmlcommon::row_closure();
         $num ++;          $num ++;
           $i = $num%2;
       }
       unless ($env{'request.lti.login'}) {
           $output .= &Apache::lonhtmlcommon::row_title("$html_lt{'urlp'}",undef,$css[$i]).
                      $server."\n".'<input type="hidden" name="sourceurl" value="'.
                      &HTML::Entities::encode($sourceurl,'"<>&').'" />'."\n".
                      &Apache::lonhtmlcommon::row_closure();
     }      }
     $i = $num%2;  
     $output .= &Apache::lonhtmlcommon::row_title("$html_lt{'urlp'}",undef,$css[$i]).  
                $server."\n".'<input type="hidden" name="sourceurl" value="'.  
                &HTML::Entities::encode($sourceurl,'"<>&').'" />'."\n".  
                &Apache::lonhtmlcommon::row_closure();  
     unless ($helpform{'phone'} eq 'no') {      unless ($helpform{'phone'} eq 'no') {
         my $reqd;          my $reqd;
         if ($helpform{'phone'} eq 'req') {          if ($helpform{'phone'} eq 'req') {
Line 447  ENDJS Line 451  ENDJS
         $num ++;          $num ++;
         $i = $num%2;          $i = $num%2;
     }      }
     unless ($helpform{'course'} eq 'no') {      unless (($helpform{'course'} eq 'no') || ($env{'request.lti.login'})) {
         $output .= &Apache::lonhtmlcommon::row_title("$html_lt{'crsd'}$details_title",undef,$css[$i]);          $output .= &Apache::lonhtmlcommon::row_title("$html_lt{'crsd'}$details_title",undef,$css[$i]);
         if ($totcodes > 0) {          if ($totcodes > 0) {
             my $numtitles = @codetitles;              my $numtitles = @codetitles;
Line 522  ENDJS Line 526  ENDJS
         $num ++;          $num ++;
         $i = $num%2;          $i = $num%2;
     }      }
     unless ($helpform{'section'} eq 'no') {      unless (($helpform{'section'} eq 'no') || ($env{'request.lti.login'})) {
         $output .= &Apache::lonhtmlcommon::row_title($html_lt{'secn'},undef,$css[$i]);          $output .= &Apache::lonhtmlcommon::row_title($html_lt{'secn'},undef,$css[$i]);
         if ($sectionlist) {          if ($sectionlist) {
             $output .= "<div id=\"LC_helpdesk_sectionlist\"><select name=\"sectionsel\">\n".              $output .= "<div id=\"LC_helpdesk_sectionlist\"><select name=\"sectionsel\">\n".
Line 657  sub print_request_receipt { Line 661  sub print_request_receipt {
     my @ENVvars = ('HTTP_HOST','HTTP_USER_AGENT','REMOTE_ADDR','SERVER_ADDR','SERVER_NAME');      my @ENVvars = ('HTTP_HOST','HTTP_USER_AGENT','REMOTE_ADDR','SERVER_ADDR','SERVER_NAME');
     my @envvars = ('browser.os','browser.type','browser.version','user.home','request.role');      my @envvars = ('browser.os','browser.type','browser.version','user.home','request.role');
     my @loncvars = ('user.name','user.domain','request.course.sec','request.course.id');      my @loncvars = ('user.name','user.domain','request.course.sec','request.course.id');
     my @cookievars = ('lonID');      my @cookievars;
       if ($ENV{'SERVER_PORT'} == 443) {
           @cookievars = ('lonLinkID');
       } else {
           @cookievars = ('lonID');
       }
   
     my $admin = $Apache::lonnet::perlvar{'lonAdminMail'};      my $admin = $Apache::lonnet::perlvar{'lonAdminMail'};
     my $origmail = $Apache::lonnet::perlvar{'lonSupportEMail'};      my $origmail = $Apache::lonnet::perlvar{'lonSupportEMail'};
     my $defdom = &get_domain();      my $defdom = &get_domain();
     my ($to,$bcc,$addtext) =  
         &Apache::loncommon::build_recipient_list(undef,'helpdeskmail',  
                                                  $defdom,$origmail);  
     my $from = $admin;      my $from = $admin;
     my %helpform;      my %helpform;
     my %domconfig =      my %domconfig =
Line 691  sub print_request_receipt { Line 697  sub print_request_receipt {
     unless ($helpform{'phone'} eq 'no') {      unless ($helpform{'phone'} eq 'no') {
         $formvars{'phone'} = 1;          $formvars{'phone'} = 1;
     }      }
     unless ($helpform{'section'} eq 'no') {      unless (($helpform{'section'} eq 'no') || ($env{'request.lti.login'})) {
         $formvars{'section'} = 1;          $formvars{'section'} = 1;
     }      }
     unless ($helpform{'course'} eq 'no') {      unless (($helpform{'course'} eq 'no') || ($env{'request.lti.login'})) {
         $formvars{'course'} = 1;          $formvars{'course'} = 1;
     }      }
     unless ($helpform{'cc'} eq 'no') {      unless ($helpform{'cc'} eq 'no') {
Line 703  sub print_request_receipt { Line 709  sub print_request_receipt {
     unless ($helpform{'screenshot'} eq 'no') {      unless ($helpform{'screenshot'} eq 'no') {
         $formvars{'screenshot'} = 1;          $formvars{'screenshot'} = 1;
     }      }
     my $coursecode;      my ($coursecode,$sourceurl);
     if ($formvars{'course'}) {      if ($formvars{'course'}) {
         $coursecode = $env{'form.coursecode'};          $coursecode = $env{'form.coursecode'};
         if ($coursecode eq '') {          if ($coursecode eq '') {
Line 797  sub print_request_receipt { Line 803  sub print_request_receipt {
             $badccmsg .= '<br />'.&mt('The following Cc e-mail addresses are invalid: '). &Apache::loncommon::cleanup_html(join(', ',@bad_ccs));              $badccmsg .= '<br />'.&mt('The following Cc e-mail addresses are invalid: '). &Apache::loncommon::cleanup_html(join(', ',@bad_ccs));
         }          }
     }      }
     $env{'form.user'} = "'".$env{'form.uname'}.':'.$env{'form.udom'}."'";      if ($env{'request.lti.login'}) {
           if (($env{'user.name'} ne '') && ($env{'user.domain'} ne '')) {
               $env{'form.user'} = "'".$env{'user.name'}.':'.$env{'user.domain'}."'";
           }
           $sourceurl = &Apache::lonnet::absolute_url().$url;
       } else {
           $env{'form.user'} = "'".$env{'form.uname'}.':'.$env{'form.udom'}."'";
           $sourceurl = $env{'form.sourceurl'};
       }
     if ($formvars{'course'}) {      if ($formvars{'course'}) {
         $env{'form.crsi'} = $env{'form.title'};          $env{'form.crsi'} = $env{'form.title'};
         if ($coursecode ne '') {          if ($coursecode ne '') {
Line 836  sub print_request_receipt { Line 850  sub print_request_receipt {
     }      }
     $supportmsg .= "$lt{'subject'}: $env{'form.subject'}      $supportmsg .= "$lt{'subject'}: $env{'form.subject'}
 $lt{'description'}: $env{'form.description'}  $lt{'description'}: $env{'form.description'}
 $lt{'sourceurl'}: $env{'form.sourceurl'}  $lt{'sourceurl'}: $sourceurl
 $lt{'date'}: $reporttime  $lt{'date'}: $reporttime
 ";  ";
   
Line 870  $lt{'date'}: $reporttime Line 884  $lt{'date'}: $reporttime
                     next if ($helpform{$item} eq 'no');                      next if ($helpform{$item} eq 'no');
                 }                  }
                 next if (($item eq 'crsi') && ($helpform{'course'} eq 'no'));                  next if (($item eq 'crsi') && ($helpform{'course'} eq 'no'));
                   next if (($item eq 'user') && ($env{'request.lti.login'}));
                 my $showitem = $env{'form.'.$item};                  my $showitem = $env{'form.'.$item};
                 $showitem = &Apache::loncommon::cleanup_html($showitem);                  $showitem = &Apache::loncommon::cleanup_html($showitem);
                 $displaymsg .=                   $displaymsg .= 
Line 878  $lt{'date'}: $reporttime Line 893  $lt{'date'}: $reporttime
             }              }
         }          }
     }      }
   
       my ($requname,$requdom,$reqemail);
       foreach my $field ('uname','udom','email') {
           $env{'form.'.$field} =~ s/^\s+//;
           $env{'form.'.$field} =~ s/\s+$//;
       }
       if ($env{'form.uname'} =~ /^$match_username$/) {
           $requname = $env{'form.uname'};
       }
       if ($env{'form.udom'} =~ /^$match_domain$/) {
           $requdom = $env{'form.udom'};
       }
       if ($env{'form.email'} =~ m/^[^\@]+\@[^\@]+$/) {
           $reqemail = $env{'form.email'};
       }
   
       my $dom_in_effect;
       unless ($env{'user.domain'} eq 'public') {
           $dom_in_effect = $env{'user.domain'};
       }
       if ($dom_in_effect eq '') {
           $dom_in_effect = $requdom;
       }
       if ($dom_in_effect eq '') {
           $dom_in_effect = $defdom;
       }
   
     $displaymsg .= '<span class="LC_helpform_receipt_cat">'.      $displaymsg .= '<span class="LC_helpform_receipt_cat">'.
                    $lt{'date'}.'</span>: '.$reporttime.'<br />'."\n";                     $lt{'date'}.'</span>: '.$reporttime.'<br />'."\n";
   
Line 900  END Line 942  END
         &print_header($r,$url,'process');          &print_header($r,$url,'process');
     }      }
     my $bad_email = 0;      my $bad_email = 0;
       my ($to,$bcc,$addtext) =
           &Apache::loncommon::build_recipient_list(undef,'helpdeskmail',
                                                    $dom_in_effect,$origmail,
                                                    $requname,$requdom,
                                                    $reqemail);
     if ($to =~ /,/) {      if ($to =~ /,/) {
         my @ok_email;           my @ok_email; 
         foreach my $email (split(/,/,$to)) {          foreach my $email (split(/,/,$to)) {
Line 937  END Line 984  END
     }      }
     $r->print(&Apache::loncommon::confirmwrapper($message));      $r->print(&Apache::loncommon::confirmwrapper($message));
   
     if (defined($env{'form.email'})) {      if ($reqemail ne '') {
         $env{'form.email'} =~ s/^\s+//;          $from = $reqemail;
         $env{'form.email'} =~ s/\s+$//;  
         if ($env{'form.email'} =~ m/^[^\@]+\@[^\@]+$/) {  
             $from = $env{'form.email'};  
         }  
     }      }
   
     if (defined($env{'form.cc'})) {      if (defined($env{'form.cc'})) {
Line 991  END Line 1034  END
     if ($$cookie{'lonID'} =~ /lonID=($LONCAPA::handle_re);/) {      if ($$cookie{'lonID'} =~ /lonID=($LONCAPA::handle_re);/) {
         $cookies{'lonID'} = $1;          $cookies{'lonID'} = $1;
     }      }
       if ($$cookie{'lonLinkID'} =~ /lonLinkID=([a-f0-9]+_linked);/) {
           $cookies{'lonLinkID'} = $1;
       }
       my $lti_info;
       if (($env{'request.lti.login'}) && ($env{'request.course.id'})) {
           my $ltidom = $env{'course.'.$env{'request.course.id'}.'.domain'};
           if ($ltidom) {
               my %lti = &Apache::lonnet::get_domain_lti($ltidom,'provider');
               if (ref($lti{$env{'request.lti.login'}}) eq 'HASH') {
                   if ($lti{$env{'request.lti.login'}}{'consumer'}) {
                       $lti_info = "LTI consumer: ".$lti{$env{'request.lti.login'}}{'consumer'}."\n";
                   }
               }
           }
       }
     if ($attachmentpath =~ m-/([^/]+)$-) {      if ($attachmentpath =~ m-/([^/]+)$-) {
         $fname = $1;          $fname = $1;
         $displaymsg .= '<br />'          $displaymsg .= '<br />'
Line 1009  END Line 1066  END
         foreach my $var (@envvars) {          foreach my $var (@envvars) {
             $supportmsg .= "$var: $env{$var}\n";              $supportmsg .= "$var: $env{$var}\n";
         }          }
           if ($lti_info) {
               $supportmsg .= $lti_info;
           }
     }      }
   
     my $cc_string;      my $cc_string;
Line 1032  END Line 1092  END
         foreach my $var (@loncvars) {          foreach my $var (@loncvars) {
             $attachment_text .= "$var: $env{$var}\n";              $attachment_text .= "$var: $env{$var}\n";
         }          }
         $attachment_text = $envdata;          if ($lti_info) {
               $attachment_text .= $lti_info;
           }
     }      }
   
     if ($addtext) {      if ($addtext) {

Removed from v.1.90  
changed lines
  Added in v.1.95


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