var user_perms = [];
var perm_list = [];
-
-var required_user_parts = {
- usrname:'User Name',
- first_given_name:'First Name',
- family_name:'Last Name',
- dob:'Date of Birth',
- ident_type:'Primary Identification Type',
- ident_value:'Primary Identification',
- day_phone:'Daytime Phone',
- home_ou:'Home Library',
- profile:'Profile Group',
-};
-
-var required_addr_parts = {
- street1:'Street 1',
- city:'City',
- state:'State',
- post_code:'ZIP',
- country:'Country',
- address_type:'Address Label',
-};
-
function set_perm(row) {
var pid = findNodeByName(row,'p.code').getAttribute('permid');
var papply = findNodeByName(row,'p.id').checked;
}
-function reset_crc () {
- document.forms.editor.elements["user.claims_returned_count"].value = '0';
- user.claims_returned_count(0);
-}
-
-function clear_alert_message () {
- document.forms.editor.elements["user.alert_message"].value = ' ';
- user.alert_message('');
-}
-
function save_user () {
- user.ischanged(1);
-
- //alert( js2JSON(user.stat_cat_entries()) );
- //return false;
try {
for (var i in user_perms) {
- if (!user_perms[i].depth()) {
+ if (user_perms[i].depth() == null) {
var p;
for (var j in perm_list) {
if (perm_list[j].id() == user_perms[i].perm()) {
}
}
- user.permissions(user_perms);
-
- for (var i in required_user_parts) {
- if (!user[i]()) {
- throw required_user_parts[i] + " is required.";
- }
- }
-
- for (var j in user.addresses()) {
- if (user.addresses()[j].isdeleted()) continue;
-
- for (var i in required_addr_parts) {
- if (!user.addresses()[j][i]()) {
- throw required_addr_parts[i] + " is required.";
- }
- }
- }
-
- var res = [];
- for (var i in responses) {
- if (!i) continue;
- for (var j in responses[i]) {
- if (!j) continue;
- var r = new asvr();
- r.usr(survey_user);
- r.survey(i);
- r.question(j);
- r.answer(responses[i][j]);
- r.answer_date( document.getElementById('e_date_'+i).value );
- res.push(r);
- }
- }
-
- user.survey_responses( res );
- responses = {};
-
-
- if (user.billing_address().isdeleted())
- throw "Please select a valid Billing Address";
-
- if (user.mailing_address().isdeleted())
- throw "Please select a valid Mailing Address";
-
- var req = new RemoteRequest( 'open-ils.actor', 'open-ils.actor.patron.update', ses_id, user );
+ var req = new RemoteRequest( 'open-ils.actor', 'open-ils.actor.user.permissions.update', ses_id, user_perms );
req.send(true);
var ok = req.getResultObject();
if (ok.ilsevent) throw ok;
-
- req = new RemoteRequest( 'open-ils.actor', 'open-ils.actor.user.set_groups', ses_id, ok.id(), user_groups );
- req.send(true);
- req.getResultObject();
if (ok) {
- alert( 'User ' + ok.usrname() +
- ' [' + ok.card().barcode() + '] ' +
- ' successfully saved!');
+ alert( 'User ' + user.usrname() +
+ ' [' + user.card().barcode() + '] ' +
+ ' successfully updated. ' + ok + ' permissions set!');
}
- init_editor(ok);
+ init_editor();
} catch (e) {
dump( js2JSON( e ));
return false;
}
-var _fake_id = 0;
-function fakeid () {
- return --_fake_id;
-};
-
-var adv_mode = false;
+var adv_mode = true;
function apply_adv_mode (root) {
adv_items = findNodesByClass(root,'advanced');
for (var i in adv_items) {
function init_editor (u) {
var x = document.getElementById('editor').elements;
-
cgi = new CGI();
if (cgi.param('adv')) adv_mode = true;
apply_adv_mode(document.getElementById('editor'));
- if (!u) {
- ses_id = cgi.param('ses');
+ ses_id = cgi.param('ses');
- var usr_id = cgi.param('usr');
- var usr_barcode = cgi.param('barcode');
- if (!usr_id && !usr_barcode) {
-
- user = new au();
- user.id(fakeid());
- user.isnew(1);
-
- user.mailing_address( new aua() );
- user.mailing_address().isnew(1);
- user.mailing_address().id(fakeid());
-
- user.billing_address( user.mailing_address() );
-
- user.card( new ac() );
- user.card().isnew(1);
- user.card().id(fakeid());
-
- user.addresses([]);
- user.addresses().push(user.mailing_address());
-
- user.cards([]);
- user.cards().push(user.card());
+ var usr_id = cgi.param('usr');
+ var usr_barcode = cgi.param('barcode');
+ try {
+ var req;
+ if (usr_id) {
+ req = new RemoteRequest( 'open-ils.actor', 'open-ils.actor.user.fleshed.retrieve', ses_id, usr_id );
} else {
- var req;
- if (usr_id) {
- req = new RemoteRequest( 'open-ils.actor', 'open-ils.actor.user.fleshed.retrieve', ses_id, usr_id );
- } else {
- req = new RemoteRequest( 'open-ils.actor', 'open-ils.actor.user.fleshed.retrieve_by_barcode', ses_id, usr_barcode );
- }
- req.send(true);
- user = req.getResultObject();
+ req = new RemoteRequest( 'open-ils.actor', 'open-ils.actor.user.fleshed.retrieve_by_barcode', ses_id, usr_barcode );
}
-
- } else {
- user = u;
+ req.send(true);
+ user = req.getResultObject();
+ } catch (E) {
+ alert(E);
}
- if (user.id() > 0) x['user.id'].value = user.id();
- if (cgi.param('adv')) x['user.id'].parentNode.parentNode.setAttribute('adv', 'false');
-
- if (user.create_date()) x['user.create_date'].value = user.create_date();
-
if (user.usrname()) x['user.usrname'].value = user.usrname();
x['user.usrname'].setAttribute('onchange','user.usrname(this.value)');
if (user.card() && user.card().barcode()) x['user.card.barcode'].value = user.card().barcode();
x['user.card.barcode'].setAttribute('onchange','user.card().barcode(this.value)');
- /*
- if (user.isnew()) {
- x['user.card.barcode'].disabled = false;
- } else {
- x['replace_card'].className = '';
- x['replace_card'].setAttribute('onclick',
- 'user.card(new ac()); ' +
- 'user.card().isnew(1); ' +
- 'user.card().id(fakeid()); ' +
- 'user.cards().push(user.card()); ' +
- 'this.parentNode.firstChild.disabled = false; ' +
- 'this.parentNode.firstChild.value = ""; ' +
- 'this.parentNode.firstChild.focus(); ' +
- 'return false;'
- );
- }
- */
-
- if (user.passwd()) x['user.passwd'].value = user.passwd();
- x['user.passwd'].setAttribute('onchange','user.passwd(this.value)');
-
- if (user.prefix()) x['user.prefix'].value = user.prefix();
- x['user.prefix'].setAttribute('onchange','user.prefix(this.value)');
if (user.first_given_name()) x['user.first_given_name'].value = user.first_given_name();
x['user.first_given_name'].setAttribute('onchange','user.first_given_name(this.value)');
if (user.family_name()) x['user.family_name'].value = user.family_name();
x['user.family_name'].setAttribute('onchange','user.family_name(this.value)');
- if (user.suffix()) x['user.suffix'].value = user.suffix();
- x['user.suffix'].setAttribute('onchange','user.suffix(this.value)');
-
- if (user.dob()) x['user.dob'].value = user.dob();
- x['user.dob'].setAttribute('onchange','user.dob(this.value)');
-
- if (user.ident_value()) x['user.ident_value'].value = user.ident_value();
- x['user.ident_value'].setAttribute('onchange','user.ident_value(this.value)');
-
- if (user.ident_value2()) x['user.ident_value2'].value = user.ident_value2();
- x['user.ident_value2'].setAttribute('onchange','user.ident_value2(this.value)');
-
- if (user.email()) x['user.email'].value = user.email();
- x['user.email'].setAttribute('onchange','user.email(this.value)');
-
- if (user.day_phone()) x['user.day_phone'].value = user.day_phone();
- x['user.day_phone'].setAttribute('onchange','user.day_phone(this.value)');
-
- if (user.evening_phone()) x['user.evening_phone'].value = user.evening_phone();
- x['user.evening_phone'].setAttribute('onchange','user.evening_phone(this.value)');
-
- if (user.other_phone()) x['user.other_phone'].value = user.other_phone();
- x['user.other_phone'].setAttribute('onchange','user.other_phone(this.value)');
-
- if (user.expire_date()) x['user.expire_date'].value = user.expire_date();
- x['user.expire_date'].setAttribute('onchange','user.expire_date(this.value)');
-
- if (user.active()) x['user.active'].checked = true;
- x['user.active'].setAttribute('onchange','user.active(this.checked ? "t" : "f" )');
-
- if (user.master_account()) x['user.master_account'].checked = true;
- x['user.master_account'].setAttribute('onchange','user.master_account(this.checked ? "t" : "f" )');
-
- if (user.super_user()) x['user.super_user'].checked = true;
- x['user.super_user'].setAttribute('onchange','user.super_user(this.checked ? "t" : "f" )');
- if (cgi.param('adv')) x['user.super_user'].parentNode.parentNode.setAttribute('adv', 'false');
-
- if (user.barred()) x['user.barred'].checked = true;
- x['user.barred'].setAttribute('onchange','user.barred(this.checked ? "t" : "f" )');
- if (cgi.param('adv')) x['user.barred'].parentNode.parentNode.setAttribute('adv', 'false');
-
- if (user.claims_returned_count()) x['user.claims_returned_count'].value = user.claims_returned_count();
- // onchange handled by func above
-
- if (user.alert_message()) x['user.alert_message'].value = user.alert_message();
- x['user.alert_message'].setAttribute('onchange','user.alert_message(this.value)');
-
-
- // set up the home_ou selector
- req = new RemoteRequest( 'open-ils.actor', 'open-ils.actor.org_tree.retrieve' );
- req.send(true);
- orgTree = req.getResultObject();
-
- selectBuilder(
- 'user.home_ou',
- [orgTree],
- user.home_ou(),
- { label_field : 'name',
- value_field : 'id',
- empty_label : '-- Required --',
- empty_value : '',
- clear : true,
- child_field_name : 'children' }
- );
-
- x['user.home_ou'].setAttribute('onchange','user.home_ou(this.options[this.selectedIndex].value)');
-
- // set up the ident_type selector
- req = new RemoteRequest( 'open-ils.actor', 'open-ils.actor.user.ident_types.retrieve' );
- req.send(true);
- ident_type_list = req.getResultObject();
-
- selectBuilder(
- 'user.ident_type',
- ident_type_list,
- user.ident_type(),
- { label_field : 'name',
- value_field : 'id',
- empty_label : '-- Required --',
- empty_value : '',
- clear : true }
- );
-
- x['user.ident_type'].setAttribute('onchange','user.ident_type(this.options[this.selectedIndex].value)');
-
- selectBuilder(
- 'user.ident_type2',
- ident_type_list,
- (user.ident_value2 == '' ? user.ident_type2() : ''),
- { label_field : 'name',
- value_field : 'id',
- empty_label : '-- Optional --',
- empty_value : '',
- clear : true }
- );
-
- x['user.ident_type2'].setAttribute('onchange','var x = this.options[this.selectedIndex].value; x ? user.ident_type2(x) : user.ident_type2(null);');
-
-
-/*
- // set up the barred checkbox
- req = new RemoteRequest( 'open-ils.actor', 'open-ils.actor.standings.retrieve' );
- req.send(true);
- standing_list = req.getResultObject();
-
- selectBuilder(
- 'user.standing',
- standing_list,
- user.standing(),
- { label_field : 'value',
- value_field : 'id',
- empty_label : '-- Required --',
- empty_value : '',
- clear : true }
- );
-
- x['user.standing'].setAttribute('onchange','user.standing(this.options[this.selectedIndex].value)');
-*/
-
- // set up the profile selector
- req = new RemoteRequest( 'open-ils.actor', 'open-ils.actor.groups.tree.retrieve' );
- req.send(true);
- group_tree = req.getResultObject();
-
- selectBuilder(
- 'user.profile',
- [group_tree],
- user.profile(),
- { label_field : 'name',
- value_field : 'id',
- empty_label : '-- Required --',
- empty_value : '',
- clear : true,
- child_field_name : 'children' }
- );
-
- x['user.profile'].setAttribute('onchange','user.profile(this.options[this.selectedIndex].value)');
-
- // set up the profile selector
- var user_group_objects = [];
- if (user.id() > 0) {
- req = new RemoteRequest( 'open-ils.actor', 'open-ils.actor.user.get_groups', ses_id, user.id() );
- req.send(true);
- user_group_objects = req.getResultObject();
- }
-
- user_groups = [];
- for (var i in user_group_objects) {
- user_groups.push(user_group_objects[i].grp());
- }
-
- selectBuilder(
- 'permgroups',
- [group_tree],
- user_groups,
- { label_field : 'name',
- value_field : 'id',
- clear : true,
- child_field_name : 'children' }
- );
-
- x['permgroups'].setAttribute( 'onchange',
- 'window.user_groups = [];' +
- 'for (var i = 0; i < this.options.length; i++) {' +
- ' if (this.options[i].selected)' +
- ' window.user_groups.push(this.options[i].value);' +
- '}');
-
- display_all_addresses();
-
- if (cgi.param('adv')) x['permgroups'].parentNode.parentNode.setAttribute('adv', 'false');
-
- req = new RemoteRequest( 'open-ils.circ', 'open-ils.circ.survey.retrieve.required', ses_id );
- req.send(true);
- surveys = req.getResultObject();
-
- var f = document.getElementById('surveys');
- while (f.firstChild) f.removeChild(f.lastChild);
-
- for ( var i in surveys )
- display_survey( f, surveys[i].id(), user.id() );
-
req = new RemoteRequest( 'open-ils.actor', 'open-ils.actor.permissions.user_perms.retrieve', ses_id );
req.send(true);
var staff_perms = req.getResultObject();
f = document.getElementById('permissions');
while (f.firstChild) f.removeChild(f.lastChild);
- for (var i in perm_list)
- display_perm(f,perm_list[i],staff_perms);
-
-
- req = new RemoteRequest( 'open-ils.circ', 'open-ils.circ.stat_cat.actor.retrieve.all', ses_id );
- req.send(true);
- var sc_list = req.getResultObject();
-
- var missing_scs = [];
- for (var i in user.stat_cat_entries()) {
- var found = 0;
- for (var j in sc_list) {
- if (sc_list[j].id() == user.stat_cat_entries()[i].stat_cat()) {
- found = 1;
- break;
- }
- }
- if (!found)
- missing_scs.push(user.stat_cat_entries()[i].stat_cat());
- }
-
- req = new RemoteRequest( 'open-ils.circ', 'open-ils.circ.stat_cat.actor.retrieve.batch', ses_id, missing_scs );
- req.send(true);
- var foreign_sc_list = req.getResultObject();
-
- f = document.getElementById('statcats');
- while (f.firstChild) f.removeChild(f.lastChild);
-
- for (var i in sc_list)
- display_sc(f,sc_list[i],user.stat_cat_entries());
-
- for (var i in foreign_sc_list)
- display_sc(f,foreign_sc_list[i],user.stat_cat_entries(), true);
+ var rcount = 0;
+ for (var i in perm_list.sort(function(a,b){ if (a.code() < b.code()) return -1;return 1; }))
+ display_perm(f,perm_list[i],staff_perms, rcount++);
return true;
}
-function set_sc_value (node) {
- var id = parseInt(node.getAttribute('scid'));
- var value = node.value;
-
-
- var sc;
- for (var i in user.stat_cat_entries()) {
- if (user.stat_cat_entries()[i].stat_cat() == id) {
- user.stat_cat_entries()[i].stat_cat_entry(value);
- if (value == '') {
- user.stat_cat_entries()[i].isdeleted(1);
- } else {
- user.stat_cat_entries()[i].isdeleted(0);
- user.stat_cat_entries()[i].ischanged(1);
- }
- sc = user.stat_cat_entries()[i];
- break;
- }
- }
-
- if (!sc) {
- sc = new actscecm();
- sc.isnew(1);
- sc.stat_cat_entry(value);
- sc.stat_cat(id);
- sc.target_usr(user.id());
-
- user.stat_cat_entries().push(sc);
- }
-}
-
-function display_sc (root,sc_def, user_scs, foreign) {
-
- var sc;
- for (var i in user_scs) {
- if (sc_def.id() == user_scs[i].stat_cat()) {
- sc = user_scs[i];
- break;
- }
- }
-
- var sc_row = findNodeByName(document.getElementById('statcat-tmpl'), 'scrow').cloneNode(true);
- root.appendChild(sc_row);
-
- findNodeByName(sc_row,'sc.name').appendChild(text(sc_def.name()));
-
- var text_box = findNodeByName(sc_row,'sce.value');
- text_box.setAttribute('scid', sc_def.id());
- if (sc) text_box.value = sc.stat_cat_entry();
-
- if (!foreign) {
- if (sc_def.entries().length > 0) {
- var selector = findNodeByName(sc_row,'sce_select');
- selector.id = 'scid-' + sc_def.id();
-
- removeCSSClass(selector.parentNode, 'hideme');
-
- selectBuilder(
- 'scid-' + sc_def.id(),
- sc_def.entries(),
- (sc ? sc.stat_cat_entry() : ''),
- { label_field : 'value',
- value_field : 'value',
- empty_label : '-- Select One --',
- empty_value : '',
- clear : true }
- );
- }
- } else {
- text_box.disabled = true;
- text_box.parentNode.appendChild(text('(Foreign Stat Cat)'));
- }
-}
-
-function display_perm (root,perm_def,staff_perms) {
+function display_perm (root,perm_def,staff_perms, r) {
var prow = findNodeByName(document.getElementById('permission-tmpl'), 'prow').cloneNode(true);
root.appendChild(prow);
findNodeByName(label_cell,'p.code').appendChild(text(perm_def.code()));
findNodeByName(label_cell,'p.code').setAttribute('title', perm_def.description());
findNodeByName(label_cell,'p.code').setAttribute('permid', perm_def.id());
+ if (r % 2) label_cell.className += ' odd';
var apply_cell = findNodeByName(prow,'papply');
findNodeByName(apply_cell,'p.id').disabled = dis;
findNodeByName(apply_cell,'p.id').checked = up ? true : false;
+ if (r % 2) apply_cell.className += ' odd';
var depth_cell = findNodeByName(prow,'pdepth');
findNodeByName(depth_cell,'p.depth').disabled = dis;
findNodeByName(depth_cell,'p.depth').id = 'perm-depth-' + perm_def.id();
+ if (r % 2) depth_cell.className += ' odd';
selectBuilder(
'perm-depth-' + perm_def.id(),
globalOrgTypes,
var grant_cell = findNodeByName(prow,'pgrant');
findNodeByName(grant_cell,'p.grantable').disabled = dis;
findNodeByName(grant_cell,'p.grantable').checked = up ? (up.grantable() ? true : false) : false;
+ if (r % 2) grant_cell.className += ' odd';
}
-function display_all_addresses () {
- d = document.getElementById('addresses');
- while (d.firstChild)
- d.removeChild(d.lastChild);
-
- for (var i in user.addresses())
- display_address(document.getElementById('addresses'), user.addresses()[i]);
-}
-
-function new_addr () {
- var x = new aua();
- x.isnew(1);
- x.id(fakeid());
-
- user.addresses().push(x);
- display_address(document.getElementById('addresses'), x);
-}
-
-function display_survey (div, sid, uid) {
-
- var t = document.getElementById('survey-tmpl').firstChild.cloneNode(true);
- div.appendChild(t);
-
- init_survey(t,sid,uid);
-}
-
-function display_address (div, adr) {
-
- var dis = false;
- if (adr.isdeleted()) dis = true;
-
- var t = document.getElementById('addr-tmpl').getElementsByTagName('table')[0].cloneNode(true);
- div.appendChild(t);
-
- var x;
-
- x = findNodeByName(t, 'adr.address_type');
- x.disabled = dis;
- if (adr.address_type()) x.value = adr.address_type();
- x.setAttribute( 'onchange', 'findAddressById(' + adr.id() + ').address_type(this.value)');
-
- x = findNodeByName(t, 'adr.street1');
- x.disabled = dis;
- if (adr.street1()) x.value = adr.street1();
- x.setAttribute( 'onchange', 'findAddressById(' + adr.id() + ').street1(this.value)');
-
- x = findNodeByName(t, 'adr.street2');
- x.disabled = dis;
- if (adr.street2()) x.value = adr.street2();
- x.setAttribute( 'onchange', 'findAddressById(' + adr.id() + ').street2(this.value)');
-
- x = findNodeByName(t, 'adr.city');
- x.disabled = dis;
- if (adr.city()) x.value = adr.city();
- x.setAttribute( 'onchange', 'findAddressById(' + adr.id() + ').city(this.value)');
-
- x = findNodeByName(t, 'adr.state');
- x.disabled = dis;
- if (adr.state()) x.value = adr.state();
- x.setAttribute( 'onchange', 'findAddressById(' + adr.id() + ').state(this.value)');
-
- x = findNodeByName(t, 'adr.post_code');
- x.disabled = dis;
- if (adr.post_code()) x.value = adr.post_code();
- x.setAttribute( 'onchange', 'findAddressById(' + adr.id() + ').post_code(this.value)');
-
- x = findNodeByName(t, 'adr.county');
- x.disabled = dis;
- if (adr.county()) x.value = adr.county();
- x.setAttribute( 'onchange', 'findAddressById(' + adr.id() + ').county(this.value)');
-
- x = findNodeByName(t, 'adr.country');
- x.disabled = dis;
- if (adr.country()) x.value = adr.country();
- x.setAttribute( 'onchange', 'findAddressById(' + adr.id() + ').country(this.value)');
-
- x = findNodeByName(t, 'adr.valid');
- x.disabled = dis;
- if (adr.valid()) x.checked = true;
- x.setAttribute( 'onchange', 'findAddressById(' + adr.id() + ').valid(this.checked ? "t" : "f")');
-
- x = findNodeByName(t, 'is_mailing');
- x.disabled = dis;
- x.value = adr.id();
- x.setAttribute( 'onclick', 'user.mailing_address(findAddressById(' + adr.id() + '))');
- if (adr.id() == user.mailing_address().id()) {
- x.checked = true;
- }
-
- x = findNodeByName(t, 'is_billing');
- x.disabled = dis;
- x.value = adr.id();
- x.setAttribute( 'onclick', 'user.billing_address(findAddressById(' + adr.id() + '))');
- if (adr.id() == user.billing_address().id()) {
- x.checked = true;
- }
-
- x = findNodeByName(t, 'remove');
- if (dis) {
- x.setAttribute('onclick', 'unremove_adr(' + adr.id() + '); return false;');
- x.innerHTML = "Undelete this address";
- } else {
- x.setAttribute('onclick', 'remove_adr(' + adr.id() + '); return false;');
- }
-
-
- return true;
-}
-
-function unremove_adr (id) {
- findAddressById(id).isdeleted(0);
- display_all_addresses();
-}
-
-function remove_adr (id) {
- findAddressById(id).isdeleted(1);
- display_all_addresses();
-}
-
-function findAddressById (id) {
- for (var i in user.addresses())
- if (user.addresses()[i].id() == id) return user.addresses()[i];
-}
-
function selectBuilder (id, objects, def, args) {
var label_field = args['label_field'];
if (typeof def == 'object') {
for (var j in def) {
- if (v == def[j]) opt.selected = true;
+ if (v == def[j]) {
+ opt.selected = true;
+ sel.value = v;
+ }
}
} else {
- if (v == def) opt.selected = true;
+ if (v == def) {
+ opt.selected = true;
+ sel.value = v;
+ }
}
if (child_field_name) {
}
table { border-collapse: collapse;
- border: solid black 1px;
margin-bottom: 10px;
margin-top: 10px;
}
border-top: solid black 1px;
}
+ td.odd { background-color: lightcyan; }
+
td.label { text-align: right;
padding-right: 10px;
}
<table width="100%">
<tr>
- <th colspan="2">User Identifcation</th>
- </tr>
- <tr class='advanced hideme'>
- <td class="label">System ID:</td>
- <td class="value"><input type="text" name="user.id" id="user.id" disabled="true"/></td>
- </tr>
- <tr>
- <td class="label">Creation Date:</td>
- <td class="value"><input type="text" name="user.create_date" id="user.create_date" disabled="true"/></td>
- </tr>
- <tr>
<td class="label">User Name:</td>
<td class="value"><input disabled="true" type="text" name="user.usrname" id="user.usrname"/></td>
- </tr>
- <tr>
- <td class="label">Current Barcode:</td>
- <td class="value"><input type="text" name="user.card.barcode" id="user.card.barcode" disabled="true"/>
- <button class="hideme stay_hidden" name="replace_card">Replace Card</button>
- </td>
- </tr>
- <tr class='stay_hidden'>
- <td class="label">Password:</td>
- <td class="value"><input type="password" name="user.passwd" id="user.passwd"/></td>
- </tr>
-
- <tr>
- <td class="label">Honorific:</td>
- <td class="value"><input disabled="true" type="text" name="user.prefix" id="user.prefix"/></td>
+ <td class="label">Barcode:</td>
+ <td class="value"><input type="text" name="user.card.barcode" id="user.card.barcode" disabled="true"/></td>
</tr>
<tr>
<td class="label">First Name:</td>
<td class="value"><input disabled="true" type="text" name="user.first_given_name" id="user.first_given_name"/></td>
- </tr>
- <tr>
<td class="label">Middle Name:</td>
<td class="value"><input disabled="true" type="text" name="user.second_given_name" id="user.second_given_name"/></td>
- </tr>
- <tr>
<td class="label">Last Name:</td>
<td class="value"><input disabled="true" type="text" name="user.family_name" id="user.family_name"/></td>
</tr>
- <tr>
- <td class="label">Title:</td>
- <td class="value"><input disabled="true" type="text" name="user.suffix" id="user.suffix"/></td>
- </tr>
-
- <tr>
- <td class="label">Date of Birth:</td>
- <td class="value"><input disabled="true" type="text" name="user.dob" id="user.dob"/></td>
- </tr>
-
- <tr class='stay_hidden'>
- <td class="label">Primary Identification Type:</td>
- <td class="value"><select name="user.ident_type" id="user.ident_type"/></td>
- </tr>
- <tr class='stay_hidden'>
- <td class="label">Primary Identification:</td>
- <td class="value"><input type="text" name="user.ident_value" id="user.ident_value"/></td>
- </tr>
- <tr class='stay_hidden'>
- <td class="label">Alternate Identification Type:</td>
- <td class="value"><select name="user.ident_type2" id="user.ident_type2"/></td>
- </tr>
- <tr class='stay_hidden'>
- <td class="label">Alternate Identification:</td>
- <td class="value"><input type="text" name="user.ident_value2" id="user.ident_value2"/></td>
- </tr>
-
-
-
- <tr class='stay_hidden'>
- <th colspan="2">Contact Information</th>
- </tr>
- <tr class='stay_hidden'>
- <td class="label">Email Address:</td>
- <td class="value"><input type="text" name="user.email" id="user.email"/></td>
- </tr>
-
- <tr class='stay_hidden'>
- <td class="label">Daytime Phone:</td>
- <td class="value"><input type="text" name="user.day_phone" id="user.day_phone"/></td>
- </tr>
- <tr class='stay_hidden'>
- <td class="label">Evening Phone:</td>
- <td class="value"><input type="text" name="user.evening_phone" id="user.evening_phone"/></td>
- </tr>
- <tr class='stay_hidden'>
- <td class="label">Other/Cell Phone:</td>
- <td class="value"><input type="text" name="user.other_phone" id="user.other_phone"/></td>
- </tr>
-
- <tr class='stay_hidden'>
- <td class="label">Home Library:</td>
- <td class="value"><select name="user.home_ou" id="user.home_ou"/></td>
- </tr>
-
- <tr class='stay_hidden'>
- <th class="label" colspan="2">Addresses</th>
- </tr>
- <tr class='stay_hidden'>
- <td class="value" colspan="2">
- <div>
- <button onclick="new_addr(); return false;">New Address</button>
- </div>
- <div name="addresses" id="addresses"/>
- </td>
- </tr>
-
-
-
-
-
- <tr>
- <th colspan="2">User Settings</th>
- </tr>
- <tr>
- <td class="label">Profile Group:</td>
- <td class="value"><select name="user.profile" id="user.profile"/></td>
- </tr>
- <tr class='stay_hidden'>
- <td class="label">Expire Date:</td>
- <td class="value"><input type="text" name="user.expire_date" id="user.expire_date"/></td>
- </tr>
- <tr class='advanced hideme'>
- <td class="label">Active:</td>
- <td class="value"><input type="checkbox" name="user.active" id="user.active" value="t"/></td>
- </tr>
- <tr class='advanced hideme'>
- <td class="label">Set as Superuser:</td>
- <td class="value"><input type="checkbox" name="user.super_user" id="user.super_user" value="t"/></td>
- </tr>
- <tr class='advanced hideme'>
- <td class="label">Barred:</td>
- <td class="value"><input type="checkbox" name="user.barred" id="user.barred" value="t"/></td>
- </tr>
- <tr class='stay_hidden'>
- <td class="label">Set as Family or Group Lead Account:</td>
- <td class="value"><input type="checkbox" name="user.master_account" id="user.master_account" value="t"/></td>
- </tr>
- <tr class='advanced hideme stay_hidden'>
- <td class="label">"Claims returned" count:</td>
- <td class="value">
- <input type="text" name="user.claims_returned_count" id="user.claims_returned_count" value="0" disabled="true"/>
- <button onclick="reset_crc(); return false;">Reset</button>
- </td>
- </tr>
- <tr class='stay_hidden'>
- <td class="label">Alert Message:</td>
- <td class="value">
- <textarea name="user.alert_message" id="user.alert_message" defaultvalue=''> </textarea>
- <button onclick="clear_alert_message(); return false;">Reset</button>
- </td>
- </tr>
-
-
- <tr class='advanced hideme'>
- <th colspan="2">User Permissions</th>
- </tr>
- <tr class='advanced hideme'>
- <td class="label">Permission Groups:</td>
- <td class="value"><select multiple="muliple" name="permgroups" id="permgroups"/></td>
- </tr>
<tr class='advanced hideme'>
- <td class="value" colspan="2">
+ <td class="value" colspan="6">
<table width="100%">
<thead>
<tr>
</td>
</tr>
-
- <tr class='stay_hidden'>
- <th colspan="2">Local Statistical Catagories</th>
- </tr>
- <tbody id="statcats" name="statcats" class='stay_hidden'/>
-
-
- <tr class='stay_hidden'>
- <th colspan="2">Required Surveys</th>
- </tr>
- <tr class='stay_hidden'>
- <td colspan="2" class='value'>
- <div name="surveys" id="surveys" style="width: 100%"/>
- </td>
- </tr>
-
-
</table>
<button onclick="save_user(); return false;">Save</button>
</form>
- <div class='hideme' id="addr-tmpl">
- <table>
- <tr>
- <td class="label" colspan="1">Address Label</td>
- <td colspan="1"><input type="text" size="7" name="adr.address_type"/></td>
- <td class="label" colspan="1">Mailing Address</td>
- <td colspan="1"><input type="radio" name="is_mailing"/></td>
- <td class="label" colspan="1">Physical Address</td>
- <td colspan="1"><input type="radio" name="is_billing"/></td>
- <td class="label" colspan="1">Valid</td>
- <td colspan="1"><input type="checkbox" name="adr.valid" value='t'/></td>
- </tr>
- <tr>
- <td class="label" colspan="1">Street 1</td>
- <td colspan="7"><input type="text" size="50" name="adr.street1"/></td>
- </tr>
- <tr>
- <td class="label" colspan="1">Street 2</td>
- <td colspan="7"><input type="text" size="50" name="adr.street2"/></td>
- </tr>
- <tr>
- <td class="label">City</td>
- <td><input type="text" size="15" name="adr.city"/></td>
- <td class="label">State</td>
- <td><input type="text" size="4" name="adr.state"/></td>
- <td class="label">ZIP</td>
- <td colspan='3'><input type="text" size="10" name="adr.post_code"/></td>
- </tr>
- <tr>
- <td colspan="1" class="label">County</td>
- <td colspan="2"><input type="text" size="20" name="adr.county"/></td>
- <td colspan="1" class="label">Country</td>
- <td colspan="4"><input type="text" size="20" name="adr.country"/></td>
- </tr>
- <tr>
- <td colspan="8"><button name="remove">Remove this address</button></td>
- </tr>
- </table>
- </div>
-
- <div class='hideme' id="statcat-tmpl">
- <tr name='scrow'>
- <td class="label" name='sclabel' valign='top'>
- <span name="sc.name"/>
- </td>
- <td class="value">
- <input type="text" name="sce.value" onchange="set_sc_value(this);"/>
- <div class='hideme'>
- <select
- onchange="
- var x = findNodeByName(this.parentNode.parentNode,'sce.value');
- x.value = this.options[this.selectedIndex].value;
- set_sc_value(x);"
- name="sce_select"/>
- </div>
- </td>
- </tr>
- </div>
-
<div class='hideme' id="permission-tmpl">
<tr name='prow'>
- <td class="label" name='plabel'>
+ <td class="value" name='plabel'>
<span name="p.code"/>
</td>
<td class="value" name='papply'>
</tr>
</div>
- <div class='hideme' id='survey-tmpl'><div>
-
- <table name="editor" width="95%">
- <tr>
- <td colspan="2" style="text-align: center; font-weight: bold;"><span name="sur.name"/></td>
- </tr>
- <tr>
- <td colspan="2" style="text-align: center"><span name="sur.description"/></td>
- </tr>
- <!--
- <tr>
- <th class="label">Survey Start Date:</th>
- <td class="value"><span name="sur.start_date"/></td>
- </tr>
- <tr>
- <th class="label">Survey End Date:</th>
- <td class="value"><span name="sur.end_date"/></td>
- </tr>
- -->
- <tr>
- <td class="label">Answer Date:</td>
- <td class="value"><input type="text" name="effective_date"/></td>
- </tr>
- <tr>
- <td class="label">Questions</td>
- <td class="value" name="questions"/>
- </tr>
- <!--
- <tr>
- <th colspan="2" class="label">
- <button name="save_response">Submit</button>
- </th>
- </tr>
- -->
- </table>
- <div class='hideme' name="question-tmpl">
- <table width="100%">
- <tr>
- <td class="value">
- <span name="q.question"/>
- </td>
- </tr>
- <tr>
- <td class="label">
- <select onchange="update_response(this);" name="answers-sel" class='hideme'/>
- <div name="answers-rad" class='hideme'><input onclick="update_response_rad(this);" type="radio"/></div>
- </td>
- </tr>
- </table>
- </div>
- </div></div>
-
-
</body>
</html>