--- loncom/interface/loncommon.pm 2007/07/25 23:20:38 1.554
+++ loncom/interface/loncommon.pm 2007/07/31 18:22:02 1.557
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# a pile of common routines
#
-# $Id: loncommon.pm,v 1.554 2007/07/25 23:20:38 albertel Exp $
+# $Id: loncommon.pm,v 1.557 2007/07/31 18:22:02 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -5532,6 +5532,221 @@ sub get_secgrprole_info {
return (\@sections,\@groups,$allroles,$rolehash,$accesshash);
}
+sub user_picker {
+ my ($dom,$srch,$forcenewuser) = @_;
+ my $currdom = $dom;
+ my %curr_selected = (
+ srchin => 'dom',
+ srchby => 'uname',
+ );
+ my $srchterm;
+ if (ref($srch) eq 'HASH') {
+ if ($srch->{'srchby'} ne '') {
+ $curr_selected{'srchby'} = $srch->{'srchby'};
+ }
+ if ($srch->{'srchin'} ne '') {
+ $curr_selected{'srchin'} = $srch->{'srchin'};
+ }
+ if ($srch->{'srchtype'} ne '') {
+ $curr_selected{'srchtype'} = $srch->{'srchtype'};
+ }
+ if ($srch->{'srchdomain'} ne '') {
+ $currdom = $srch->{'srchdomain'};
+ }
+ $srchterm = $srch->{'srchterm'};
+ }
+
+ my %lt=&Apache::lonlocal::texthash(
+ 'usr' => 'Search for',
+ 'or' => 'or',
+ 'in' => 'in',
+ 'doma' => 'domain',
+ 'uname' => 'username',
+ 'lastname' => 'last name',
+ 'lastfirst' => 'last name, first name',
+ 'crs' => 'this course',
+ 'dom' => 'this domain',
+ 'alc' => 'all LON-CAPA',
+ 'instd' => 'institutional directory',
+ 'exact' => 'as exact match to',
+ 'contains' => 'contained in',
+ );
+ my $domform = &select_dom_form($currdom,'srchdomain',1);
+
+ my $srchinsel = ' \n";
+
+ my $srchbysel = ' \n";
+
+ my $srchtypesel = ' \n";
+
+ my ($newuserscript,$newuservalidate);
+
+ if ($forcenewuser) {
+ $newuserscript = <<"ENDSCRIPT";
+
+function setSearch() {
+ var createnew = 0;
+ for (var i=0; i
+function validateEntry() {
+ $newuservalidate
+ 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";
+ }
+
+ 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();
+ }
+}
+
+$newuserscript
+
+
+
+
+END_BLOCK
+ if ($forcenewuser) {
+ $output .= ''.&mt('Make new user if no match found: ').'
';
+ }
+ return $output;
+}
+
+
+
=pod
=back