implemented org setting for barcode regex to assist the opac in determing if a user...
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Sat, 8 Dec 2007 20:22:18 +0000 (20:22 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Sat, 8 Dec 2007 20:22:18 +0000 (20:22 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@8173 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/web/opac/common/js/config.js
Open-ILS/web/opac/common/js/opac_utils.js
Open-ILS/web/opac/common/js/org_utils.js
Open-ILS/web/opac/locale/en-US/opac.dtd
Open-ILS/web/opac/skin/default/js/myopac.js

index e77b3e9..1249948 100644 (file)
@@ -351,6 +351,7 @@ var FETCH_HIGHEST_PERM_ORG          = 'open-ils.actor:open-ils.actor.user.perm.highest_o
 var FETCH_USER_NOTES                           = 'open-ils.actor:open-ils.actor.note.retrieve.all';
 var FETCH_ORG_BY_SHORTNAME             = 'open-ils.actor:open-ils.actor.org_unit.retrieve_by_shorname';
 var FETCH_BIB_ID_BY_BARCODE = 'open-ils.search:open-ils.search.bib_id.by_barcode';
+var FETCH_ORG_SETTING = 'open-ils.actor:open-ils.actor.ou_setting.ancestor_default';
 
 /* ---------------------------------------------------------------------------- */
 
index cd0f2a1..fd50eba 100644 (file)
@@ -648,7 +648,10 @@ function doLogin(suppressEvents) {
                org             : getOrigLocation()
        };
 
-       if( uname.match(REGEX_BARCODE) ) args.barcode = uname; /* make this better */
+    r = fetchOrgSettingDefault(globalOrgTree.id(), 'opac.barcode_regex');
+    if(r) REGEX_BARCODE = new RegExp(r);
+    
+    if( uname.match(REGEX_BARCODE) ) args.barcode = uname;
        else args.username = uname;
 
    var auth_request = new Request( LOGIN_COMPLETE, args );
index fd45f41..4fcd742 100644 (file)
@@ -2,6 +2,15 @@
 /* org tree utilities */
 /* ------------------------------------------------------------------------------------------------------ */
 
+function fetchOrgSettingDefault(orgId, name) {
+    var req = new Request(FETCH_ORG_SETTING, orgId, name);
+    req.send(true);
+    var res = req.result();
+    return res.value;
+}
+
+
+
 /* takes an org unit or id and return the numeric depth */
 function findOrgDepth(org_id_or_node) {
        var org = findOrgUnit(org_id_or_node);
index afbb522..44f535b 100644 (file)
@@ -284,7 +284,7 @@ Please see a librarian to renew your account.">
 <!ENTITY myopac.summary.username.dup "The requested username is not available.  Please choose a different username.">
 <!ENTITY myopac.summary.username.success "Username successfully updated">
 <!ENTITY myopac.summary.username.failure "Username update failed">
-<!ENTITY myopac.summary.username.invalid "Username cannot contain spaces">
+<!ENTITY myopac.summary.username.invalid "Username cannot contain spaces or have the same format as a barcode">
 <!ENTITY myopac.summary.email.error "Please enter a valid email address">
 <!ENTITY myopac.summary.email.success "Email address successfully updated">
 <!ENTITY myopac.summary.email.failed "Email address update failed">
index fc8d7cf..362834a 100644 (file)
@@ -847,6 +847,14 @@ function myOPACUpdateUsername() {
                return;
        }
 
+    r = fetchOrgSettingDefault(globalOrgTree.id(), 'opac.barcode_regex');
+    if(r) REGEX_BARCODE = new RegExp(r);
+
+    if(username.match(REGEX_BARCODE)) {
+        alert($('myopac_invalid_username').innerHTML);
+        return;
+    }
+
        /* first see if the requested username is taken */
        var req = new Request(CHECK_USERNAME, G.user.session, username);
        req.send(true);