version 1.160, 2007/07/28 21:38:29
|
version 1.162, 2007/07/30 00:31:27
|
Line 200 sub print_username_entry_form {
|
Line 200 sub print_username_entry_form {
|
$formtoset = 'docustom'; |
$formtoset = 'docustom'; |
$env{'form.rolename'} = $env{'form.startrolename'}; |
$env{'form.rolename'} = $env{'form.startrolename'}; |
} |
} |
my ($newuserscript,$newuservalidate); |
|
|
|
if ($forcenewuser) { |
|
$newuserscript = <<"ENDSCRIPT"; |
|
|
|
function setSearch() { |
|
var createnew = 0; |
|
for (var i=0; i<document.crtuser.forcenew.length; i++) { |
|
if (document.crtuser.forcenew[i].checked) { |
|
if (document.crtuser.forcenew[i].value == 1) { |
|
createnew = 1; |
|
} |
|
} |
|
} |
|
if (createnew == 1) { |
|
for (var i=0; i<document.crtuser.srchby.length; i++) { |
|
if (document.crtuser.srchby.options[i].value == 'uname') { |
|
document.crtuser.srchby.selectedIndex = i; |
|
} |
|
} |
|
for (var i=0; i<document.crtuser.srchin.length; i++) { |
|
if (document.crtuser.srchin.options[i].value == 'dom') { |
|
document.crtuser.srchin.selectedIndex = i; |
|
} |
|
} |
|
for (var i=0; i<document.crtuser.srchtype.length; i++) { |
|
if (document.crtuser.srchtype.options[i].value == 'exact') { |
|
document.crtuser.srchtype.selectedIndex = i; |
|
} |
|
} |
|
for (var i=0; i<document.crtuser.srchdomain.length; i++) { |
|
if (document.crtuser.srchdomain.options[i].value == '$env{'request.role.domain'}') { |
|
document.crtuser.srchdomain.selectedIndex = i; |
|
} |
|
} |
|
} |
|
} |
|
ENDSCRIPT |
|
$newuservalidate = <<"ENDBLOCK"; |
|
setSearch(); |
|
ENDBLOCK |
|
} |
|
my $validatescript = <<"ENDSCRIPT"; |
|
|
|
function validateEntry() { |
|
var checkok = 1; |
|
var srchin = document.crtuser.srchin.options[document.crtuser.srchin.selectedIndex].value; |
|
var srchtype = document.crtuser.srchtype.options[document.crtuser.srchtype.selectedIndex].value; |
|
var srchby = document.crtuser.srchby.options[document.crtuser.srchby.selectedIndex].value; |
|
var srchdomain = document.crtuser.srchdomain.options[document.crtuser.srchdomain.selectedIndex].value; |
|
var srchterm = document.crtuser.srchterm.value; |
|
var msg = ""; |
|
|
|
if (srchterm == "") { |
|
checkok = 0; |
|
msg += "You must include some text to search for.\\n"; |
|
} |
|
|
|
$newuservalidate |
|
|
|
if (srchtype== 'contains') { |
|
if (srchterm.length < 3) { |
|
checkok = 0; |
|
msg += "The text you are searching for must contain at least three characters when using a 'contained in' type search.\\n"; |
|
} |
|
} |
|
if (srchin == 'instd') { |
|
if (srchdomain == '') { |
|
checkok = 0; |
|
msg += "You must choose a domain when using an institutional directory search.\\n"; |
|
} |
|
} |
|
if (srchin == 'dom') { |
|
if (srchdomain == '') { |
|
checkok = 0; |
|
msg += "You must choose a domain when using a domain search.\\n"; |
|
} |
|
} |
|
if (srchby == 'lastfirst') { |
|
if (srchterm.indexOf(",") == -1) { |
|
checkok = 0; |
|
msg += "When using searching by last,first you must include a comma as separator between last name and first name.\\n"; |
|
} |
|
if (srchterm.indexOf(",") == srchterm.length -1) { |
|
checkok = 0; |
|
msg += "When searching by last,first you must include at least one character in the first name.\\n"; |
|
} |
|
} |
|
if (checkok == 0) { |
|
alert("The following need to be corrected before the search can be run:\\n"+msg); |
|
return; |
|
} |
|
if (checkok == 1) { |
|
document.crtuser.submit(); |
|
} |
|
} |
|
|
|
ENDSCRIPT |
|
|
|
my ($jsback,$elements) = &crumb_utilities(); |
my ($jsback,$elements) = &crumb_utilities(); |
|
|
my $jscript = &Apache::loncommon::studentbrowser_javascript()."\n". |
my $jscript = &Apache::loncommon::studentbrowser_javascript()."\n". |
'<script type"text/javascript">'."\n". |
'<script type"text/javascript">'."\n". |
&Apache::lonhtmlcommon::set_form_elements($elements->{$formtoset}). |
&Apache::lonhtmlcommon::set_form_elements($elements->{$formtoset}). |
$newuserscript.$validatescript.'</script>'."\n"; |
'</script>'."\n"; |
|
|
my %loaditems = ( |
my %loaditems = ( |
'onload' => "javascript:setFormElements(document.$formtoset)", |
'onload' => "javascript:setFormElements(document.$formtoset)", |
Line 516 sub print_user_modification_page {
|
Line 418 sub print_user_modification_page {
|
$loginscript = &Apache::loncommon::authform_header(%param); |
$loginscript = &Apache::loncommon::authform_header(%param); |
$authformkrb = &Apache::loncommon::authform_kerberos(%param); |
$authformkrb = &Apache::loncommon::authform_kerberos(%param); |
|
|
$ccuname =&LONCAPA::clean_username($ccuname); |
|
$ccdomain=&LONCAPA::clean_domain($ccdomain); |
|
my $pjump_def = &Apache::lonhtmlcommon::pjump_javascript_definition(); |
my $pjump_def = &Apache::lonhtmlcommon::pjump_javascript_definition(); |
my $dc_setcourse_code = ''; |
my $dc_setcourse_code = ''; |
my $nondc_setsection_code = ''; |
my $nondc_setsection_code = ''; |
Line 762 ENDFORMINFO
|
Line 662 ENDFORMINFO
|
} |
} |
} |
} |
if ($uhome eq 'no_host') { |
if ($uhome eq 'no_host') { |
my $instsrch = { |
my $newuser; |
|
my $instsrch = { |
srchin => 'instd', |
srchin => 'instd', |
srchterm => $env{'form.seluname'}, |
|
srchdomain => $env{'form.seludom'}, |
|
srchby => 'uname', |
srchby => 'uname', |
srchtype => 'exact', |
srchtype => 'exact', |
}; |
}; |
my %inst_results; |
if ($env{'form.phase'} eq 'userpicked') { |
if (directorysrch_check($instsrch) eq 'ok') { |
$instsrch->{'srchterm'} = $env{'form.seluname'}; |
%inst_results = &Apache::lonnet::inst_directory_query($instsrch); |
$instsrch->{'srchdomain'} = $env{'form.seludom'}; |
|
} else { |
|
$instsrch->{'srchterm'} = $ccuname; |
|
$instsrch->{'srchdomain'} = $ccdomain, |
|
} |
|
if (($instsrch->{'srchterm'} ne '') && ($instsrch->{'srchdomain'} ne '')) { |
|
$newuser = $instsrch->{'srchterm'}.':'.$instsrch->{'srchdomain'}; |
|
} |
|
my (%dirsrch_results,%inst_results); |
|
if ($newuser) { |
|
if (&directorysrch_check($instsrch) eq 'ok') { |
|
%dirsrch_results = &Apache::lonnet::inst_directory_query($instsrch); |
|
if (ref($dirsrch_results{$newuser}) eq 'HASH') { |
|
%inst_results = %{$dirsrch_results{$newuser}}; |
|
} |
|
} |
} |
} |
my $home_server_list= |
my $home_server_list= |
'<option value="default" selected>default</option>'."\n". |
'<option value="default" selected>default</option>'."\n". |
Line 2222 sub handler {
|
Line 2136 sub handler {
|
if ($env{'form.phase'} eq 'get_user_info') { |
if ($env{'form.phase'} eq 'get_user_info') { |
my ($state,$response,$forcenewuser,$results) = |
my ($state,$response,$forcenewuser,$results) = |
&user_search_result($srch); |
&user_search_result($srch); |
|
print STDERR "Got $state,$response,$forcenewuser\n"; |
if ($state eq 'select') { |
if ($state eq 'select') { |
&print_user_selection_page($r,$response,$srch,$results); |
&print_user_selection_page($r,$response,$srch,$results); |
} elsif ($state eq 'modify') { |
} elsif ($state eq 'modify') { |
my ($ccuname,$ccdomain); |
my ($ccuname,$ccdomain); |
if ($srch->{'srchby'} eq 'uname') { |
if (($srch->{'srchby'} eq 'uname') && |
|
($srch->{'srchtype'} eq 'exact')) { |
$ccuname = $srch->{'srchterm'}; |
$ccuname = $srch->{'srchterm'}; |
$ccdomain= $srch->{'srchdomain'}; |
$ccdomain= $srch->{'srchdomain'}; |
} else { |
} else { |
Line 2322 sub user_search_result {
|
Line 2238 sub user_search_result {
|
} |
} |
} else { |
} else { |
if ($srch->{'srchin'} eq 'dom') { |
if ($srch->{'srchin'} eq 'dom') { |
my $uhome=&Apache::lonnet::homeserver($srch->{'srchterm'},$srch->{'srchdomain'}); |
if ($srch->{'srchtype'} eq 'exact') { |
if ($uhome eq 'no_host') { |
my $uhome=&Apache::lonnet::homeserver($srch->{'srchterm'},$srch->{'srchdomain'}); |
|
if ($uhome eq 'no_host') { |
|
($state,$response,$forcenewuser) = |
|
&build_search_response($srch,%srch_results); |
|
} else { |
|
$state = 'modify'; |
|
} |
|
} else { |
|
%srch_results = &Apache::lonnet::usersearch($srch); |
($state,$response,$forcenewuser) = |
($state,$response,$forcenewuser) = |
&build_search_response($srch,%srch_results); |
&build_search_response($srch,%srch_results); |
} else { |
|
$state = 'modify'; |
|
} |
} |
} else { |
} else { |
my %courseusers = &get_courseusers(); |
my %courseusers = &get_courseusers(); |
if (exists($courseusers{$srch->{'srchterm'}.':'.$srch->{'srchdomain'}})) { |
if ($srch->{'srchtype'} eq 'exact') { |
$state = 'modify'; |
if (exists($courseusers{$srch->{'srchterm'}.':'.$srch->{'srchdomain'}})) { |
|
$state = 'modify'; |
|
} else { |
|
($state,$response,$forcenewuser) = |
|
&build_search_response($srch,%srch_results); |
|
} |
} else { |
} else { |
|
foreach my $user (keys(%courseusers)) { |
|
my ($cuname,$cudomain) = split(/:/,$user); |
|
if ($cudomain eq $srch->{'srchdomain'}) { |
|
if ($cuname =~ /\Q$srch->{'srchterm'}\E/i) { |
|
$srch_results{$user} = ''; |
|
} |
|
} |
|
} |
($state,$response,$forcenewuser) = |
($state,$response,$forcenewuser) = |
&build_search_response($srch,%srch_results); |
&build_search_response($srch,%srch_results); |
} |
} |