LP#1246859: Improve username flow for staged users
authorJeff Godin <jgodin@tadl.org>
Wed, 30 Oct 2013 20:41:06 +0000 (16:41 -0400)
committerBen Shum <bshum@biblio.org>
Thu, 18 Sep 2014 20:59:40 +0000 (16:59 -0400)
Staged users in most cases have a username that consists of a UUID.

Rather than leave the UUID as their username or require staff to
clear the field and replace it with a barcode or other value, it
would be better to remove this username when loading the staged user
in the user editor.

This commit clears the username when loading a stage user if the
username looks like a UUID.

If a barcode has been staged for the loaded staged user, the
username will be populated with that value.

If there is no staged barcode, the username will remain blank and
will be populated using the standard method after staff enters a
value in the barcode field.

Signed-off-by: Jeff Godin <jgodin@tadl.org>
Signed-off-by: Ben Shum <bshum@biblio.org>
Open-ILS/web/js/ui/default/actor/user/register.js

index 7577e3f..ced646f 100644 (file)
@@ -682,6 +682,11 @@ function uEditLoadStageUser(stageUname) {
         }
     }
 
+    // Clear the usrname if it looks like a UUID
+    if (patron['usrname']().replace(/-/g,'').match(/[0-9a-f]{32}/)) {
+        patron['usrname']('');
+    }
+
     // copy the data into our new address objects
     // TODO: uses the first mailing address only
     if(data.mailing_addresses.length) {
@@ -731,6 +736,10 @@ function uEditLoadStageUser(stageUname) {
         var card = new fieldmapper.ac();
         card.id(-1); // virtual ID
         patron.card().barcode(data.cards[0].barcode());
+        // Set usrname to barcode if usrname is empty
+        if (patron.usrname() == '') {
+            patron.usrname(card.barcode());
+        }
     }
 
     return patron;