+
END
+ $r->print(&Apache::loncommon::end_page());
return;
}
sub print_request_receipt {
my ($r,$url,$function) = @_;
- my @envvars = ('lonID','HTTP_HOST','HTTP_USER_AGENT','REMOTE_ADDR','SERVER_ADDR','SERVER_NAME','browser.os','browser.type','browser.version','user.home','request.role');
+ 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 @loncvars = ('user.name','user.domain','request.course.sec','request.course.id');
+ my @cookievars = ('lonID');
my $bodytag = &Apache::loncommon::bodytag('',$function,'topmargin="0" marginheight="0"',1);
my $admin = $Apache::lonnet::perlvar{'lonAdminMail'};
@@ -577,75 +654,84 @@ sub print_request_receipt {
my $fontcolor = &Apache::loncommon::designparm($function.'.font');
my $vlinkcolor = &Apache::loncommon::designparm($function.'.vlink');
my $tablecolor = &Apache::loncommon::designparm($function.'.tabbg');
- my @formvars = ('username','email','uname','udom','origurl','phone','section','coursecode','title','subject','description','screenshot');
- &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},\@formvars);
+ my @formvars = ('username','email','uname','udom','sourceurl','phone','section','coursecode','title','subject','description','screenshot');
+ &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},\@formvars);
+ my $coursecode = $env{'form.coursecode'};
+ if ($coursecode eq '') {
+ if (defined($env{'form.Year'})) {
+ $coursecode .= $env{'form.Year'};
+ }
+ if (defined($env{'form.Semester'})) {
+ $coursecode .= $env{'form.Semester'};
+ }
+ if (defined($env{'form.Department'})) {
+ $coursecode .= $env{'form.Department'};
+ }
+ if (defined($env{'form.Number'})) {
+ $coursecode .= $env{'form.Number'};
+ }
+ }
my $supportmsg = qq|
-Name: $ENV{'form.username'}
-Email: $ENV{'form.email'}
-Username/domain: $ENV{'form.uname'} - $ENV{'form.udom'}
-Tel: $ENV{'form.phone'}
-Course Information: $ENV{'form.title'} - $ENV{'form.coursecode'} - section: $ENV{'form.section'}
-Subject: $ENV{'form.subject'}
-Description: $ENV{'form.description'}
-URL: $ENV{'form.origurl'}
+Name: $env{'form.username'}
+Email: $env{'form.email'}
+Username/domain: $env{'form.uname'} - $env{'form.udom'}
+Tel: $env{'form.phone'}
+Course Information: $env{'form.title'} - $coursecode - section: $env{'form.section'}
+Subject: $env{'form.subject'}
+Description: $env{'form.description'}
+URL: $env{'form.sourceurl'}
Date/Time: $reporttime
|;
- my $descrip = $ENV{'form.description'};
+ my $descrip = $env{'form.description'};
$descrip =~ s#\n# #g;
my $displaymsg = qq|
-Name: $ENV{'form.username'}
-Email: $ENV{'form.email'}
-Username/domain: $ENV{'form.uname'} - $ENV{'form.udom'}
-Tel: $ENV{'form.phone'}
-Course Information: $ENV{'form.title'} - $ENV{'form.coursecode'} - section: $ENV{'form.section'}
-Subject: $ENV{'form.subject'}
+Name: $env{'form.username'}
+Email: $env{'form.email'}
+Username/domain: $env{'form.uname'} - $env{'form.udom'}
+Tel: $env{'form.phone'}
+Course Information: $env{'form.title'} - $coursecode - section: $env{'form.section'}
+Subject: $env{'form.subject'}
Description: $descrip
-URL: $ENV{'form.origurl'}
+URL: $env{'form.sourceurl'}
Date/Time: $reporttime
|;
-
- if ($to =~ m/^[^\@]+\@[^\@]+$/) {
- $r->print(<
-
- LON-CAPA support request recorded
-
+ my $html=&Apache::lonxml::xmlbegin();
+ my $head = &Apache::loncommon::head('LON-CAPA support request recorded');
+ $r->print(<<"END");
+$html
+$head
$bodytag
- A support request has been sent to $to
+
END
+ if ($r->uri eq '/adm/helpdesk') {
+ &print_header($r,$url,'process');
+ }
+ if ($to =~ m/^[^\@]+\@[^\@]+$/) {
+ $r->print("A support request has been sent to $to");
} else {
$to = $admin;
if ($to =~ m/^[^\@]+\@[^\@]+$/) {
- $r->print(<
-
- LON-CAPA support request recorded
-
-$bodytag
- A support request has been sent to $to
+ $r->print("A support request has been sent to $to");
END
} else {
$r->print(<
-
- LON-CAPA support request recorded
-
-$bodytag
Warning: Problem with support e-mail address
As the e-mail address provided for this LON-CAPA server ($to) does not appear to be a valid e-mail address, your support request has not been sent to the LON-CAPA support staff or administrator at your institution. Instead a copy has been sent to the LON-CAPA support team at Michigan State University.
END
$to = 'helpdesk@lon-capa.org';
}
}
- if (defined($ENV{'form.email'})) {
- if ($ENV{'form.email'} =~ m/^[^\@]+\@[^\@]+$/) {
- $from = $ENV{'form.email'};
+ if (defined($env{'form.email'})) {
+ if ($env{'form.email'} =~ m/^[^\@]+\@[^\@]+$/) {
+ $from = $env{'form.email'};
}
}
- my $subject = $ENV{'form.subject'};
+ my $subject = $env{'form.subject'};
$subject =~ s#(`)#'#g;
$subject =~ s#\$#\(\$\)#g;
$supportmsg =~ s#(`)#'#g;
@@ -656,9 +742,9 @@ END
my $attachmentpath = '';
my $attachmentsize = '';
- if (defined($ENV{'user.name'})) {
- if ($ENV{'form.screenshot.filename'}) {
- $attachmentsize = length($ENV{'form.screenshot'});
+ if (defined($env{'user.name'})) {
+ if ($env{'form.screenshot.filename'}) {
+ $attachmentsize = length($env{'form.screenshot'});
if ($attachmentsize > 131072) {
$displaymsg .= " The uploaded screenshot file ($attachmentsize bytes) included with your request exceeded the maximum allowed size - 128 KB, and has therefore been discarded.";
} else {
@@ -667,13 +753,25 @@ END
}
}
+ my %cookies = ();
+ my $cookie=CGI::Cookie->parse($r->header_in('Cookie'));
+ if ($$cookie{'lonID'} =~ /lonID=(\w+);/) {
+ $cookies{'lonID'} = $1;
+ }
+
if ($attachmentpath =~ m-/([^/]+)$-) {
$fname = $1;
- $displaymsg .= " An uploaded screenshot file - $fname ($attachmentsize bytes) was included in the request sent by $ENV{'user.name'} from LON-CAPA domain: $ENV{'user.domain'}";
+ $displaymsg .= " An uploaded screenshot file - $fname ($attachmentsize bytes) was included in the request sent by $env{'user.name'} from LON-CAPA domain: $env{'user.domain'}";
$supportmsg .= "\n";
- foreach (@envvars) {
+ foreach (@cookievars) {
+ $supportmsg .= "$_: $cookies{$_}\n";
+ }
+ foreach (@ENVvars) {
$supportmsg .= "$_: $ENV{$_}\n";
}
+ foreach (@envvars) {
+ $supportmsg .= "$_: $env{$_}\n";
+ }
}
my $msg = MIME::Lite->new(
@@ -693,24 +791,24 @@ END
} else {
my $envdata = '';
- foreach (@envvars) {
+ foreach (@cookievars) {
+ $envdata .= "$_: $cookies{$_}\n";
+ }
+ foreach (@ENVvars) {
$envdata .= "$_: $ENV{$_}\n";
}
+ foreach (@envvars) {
+ $envdata .= "$_: $env{$_}\n";
+ }
foreach (@loncvars) {
- $envdata .= "$_: $ENV{$_}\n";
+ $envdata .= "$_: $env{$_}\n";
}
$msg->attach(Type => 'TEXT',
Data => $envdata);
}
### Send it:
- # ->send can cause an sh launch which can pass all of %ENV along
- # which can be to large for /bin/sh's little mind
- my %oldENV=%ENV;
- undef(%ENV);
$msg->send('sendmail');
- %ENV=%oldENV;
- undef(%oldENV);
if ($attachmentpath =~ m#$Apache::lonnet::perlvar{'lonDaemons'}/tmp/helprequests/(\d+)/[^/]+#) {
unlink($attachmentpath);
@@ -763,11 +861,21 @@ END
|);
- foreach (@envvars) {
- unless($ENV{$_} eq '') {
+ foreach (@cookievars) {
+ unless($cookies{$_} eq '') {
+ $r->print("$_: $cookies{$_}, ");
+ }
+ }
+ foreach (@ENVvars) {
+ unless($ENV{$_} eq '') {
$r->print("$_: $ENV{$_}, ");
}
}
+ foreach (@envvars) {
+ unless($env{$_} eq '') {
+ $r->print("$_: $env{$_}, ");
+ }
+ }
$r->print("
|
@@ -785,11 +893,82 @@ END
|