version 1.3, 2009/08/19 19:57:53
|
version 1.5, 2011/01/05 18:39:38
|
Line 71 sub handler {
|
Line 71 sub handler {
|
# Get parameters from query string |
# Get parameters from query string |
&Apache::loncommon::get_unprocessed_cgi |
&Apache::loncommon::get_unprocessed_cgi |
($ENV{'QUERY_STRING'},['srchdom','form','udomelement','unameelement','ulastelement', |
($ENV{'QUERY_STRING'},['srchdom','form','udomelement','unameelement','ulastelement', |
'ufirstelement','uemailelement','hideudomelement','coursedom']); |
'ufirstelement','uemailelement','hideudomelement','coursedom','caller']); |
my $js; |
my $js; |
|
|
if (($env{'form.phase'} eq 'get_user_info') || |
if (($env{'form.phase'} eq 'get_user_info') || |
Line 89 function setphase(caller) {
|
Line 89 function setphase(caller) {
|
// ]]> |
// ]]> |
</script> |
</script> |
ENDSP |
ENDSP |
|
} elsif ($env{'form.caller'} eq 'checkusername') { |
|
$js = <<"ENDCHK"; |
|
<script type="text/javascript"> |
|
// <![CDATA[ |
|
function checkUser() { |
|
var uname = opener.document.$env{'form.form'}.$env{'form.unameelement'}.value; |
|
var udom; |
|
var slct=opener.document.$env{'form.form'}.$env{'form.udomelement'}; |
|
if (slct.options == undefined) { |
|
udom = opener.document.$env{'form.form'}.$env{'form.udomelement'}.value; |
|
} else { |
|
udom = slct.options[slct.selectedIndex].value; |
|
} |
|
if (uname != '') { |
|
document.userpicker.srchterm.value = uname; |
|
document.userpicker.srchdomain.value = udom; |
|
} |
|
document.userpicker.submit(); |
|
} |
|
// ]]> |
|
</script> |
|
ENDCHK |
|
} elsif ($env{'form.phase'} eq '') { |
|
$js = <<"ENDSET"; |
|
<script type="text/javascript"> |
|
// <![CDATA[ |
|
function setUserSearch() { |
|
var uname = opener.document.$env{'form.form'}.$env{'form.unameelement'}.value; |
|
var udom; |
|
var slct=opener.document.$env{'form.form'}.$env{'form.udomelement'}; |
|
if (slct.options == undefined) { |
|
udom = opener.document.$env{'form.form'}.$env{'form.udomelement'}.value; |
|
} else { |
|
udom = slct.options[slct.selectedIndex].value; |
|
} |
|
if (uname != '') { |
|
document.userpicker.srchterm.value = uname; |
|
var seldom = document.userpicker.srchdomain; |
|
if (seldom.options != undefined) { |
|
var i; |
|
for (i=0;i<seldom.length;i++) { |
|
if (seldom.options[i].value==udom) { seldom.selectedIndex=i; } |
|
} |
|
} |
|
var selby = document.userpicker.srchby; |
|
if (selby.options != undefined) { |
|
var i; |
|
for (i=0;i<selby.length;i++) { |
|
if (selby.options[i].value=="uname") { selby.selectedIndex=i; } |
|
} |
|
} |
|
var seltype = document.userpicker.srchtype; |
|
if (seltype.options != undefined) { |
|
var i; |
|
for (i=0;i<seltype.length;i++) { |
|
if (seltype.options[i].value=="exact") { seltype.selectedIndex=i; } |
|
} |
|
} |
|
var selin = document.userpicker.srchin; |
|
if (selin.options != undefined) { |
|
var i; |
|
for (i=0;i<selin.length;i++) { |
|
if (selin.options[i].value=="dom") { selin.selectedIndex=i; } |
|
} |
|
} |
|
} |
|
return; |
|
} |
|
// ]]> |
|
</script> |
|
ENDSET |
} |
} |
my $startargs = {'no_nav_bar' => 1, }; |
my $startargs = {'no_nav_bar' => 1, }; |
if ($env{'form.phase'} eq 'store_newuser') { |
if ($env{'form.phase'} eq 'store_newuser') { |
Line 98 ENDSP
|
Line 169 ENDSP
|
my $newlast = $env{'form.newlast'}; |
my $newlast = $env{'form.newlast'}; |
my $newemail = $env{'form.newemail'}; |
my $newemail = $env{'form.newemail'}; |
$startargs->{'add_entries'} = { onload => 'javascript:gochoose('."'$uname','$udom','$newfirst','$newlast','$newemail'".');' }; |
$startargs->{'add_entries'} = { onload => 'javascript:gochoose('."'$uname','$udom','$newfirst','$newlast','$newemail'".');' }; |
|
} elsif ($env{'form.caller'} eq 'checkusername') { |
|
$startargs->{'add_entries'} = { onload => 'javascript:checkUser();' }; |
|
} elsif ($env{'form.phase'} eq '') { |
|
$startargs->{'add_entries'} = { onload => 'javascript:setUserSearch();' }; |
} |
} |
$r->print(&Apache::loncommon::start_page('Selecting course personnel', |
$r->print(&Apache::loncommon::start_page('Selecting course personnel', |
$js,$startargs)); |
$js,$startargs)); |
|
if ($env{'form.caller'} eq 'checkusername') { |
|
$r->print(&check_user_form(). |
|
&Apache::loncommon::end_page()); |
|
return OK; |
|
} |
my %toset = ( |
my %toset = ( |
uname => 'unameelement', |
uname => 'unameelement', |
udom => 'udomelement', |
udom => 'udomelement', |
Line 123 ENDSP
|
Line 203 ENDSP
|
($srch{'srchtype'} eq 'exact') && |
($srch{'srchtype'} eq 'exact') && |
($srch{'srchdomain'} ne '') && |
($srch{'srchdomain'} ne '') && |
($srch{'srchterm'} ne '')) { |
($srch{'srchterm'} ne '')) { |
|
my (%curr_rules,%got_rules); |
my ($rules,$ruleorder) = |
my ($rules,$ruleorder) = |
&Apache::lonnet::inst_userrules($srch{'srchdomain'},'username'); |
&Apache::lonnet::inst_userrules($srch{'srchdomain'},'username'); |
$usertype = &Apache::lonuserutils::check_usertype($srch{'srchdomain'}, |
$usertype = &Apache::lonuserutils::check_usertype($srch{'srchdomain'}, |
$srch{'srchterm'},$rules); |
$srch{'srchterm'},$rules, |
|
\%curr_rules,\%got_rules); |
} |
} |
|
|
my $dom = $env{'form.coursedom'}; |
my $dom = $env{'form.coursedom'}; |
Line 135 ENDSP
|
Line 217 ENDSP
|
&Apache::lonuserutils::can_create_user($dom,$context,$usertype); |
&Apache::lonuserutils::can_create_user($dom,$context,$usertype); |
my $userpicker = |
my $userpicker = |
&Apache::loncommon::user_picker($dom,\%srch,$forcenewuser, |
&Apache::loncommon::user_picker($dom,\%srch,$forcenewuser, |
'document.userpicker',$cancreate,$usertype); |
'document.userpicker',$cancreate, |
|
$usertype,$context); |
my $srchbutton = &mt('Search'); |
my $srchbutton = &mt('Search'); |
|
|
my $headertext = &mt('Search for a user to add to course personnel'); |
my $headertext = &mt('Search for a user to add to course personnel'); |
my $opener_elems = '<input type="hidden" name="form" value="'. |
my $opener_elems = '<input type="hidden" name="form" value="'. |
$env{'form.form'}.'" />'."\n". |
$env{'form.form'}.'" />'."\n". |
'<input type="hidden" name="coursedom" value="'. |
'<input type="hidden" name="coursedom" value="'. |
$env{'form.coursedom'}.'" />'."\n"; |
$env{'form.coursedom'}.'" />'."\n". |
foreach my $item (keys(%toset)) { |
&set_opener_elems(); |
if (exists($env{'form.'.$toset{$item}})) { |
|
$opener_elems .= '<input type="hidden" name="'.$toset{$item}.'" value="'.$env{'form.'.$toset{$item}}.'" />'."\n"; |
|
} |
|
} |
|
unless ($env{'form.phase'} eq 'define_newuser') { |
unless ($env{'form.phase'} eq 'define_newuser') { |
$r->print(<<"ENDBLOCK"); |
$r->print(<<"ENDBLOCK"); |
<h3>$headertext</h3> |
<h3>$headertext</h3> |
Line 159 $userpicker
|
Line 238 $userpicker
|
</form> |
</form> |
ENDBLOCK |
ENDBLOCK |
} |
} |
if ($env{'form.phase'} eq 'get_user_info') { |
if (($env{'form.phase'} eq 'get_user_info') && ($env{'form.srchterm'} ne '')) { |
$r->print('<hr /><div>'.&mt('Searching ...').'</div>'); |
$r->print('<hr /><div>'.&mt('Searching ...').'</div>'); |
$r->rflush(); |
$r->rflush(); |
my ($currstate,$response,$forcenewuser,$results) = |
my ($currstate,$response,$forcenewuser,$results) = |
Line 266 function gochoose(uname,udom,ufirst,ulas
|
Line 345 function gochoose(uname,udom,ufirst,ulas
|
ENDGC |
ENDGC |
} |
} |
|
|
|
sub check_user_form { |
|
return ' |
|
<form action="/adm/pickuser" method="post" name="userpicker"> |
|
<input type="hidden" name="form" value="'.$env{'form.form'}.'" /> |
|
<input type="hidden" name="coursedom" value="'.$env{'form.coursedom'}.'" />'."\n". |
|
&set_opener_elems().' |
|
<input type="hidden" name="srchby" value="uname" /> |
|
<input type="hidden" name="srchin" value="dom" /> |
|
<input type="hidden" name="srchterm" value="" /> |
|
<input type="hidden" name="srchdomain" value="" /> |
|
<input type="hidden" name="srchtype" value="exact" /> |
|
<input type="hidden" name="phase" value="get_user_info" /> |
|
</form>'."\n"; |
|
} |
|
|
|
sub set_opener_elems { |
|
my %toset = ( |
|
uname => 'unameelement', |
|
udom => 'udomelement', |
|
first => 'ufirstelement', |
|
lastn => 'ulastelement', |
|
email => 'uemailelement', |
|
hidedom => 'hideudomelement', |
|
); |
|
my $output; |
|
foreach my $item (keys(%toset)) { |
|
if (exists($env{'form.'.$toset{$item}})) { |
|
$output .= '<input type="hidden" name="'.$toset{$item}.'" value="'.$env{'form.'.$toset{$item}}.'" />'."\n"; |
|
} |
|
} |
|
return $output; |
|
} |
|
|
1; |
1; |