version 1.80, 2015/06/18 20:19:06
|
version 1.85, 2017/01/18 21:07:31
|
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,$uhost,$uname,$udom,$uhome,$urole,$usec,$email,$cid, |
my ($os,$browser,$bversion,$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); |
$formname,$public,$homeserver,$knownuser,$captcha_form,$captcha_error, |
|
$captcha,$recaptcha_version); |
$function = &Apache::loncommon::get_users_function() if (!$function); |
$function = &Apache::loncommon::get_users_function() if (!$function); |
$ccode = ''; |
$ccode = ''; |
$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 103 sub print_request_form {
|
} |
} |
} |
} |
} |
} |
|
if (($env{'user.name'} =~ /^$match_username$/) && |
|
($env{'user.domain'} =~ /^$match_domain$/) && (!$public)) { |
|
$knownuser = 1; |
|
} else { |
|
my $lonhost = $r->dir_config('lonHostID'); |
|
($captcha_form,$captcha_error,$captcha,$recaptcha_version) = |
|
&Apache::loncommon::captcha_display('login',$lonhost); |
|
} |
if ($homeserver) { |
if ($homeserver) { |
$uhome = $env{'user.home'}; |
$uhome = $env{'user.home'}; |
$urole = $env{'request.role'}; |
$urole = $env{'request.role'}; |
Line 261 function initialize_codes() {
|
Line 267 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 277 $loaditems
|
Line 283 $loaditems
|
</script> |
</script> |
<script type="text/javascript" src="/res/adm/includes/file_upload.js"></script> |
<script type="text/javascript" src="/res/adm/includes/file_upload.js"></script> |
ENDJS |
ENDJS |
|
if ($recaptcha_version >=2) { |
|
$js.= "\n".'<script src="https://www.google.com/recaptcha/api.js"></script>'."\n"; |
|
} |
my %add_entries = ( |
my %add_entries = ( |
style => "margin-top:0px;margin-bottom:0px;", |
style => "margin-top:0px;margin-bottom:0px;", |
onload => "initialize_codes();", |
onload => "initialize_codes();", |
Line 330 ENDJS
|
Line 339 ENDJS
|
&Apache::lonhtmlcommon::row_closure(); |
&Apache::lonhtmlcommon::row_closure(); |
$num ++; |
$num ++; |
$i = $num%2; |
$i = $num%2; |
if (($env{'user.name'} =~ /^$match_username$/) && (!$public)) { |
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 344 ENDJS
|
Line 353 ENDJS
|
&HTML::Entities::encode($udom,'"<>&').'" />'."\n"; |
&HTML::Entities::encode($udom,'"<>&').'" />'."\n"; |
my $uname_input = '<input type="hidden" name="uname" value="'. |
my $uname_input = '<input type="hidden" name="uname" value="'. |
&HTML::Entities::encode($uname,'"<>&').'" />'."\n"; |
&HTML::Entities::encode($uname,'"<>&').'" />'."\n"; |
if (($env{'user.name'} =~ /^$match_username$/) && |
if ($knownuser) { |
($env{'user.domain'} =~ /^$match_domain$/) && (!$public)) { |
|
$output .= '<i>'.$html_lt{'unme'}.'</i>: '.$uname.' <i>'.$html_lt{'doma'}.'</i>: '.$udom.$udom_input.$uname_input; |
$output .= '<i>'.$html_lt{'unme'}.'</i>: '.$uname.' <i>'.$html_lt{'doma'}.'</i>: '.$udom.$udom_input.$uname_input; |
} else { |
} else { |
my $udomform = ''; |
my $udomform = ''; |
Line 505 ENDJS
|
Line 513 ENDJS
|
&Apache::lonhtmlcommon::row_closure(); |
&Apache::lonhtmlcommon::row_closure(); |
$num ++; |
$num ++; |
$i = $num%2; |
$i = $num%2; |
if (($env{'user.name'} =~ /^$match_username$/) && (!$public)) { |
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" class="flUpload" size="20" />' |
.' <input type="file" name="screenshot" class="flUpload" size="20" />' |
Line 516 ENDJS
|
Line 524 ENDJS
|
$i = $num%2; |
$i = $num%2; |
} |
} |
} else { |
} else { |
my $lonhost = $r->dir_config('lonHostID'); |
if ($captcha_form) { |
my ($captchaform,$error) = |
|
&Apache::loncommon::captcha_display('login',$lonhost); |
|
if ($captchaform) { |
|
$output .= &Apache::lonhtmlcommon::row_title( |
$output .= &Apache::lonhtmlcommon::row_title( |
'<span title="'.&mt('required').'">'. |
'<span title="'.&mt('required').'">'. |
&mt('Validation'). |
&mt('Validation'). |
' <span class="LC_info">*</span></span>' |
' <span class="LC_info">*</span></span>' |
,undef,$css[$i]). |
,undef,$css[$i]). |
$captchaform."\n". |
$captcha_form."\n". |
&Apache::lonhtmlcommon::row_closure(); |
&Apache::lonhtmlcommon::row_closure(); |
$num ++; |
$num ++; |
$i = $num%2; |
$i = $num%2; |
Line 880 END
|
Line 885 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 920 END
|
Line 907 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); |