--- loncom/interface/lonsupportreq.pm 2017/10/15 03:43:52 1.79.2.3.2.1
+++ loncom/interface/lonsupportreq.pm 2019/07/26 18:03:59 1.79.2.4
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Helpdesk request form
#
-# $Id: lonsupportreq.pm,v 1.79.2.3.2.1 2017/10/15 03:43:52 raeburn Exp $
+# $Id: lonsupportreq.pm,v 1.79.2.4 2019/07/26 18:03:59 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -69,7 +69,9 @@ sub handler {
}
}
my $origurl = $env{'form.origurl'};
- $origurl =~ s{^https?://}{};
+ if ($origurl =~ m{^https?://[^/]+(.*)$}) {
+ $origurl =~ $1;
+ }
$origurl =~ s/(`)//g;
$origurl =~ s/\$/\(\$\)/g;
my $command = $env{'form.command'};
@@ -151,7 +153,6 @@ sub print_request_form {
}
}
- my %coursecodes;
my %codes;
my @codetitles;
my %cat_titles;
@@ -159,9 +160,7 @@ sub print_request_form {
my %idlist;
my %idnums;
my %idlist_titles;
- my $caller = 'global';
my $totcodes = 0;
- my $format_reply;
my $jscript = '';
my $loaditems = qq|
function initialize_codes() {
@@ -169,10 +168,17 @@ function initialize_codes() {
}
|;
unless ($helpform{'course'} eq 'no') {
- $totcodes = &Apache::courseclassifier::retrieve_instcodes(\%coursecodes,$codedom);
- if ($totcodes > 0) {
- $format_reply = &Apache::lonnet::auto_instcode_format($caller,$codedom,\%coursecodes,\%codes,\@codetitles,\%cat_titles,\%cat_order);
- if ($format_reply eq 'ok') {
+ my $instcats = &Apache::lonnet::get_dom_instcats($codedom);
+ if (ref($instcats) eq 'HASH') {
+ if ((ref($instcats->{'codetitles'}) eq 'ARRAY') && (ref($instcats->{'codes'}) eq 'HASH') &&
+ (ref($instcats->{'cat_titles'}) eq 'HASH') && (ref($instcats->{'cat_order'}) eq 'HASH')) {
+ %codes = %{$instcats->{'codes'}};
+ @codetitles = @{$instcats->{'codetitles'}};
+ %cat_titles = %{$instcats->{'cat_titles'}};
+ %cat_order = %{$instcats->{'cat_order'}};
+ $totcodes = scalar(keys(%codes));
+ }
+ if ($totcodes > 0) {
my $numtypes = @codetitles;
&Apache::courseclassifier::build_code_selections(\%codes,\@codetitles,\%cat_titles,\%cat_order,\%idlist,\%idnums,\%idlist_titles);
my ($scripttext,$longtitles) = &Apache::courseclassifier::javascript_definitions(\@codetitles,\%idlist,\%idlist_titles,\%idnums,\%cat_titles);
@@ -662,6 +668,9 @@ sub print_request_receipt {
my $admin = $Apache::lonnet::perlvar{'lonAdminMail'};
my $origmail = $Apache::lonnet::perlvar{'lonSupportEMail'};
my $defdom = &get_domain();
+ my ($to,$bcc,$addtext) =
+ &Apache::loncommon::build_recipient_list(undef,'helpdeskmail',
+ $defdom,$origmail);
my $from = $admin;
my %helpform;
my %domconfig =
@@ -705,8 +714,12 @@ sub print_request_receipt {
$coursecode = $env{'form.coursecode'};
if ($coursecode eq '') {
my $totcodes = 0;
- my %coursecodes;
- $totcodes = &Apache::courseclassifier::retrieve_instcodes(\%coursecodes,$defdom);
+ my $instcats = &Apache::lonnet::get_dom_instcats($defdom);
+ if (ref($instcats) eq 'HASH') {
+ if (ref($instcats->{'codes'}) eq 'HASH') {
+ $totcodes = scalar(keys(%{$instcats->{'codes'}}));
+ }
+ }
my @standardnames = &Apache::loncommon::get_standard_codeitems();
if ($totcodes > 0) {
my $noregexps = 1;
@@ -875,33 +888,6 @@ $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$/) {
- $requdom = $env{'form.udom'};
- }
- 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 .= ''.
$lt{'date'}.': '.$reporttime.'
'."\n";
@@ -924,11 +910,6 @@ END
&print_header($r,$url,'process');
}
my $bad_email = 0;
- my ($to,$bcc,$addtext) =
- &Apache::loncommon::build_recipient_list(undef,'helpdeskmail',
- $dom_in_effect,$origmail,
- $requname,$requdom,
- $reqemail);
if ($to =~ /,/) {
my @ok_email;
foreach my $email (split(/,/,$to)) {
@@ -966,8 +947,12 @@ END
}
$r->print(&Apache::loncommon::confirmwrapper($message));
- if ($reqemail ne '') {
- $from = $reqemail;
+ if (defined($env{'form.email'})) {
+ $env{'form.email'} =~ s/^\s+//;
+ $env{'form.email'} =~ s/\s+$//;
+ if ($env{'form.email'} =~ m/^[^\@]+\@[^\@]+$/) {
+ $from = $env{'form.email'};
+ }
}
if (defined($env{'form.cc'})) {