uEditCloneCopyAddr = orgSettings['circ.patron_edit.clone.copy_address'];
uEditUsePhonePw = orgSettings['patron.password.use_phone'];
+ uEditStagedAutoUsrname = true; // TODO: This can become an org setting
uEditFetchUserSettings(userId);
if(userId) {
checkGrpAppPerm(); // to do the initial load
loadStaticFields();
+ // Trigger a username check if this is a staged user
+ if (stageUser) findWidget('au', 'usrname').widget.onChange();
if(patron.isnew() && patron.addresses().length == 0)
uEditNewAddr(null, uEditAddrVirtId, true);
}
/**
+ * Generate a potential usrname for the patron.
+ */
+function generateUsrname(first, last) {
+ var candidate;
+ candidate = first.substring(0,1) + last;
+ candidate = candidate.toLowerCase();
+ candidate = candidate.replace(/[^a-z]/g, '');
+ return candidate;
+}
+
+/**
* Set Expire Date field based on today and current profile group
*/
function setExpireDateHandler() {
patron['usrname']('');
}
+ // Generate a username if configured to do so and usrname is empty
+ if (patron['usrname']() == '' && uEditStagedAutoUsrname) {
+ var genUsrname = generateUsrname(patron['first_given_name'](), patron['family_name']());
+ patron['usrname'](genUsrname);
+ }
+
// copy the data into our new address objects
// TODO: uses the first mailing address only
if(data.mailing_addresses.length) {
uGenerateInvalidatorWidget(span, fmfield);
ftd.appendChild(span);
}
+
+ }
+
+ if (fmcls == "au" && fmfield == "usrname") {
+ var span = dojo.create(
+ "span", {
+ "id": "wrap_usrname"
+ }
+ );
+ uGenerateUsrnameWidget(span);
+ ftd.appendChild(span);
}
var span = document.createElement('span');
);
}
+function uGenerateUsrnameWidget(container_node) {
+ new dijit.form.Button(
+ {
+ "label": "Suggest Username",
+ "scrollOnFocus": false,
+ "onClick": function() {
+ var fname = findWidget("au", "first_given_name").widget.attr("value");
+ var lname = findWidget("au", "family_name").widget.attr("value");
+
+ var genUsrname = generateUsrname(fname, lname);
+
+ var f = findWidget("au", "usrname");
+
+ f.widget.attr("value", genUsrname);
+ }
+ }, dojo.create("span", null, container_node, "only")
+ );
+}
+
function uEditRemoveStage() {
var resp = fieldmapper.standardRequest(
['open-ils.actor', 'open-ils.actor.user.stage.delete'],