version 1.1, 2009/08/04 20:08:34
|
version 1.4, 2009/09/06 19:09:54
|
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']); |
'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') || |
|
($env{'form.phase'} eq 'store_newuser')) { |
$js = &gochoose_javascript(); |
$js = &gochoose_javascript(); |
|
} elsif ($env{'form.phase'} eq 'define_newuser') { |
|
$js = <<"ENDSP"; |
|
<script type="text/javascript"> |
|
// <![CDATA[ |
|
function setphase(caller) { |
|
document.newuserinfo.phase.value = caller; |
|
document.newuserinfo.submit(); |
|
return; |
|
} |
|
// ]]> |
|
</script> |
|
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, }; |
|
if ($env{'form.phase'} eq 'store_newuser') { |
|
my $uname = $env{'form.srchterm'}; |
|
my $udom = $env{'form.srchdomain'}; |
|
my $newfirst = $env{'form.newfirst'}; |
|
my $newlast = $env{'form.newlast'}; |
|
my $newemail = $env{'form.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', |
|
$js,$startargs)); |
|
if ($env{'form.caller'} eq 'checkusername') { |
|
$r->print(&check_user_form(). |
|
&Apache::loncommon::end_page()); |
|
return OK; |
} |
} |
|
|
$r->print(&Apache::loncommon::start_page('Selecting course personnel',$js, |
|
{'no_nav_bar' => 1, })); |
|
my %toset = ( |
my %toset = ( |
uname => 'unameelement', |
uname => 'unameelement', |
udom => 'udomelement', |
udom => 'udomelement', |
Line 108 sub handler {
|
Line 209 sub handler {
|
$srch{'srchterm'},$rules); |
$srch{'srchterm'},$rules); |
} |
} |
|
|
my $dom = $env{'form.srchdom'}; |
my $dom = $env{'form.coursedom'}; |
|
|
my $cancreate = |
my $cancreate = |
&Apache::lonuserutils::can_create_user($dom,$context,$usertype); |
&Apache::lonuserutils::can_create_user($dom,$context,$usertype); |
Line 118 sub handler {
|
Line 219 sub handler {
|
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; |
my $opener_elems = '<input type="hidden" name="form" value="'. |
foreach my $item (keys(%toset)) { |
$env{'form.form'}.'" />'."\n". |
if (exists($env{'form.'.$toset{$item}})) { |
'<input type="hidden" name="coursedom" value="'. |
$opener_elems .= '<input type="hidden" name="'.$toset{$item}.'" value="'.$env{'form.'.$toset{$item}}.'" />'."\n"; |
$env{'form.coursedom'}.'" />'."\n". |
} |
&set_opener_elems(); |
} |
unless ($env{'form.phase'} eq 'define_newuser') { |
$r->print(<<"ENDBLOCK"); |
$r->print(<<"ENDBLOCK"); |
<h3>$headertext</h3> |
<h3>$headertext</h3> |
<form action="/adm/pickuser" method="post" name="userpicker"> |
<form action="/adm/pickuser" method="post" name="userpicker"> |
$opener_elems |
$opener_elems |
<input type="hidden" name="phase" value="get_user_info" /> |
<input type="hidden" name="phase" value="get_user_info" /> |
<input type="hidden" name="form" value="$env{'form.form'}" /> |
|
$userpicker |
$userpicker |
<input name="userrole" type="button" value="$srchbutton" onclick="javascript:validateEntry(document.userpicker)" /> |
<input name="userrole" type="button" value="$srchbutton" onclick="javascript:validateEntry(document.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 144 ENDBLOCK
|
Line 245 ENDBLOCK
|
\@search,$context,$opener_elems); |
\@search,$context,$opener_elems); |
} else { |
} else { |
$r->print('<div>'.$response.'</div>'); |
$r->print('<div>'.$response.'</div>'); |
|
if ($forcenewuser) { |
|
if ($srch{'srchby'} eq 'uname' && |
|
$srch{'srchtype'} eq 'exact' && |
|
$srch{'srchin'} eq 'dom' && |
|
$srch{'srchdomain'} eq $env{'form.coursedom'}) { |
|
if ($cancreate) { |
|
$r->print("\n".'<div><form name="newuser" '. |
|
'method="post" action="/adm/pickuser">'); |
|
foreach my $item (keys(%srch)) { |
|
$r->print('<input type="hidden" name="'.$item.'"'. |
|
' value="'.$srch{$item}.'" />'."\n"); |
|
} |
|
$r->print(' |
|
<input type="hidden" name="phase" value="define_newuser"> |
|
<input type="submit" name="forcenew" value="'. |
|
&HTML::Entities::encode(&mt('Make new user "[_1]"',$srch{'srchterm'}),'<>&"').'" />'."\n". |
|
$opener_elems.' |
|
</form></div>'); |
|
} else { |
|
my $helplink = 'javascript:helpMenu('."'display'".')'; |
|
my %usertypetext = |
|
&Apache::lonlocal::texthash( |
|
official => 'You are not authorized to create new institutional users in this domain.', |
|
unofficial => 'You are not authorized to create new non-institutional users in this domain.', |
|
); |
|
$r->print('<div class="LC_warning">'. |
|
$usertypetext{$usertype}.' '. |
|
&mt('Please contact the [_1]helpdesk[_2] for assistance.','<a href="'.$helplink.'">','</a>').'</div>'); |
|
|
|
} |
|
} |
|
} |
|
} |
|
} |
|
if ($env{'form.phase'} eq 'define_newuser') { |
|
$r->print('<h3>'.&mt('Define new user').' '.$srch{'srchterm'}.':'. |
|
$srch{'srchdomain'}.'</h3>'."\n".'<div>'. |
|
'<form name="newuserinfo" method="post" action="/adm/pickuser">'."\n". |
|
'<input type="hidden" name="phase" value="" />'."\n". |
|
$opener_elems. |
|
&Apache::lonhtmlcommon::start_pick_box()."\n". |
|
&Apache::lonhtmlcommon::row_title(&mt('First Name')). |
|
'<input type="text" name="newfirst" value="" size="15" />'. |
|
&Apache::lonhtmlcommon::row_closure()."\n". |
|
&Apache::lonhtmlcommon::row_title(&mt('Last Name')). |
|
'<input type="text" name="newlast" value="" size="25" />' |
|
. |
|
&Apache::lonhtmlcommon::row_closure()."\n". |
|
&Apache::lonhtmlcommon::row_title(&mt('E-mail Address')). |
|
'<input type="text" name="newemail" value="" size="25" />' |
|
. |
|
&Apache::lonhtmlcommon::row_closure(1)."\n". |
|
&Apache::lonhtmlcommon::end_pick_box()); |
|
foreach my $item (keys(%srch)) { |
|
$r->print('<input type="hidden" name="'.$item.'"'. |
|
' value="'.$srch{$item}.'" />'."\n"); |
} |
} |
|
$r->print('<br /><input type="button" name="cancelnew" value="'. |
|
&mt('Cancel').'" onclick="javascript:setphase('. |
|
"'get_user_info'".');" />'."\n". |
|
'<input type="button" name="definenew" value="'. |
|
&mt('Save').'" onclick="javascript:setphase('. |
|
"'store_newuser'".');" /></form></div>'); |
} |
} |
$r->print(&Apache::loncommon::end_page()); |
$r->print(&Apache::loncommon::end_page()); |
return OK; |
return OK; |
Line 153 ENDBLOCK
|
Line 316 ENDBLOCK
|
sub gochoose_javascript { |
sub gochoose_javascript { |
return <<"ENDGC"; |
return <<"ENDGC"; |
<script type="text/javascript"> |
<script type="text/javascript"> |
|
// <![CDATA[ |
function gochoose(uname,udom,ufirst,ulast,uemail) { |
function gochoose(uname,udom,ufirst,ulast,uemail) { |
opener.document.$env{'form.form'}.$env{'form.unameelement'}.value=uname; |
opener.document.$env{'form.form'}.$env{'form.unameelement'}.value=uname; |
opener.document.$env{'form.form'}.$env{'form.ufirstelement'}.value=ufirst; |
opener.document.$env{'form.form'}.$env{'form.ufirstelement'}.value=ufirst; |
Line 172 function gochoose(uname,udom,ufirst,ulas
|
Line 336 function gochoose(uname,udom,ufirst,ulas
|
opener.document.$env{'form.form'}.$env{'form.hideudomelement'}.value=udom; |
opener.document.$env{'form.form'}.$env{'form.hideudomelement'}.value=udom; |
self.close(); |
self.close(); |
} |
} |
|
// ]]> |
</script> |
</script> |
|
|
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; |