--- loncom/interface/lonsupportreq.pm 2010/04/14 07:31:21 1.55.4.3
+++ loncom/interface/lonsupportreq.pm 2012/02/10 19:22:19 1.66.6.2
@@ -1,5 +1,5 @@
#
-# $Id: lonsupportreq.pm,v 1.55.4.3 2010/04/14 07:31:21 raeburn Exp $
+# $Id: lonsupportreq.pm,v 1.66.6.2 2012/02/10 19:22:19 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -36,8 +36,7 @@ use Apache::lonhtmlcommon;
use Apache::lonnet;
use Apache::lonlocal;
use Apache::lonacc();
-use Apache::courseclassifier;
-use LONCAPA;
+use LONCAPA qw(:DEFAULT :match);
sub handler {
@@ -57,7 +56,7 @@ sub handler {
&Apache::lonacc::get_posted_cgi($r);
}
my $function = $env{'form.function'};
- my $origurl = &unescape($env{'form.origurl'});
+ my $origurl = $env{'form.origurl'};
my $command = $env{'form.command'};
if ($command eq 'process') {
@@ -70,22 +69,20 @@ sub handler {
sub print_request_form {
my ($r,$origurl,$function) = @_;
- my ($os,$browser,$bversion,$uhost,$uname,$udom,$uhome,$urole,$usec,$email,$cid,$cdom,$cnum,$ctitle,$ccode,$sectionlist,$lastname,$firstname,$server,$formname);
+ my ($os,$browser,$bversion,$uhost,$uname,$udom,$uhome,$email,
+ $lastname,$firstname,$server,$formname,$public);
$function = &Apache::loncommon::get_users_function() if (!$function);
- $ccode = '';
$os = $env{'browser.os'};
$browser = $env{'browser.type'};
$bversion = $env{'browser.version'};
$uhost = $env{'request.host'};
- my ($uname,$udom);
- if (($env{'user.name'} ne 'public') && ($env{'user.domain'} ne 'public')) {
+ if (($env{'user.name'} eq 'public') && ($env{'user.domain'} eq 'public')) {
+ $public = 1;
+ } else {
$uname = $env{'user.name'};
$udom = $env{'user.domain'};
}
$uhome = $env{'user.home'};
- $urole = $env{'request.role'};
- $usec = $env{'request.course.sec'};
- $cid = $env{'request.course.id'};
$formname = 'logproblem';
my $machine = &Apache::lonnet::absolute_url();
if ($origurl =~ m-^https?://-) {
@@ -111,14 +108,7 @@ sub print_request_form {
entr => 'Enter the username you use to log-in to LON-CAPA, and your domain.',
urlp => 'URL of page',
phon => 'Phone',
- crsd => 'Course Details',
- enin => 'Enter institutional course code',
pick => 'Pick',
- enct => 'Enter course title',
- secn => 'Section Number',
- sele => 'Select',
- titl => 'Title',
- lsec => 'LON-CAPA sec',
subj => 'Subject',
detd => 'Detailed Description',
opfi => 'Optional file upload',
@@ -145,16 +135,6 @@ function validate() {
END
$scripttag .= &Apache::lonhtmlcommon::javascript_valid_email();
- if ($cid) {
- $cdom = $env{'course.'.$cid.'.domain'};
- $cnum = $env{'course.'.$cid.'.num'};
- }
- if ($cdom && $cnum) {
- my %csettings = &Apache::lonnet::get('environment',['description','internal.coursecode','internal.sectionnums'],$cdom,$cnum);
- $ctitle = $csettings{'description'};
- $ccode = $csettings{'internal.coursecode'};
- $sectionlist = $csettings{'internal.sectionnums'};
- }
if ($env{'environment.permanentemail'}) {
$email = $env{'environment.permanentemail'};
@@ -169,70 +149,30 @@ END
if ($env{'environment.firstname'}) {
$firstname = $env{'environment.firstname'};
}
- my @sections = split(/,/,$sectionlist);
- my %groupid;
- foreach my $section (@sections) {
- my ($sec,$grp) = split(/:/,$section);
- $groupid{$sec} = $grp;
+
+ &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['codedom',
+ 'useremail','useraccount']);
+ if ($env{'form.origurl'} eq '/adm/createaccount') {
+ if ($email eq '') {
+ if ($env{'form.useremail'} =~ /^[^\@]+\@[^\@]+$/) {
+ $email = &HTML::Entities::encode($env{'form.useremail'},'"<>&');
+ }
+ }
+ if ($uname eq '') {
+ if ($env{'form.useraccount'} =~ /^$match_username$/) {
+ $uname = &HTML::Entities::encode($env{'form.useraccount'},'"<>&');
+ }
+ }
}
- &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['codedom']);
my $codedom = &get_domain();
- my $details_title;
- if ($codedom) {
- $details_title = '
('.$codedom.')';
- }
- my %coursecodes;
- my %codes;
- my @codetitles;
- my %cat_titles;
- my %cat_order;
- my %idlist;
- my %idnums;
- my %idlist_titles;
my $caller = 'global';
- my $totcodes = 0;
my $format_reply;
my $jscript = '';
- my $loaditems = qq|
-function initialize_codes() {
- return;
-}
- |;
- if ($cnum) {
- $coursecodes{$cnum} = $ccode;
- if ($ccode eq '') {
- $totcodes = &Apache::courseclassifier::retrieve_instcodes(\%coursecodes,$codedom,$totcodes);
- } else {
- $coursecodes{$cnum} = $ccode;
- $caller = $cnum;
- $totcodes ++;
- }
- } else {
- $totcodes = &Apache::courseclassifier::retrieve_instcodes(\%coursecodes,$codedom,$totcodes);
- }
- if ($totcodes > 0) {
- if ($ccode eq '') {
- $format_reply = &Apache::lonnet::auto_instcode_format($caller,$codedom,\%coursecodes,\%codes,\@codetitles,\%cat_titles,\%cat_order);
- if ($format_reply eq 'ok') {
- 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);
- my $longtitles_str = join('","',@{$longtitles});
- my $allidlist = $idlist{$codetitles[0]};
- $jscript .= &Apache::courseclassifier::courseset_js_start($formname,$longtitles_str,$allidlist);
- $jscript .= $scripttext;
- $jscript .= &Apache::courseclassifier::javascript_code_selections($formname,@codetitles);
- $loaditems = '';
- }
- }
- }
-
my $js = '';
+ '';
my %add_entries = (topmargin => "0",
marginheight => "0",
- onLoad =>"initialize_codes()",);
-
+ );
$r->print(&Apache::loncommon::start_page('Support Request',$js,
{ 'function' => $function,
@@ -269,7 +209,7 @@ function initialize_codes() {
&Apache::lonhtmlcommon::row_closure();
$num ++;
$i = $num%2;
- if (defined($uname)) {
+ if (($env{'user.name'} =~ /^$match_username$/) && (!$public)) {
$output .= &Apache::lonhtmlcommon::row_title($lt{'emac'},undef,$css[$i]).
'
'."\n".
&Apache::lonhtmlcommon::row_closure();
@@ -281,30 +221,33 @@ function initialize_codes() {
&HTML::Entities::encode($udom,'"<>&').'" />';
my $uname_input = '&').'" />';
- if (defined($uname) && defined($udom)) {
+ if (($env{'user.name'} =~ /^$match_username$/) &&
+ ($env{'user.domain'} =~ /^$match_domain$/) && (!$public)) {
$output .= ''.$lt{'unme'}.': '.$uname.' '.$lt{'doma'}.': '.$udom.$udom_input.$uname_input;
} else {
my $udomform = '';
my $unameform = '';
- if (defined($udom)) {
+ if (($env{'user.domain'} =~ /^$match_domain$/) && (!$public)) {
$output .= $lt{'entu'};
- } elsif (defined($uname)) {
+ } elsif (($env{'user.name'} =~ /^$match_username$/) && (!$public)) {
$output .= $lt{'chdo'};
} else {
$output .= $lt{'entr'};
}
$output .= '
';
- if (defined($udom)) {
- $udomform = ''.$lt{'doma'}.': '.$udom.$udom_input;
- } elsif (defined($uname)) {
- $unameform = ''.$lt{'unme'}.': '.$uname.' '.$uname_input;
+ if (!$public) {
+ if ($env{'user.domain'} =~ /^$match_domain$/) {
+ $udomform = ''.$lt{'doma'}.': '.$udom.$udom_input;
+ } elsif ($env{'user.name'} =~ /^$match_username$/) {
+ $unameform = ''.$lt{'unme'}.': '.$uname.' '.$uname_input;
+ }
}
if ($udomform eq '') {
$udomform = ''.$lt{'doma'}.': ';
$udomform .= &Apache::loncommon::select_dom_form($codedom,'udom');
}
if ($unameform eq '') {
- $unameform= ''.$lt{'unme'}.': ';
+ $unameform= ''.$lt{'unme'}.': ';
}
$output .= $unameform.$udomform;
}
@@ -314,115 +257,15 @@ function initialize_codes() {
$output .= &Apache::lonhtmlcommon::row_title("$lt{'urlp'}",undef,$css[$i]).
$showserver.'&').'" />'.
- &Apache::lonhtmlcommon::row_closure().
- &Apache::lonhtmlcommon::row_title("$lt{'phon'}",undef,'LC_evenrow_value').
- '
'.
&Apache::lonhtmlcommon::row_closure();
$num ++;
- $i = $num%2;
- $output .= &Apache::lonhtmlcommon::row_title("$lt{'crsd'}$details_title",undef,$css[$i]);
- if ($cnum) {
- if ($coursecodes{$cnum}) {
- foreach my $item (@codetitles) {
- $output .= ''.$item.': '.$codes{$cnum}{$item}.'; ';
- }
- $output .= ' &').'" />';
- } else {
- $output .= $lt{'enin'}.':
- ';
- }
- } else {
- if ($totcodes > 0) {
- my $numtitles = @codetitles;
- if ($numtitles == 0) {
- $output .= $lt{'enin'}.':
- ';
- } else {
- my $lasttitle = $numtitles;
- if ($numtitles > 4) {
- $lasttitle = 4;
- }
- $output .= '
'.$codetitles[0].' '."\n". - ' | ';
- for (my $i=1; $i<$numtitles; $i++) {
- $output .= ''.$codetitles[$i].' '."\n". - ''."\n". - ' | '."\n";
- }
- $output .= '