[open-ils-commits] r12379 - trunk/Open-ILS/web/js/ui/default/actor/user (erickson)
svn at svn.open-ils.org
svn at svn.open-ils.org
Tue Mar 3 11:30:05 EST 2009
Author: erickson
Date: 2009-03-03 11:30:02 -0500 (Tue, 03 Mar 2009)
New Revision: 12379
Modified:
trunk/Open-ILS/web/js/ui/default/actor/user/register.js
Log:
plugged in user editing, with a few remaining bugs to squash
Modified: trunk/Open-ILS/web/js/ui/default/actor/user/register.js
===================================================================
--- trunk/Open-ILS/web/js/ui/default/actor/user/register.js 2009-03-03 16:25:09 UTC (rev 12378)
+++ trunk/Open-ILS/web/js/ui/default/actor/user/register.js 2009-03-03 16:30:02 UTC (rev 12379)
@@ -9,6 +9,7 @@
dojo.require('dijit.form.CheckBox');
dojo.require('dijit.form.Button');
dojo.require('dojo.date');
+dojo.require('openils.CGI');
var pcrud;
var fmClasses = ['au', 'ac', 'aua', 'actsc', 'asv', 'asvq', 'asva'];
@@ -25,12 +26,14 @@
var orgSettings = {};
var tbody;
var addrTemplateRows;
+var cgi;
function load() {
staff = new openils.User().user;
pcrud = new openils.PermaCrud();
- uEditNewPatron(); /* XXX */
+ cgi = new openils.CGI();
+ uEditLoadUser(cgi.param('usr'));
orgSettings = fieldmapper.aou.fetchOrgSettingBatch(staff.ws_ou(), [
'global.juvenile_age_threshold',
@@ -56,11 +59,21 @@
surveyQuestionTemplate = tbody.removeChild(dojo.byId('survey-question-row-template'));
loadStaticFields();
- uEditNewAddr(null, uEditAddrVirtId);
+ if(patron.isnew())
+ uEditNewAddr(null, uEditAddrVirtId);
+ else loadAllAddrs();
loadStatCats();
loadSurveys();
}
+function uEditLoadUser(userId) {
+ if(!userId) return uEditNewPatron();
+ patron = fieldmapper.standardRequest(
+ ['open-ils.actor', 'open-ils.actor.user.fleshed.retrieve'],
+ {params : [openils.User.authtoken, cgi.param('usr')]}
+ );
+}
+
function loadStaticFields() {
for(var idx = 0; tbody.childNodes[idx]; idx++) {
var row = tbody.childNodes[idx];
@@ -71,6 +84,14 @@
}
}
+function loadAllAddrs() {
+ dojo.forEach(patron.addresses(),
+ function(addr) {
+ uEditNewAddr(null, addr.id());
+ }
+ );
+}
+
function loadStatCats() {
statCats = fieldmapper.standardRequest(
@@ -97,6 +118,11 @@
comboBox._statcat = stat.id();
widgetPile.push(comboBox);
+ // populate existing cats
+ var map = patron.stat_cat_entries().filter(
+ function(mp) { return (mp.stat_cat() == stat.id()) })[0];
+ if(map) comboBox.attr('value', map.stat_cat_entry());
+
}
}
@@ -165,9 +191,19 @@
span = document.createElement('span');
wtd.appendChild(span);
+ var fmObject = null;
+ switch(fmcls) {
+ case 'au' : fmObject = patron; break;
+ case 'ac' : fmObject = patron.card(); break;
+ case 'aua' :
+ fmObject = patron.addresses().filter(
+ function(i) { return (i.id() == args.addr) })[0];
+ break;
+ }
+
var widget = new openils.widget.AutoFieldWidget({
idlField : fieldIdl,
- fmObject : null, // XXX
+ fmObject : fmObject,
fmClass : fmcls,
parentNode : span,
widgetClass : wclass,
@@ -250,11 +286,11 @@
card.isnew(1);
patron.card(card);
patron.cards([card]);
- //patron.net_access_level(defaultNetLevel);
+ //patron.net_access_level(defaultNetLevel); XXX
patron.stat_cat_entries([]);
patron.survey_responses([]);
patron.addresses([]);
- //patron.home_ou(USER.ws_ou());
+ //patron.home_ou(USER.ws_ou()); XXX
uEditMakeRandomPw(patron);
}
@@ -292,13 +328,19 @@
case 'aua':
var addr = patron.addresses().filter(function(i){return (i.id() == w._addr)})[0];
+ var val = uEditWidgetVal(w);
+ //console.log('addr ' + w._addr + ' : ' + addr);
if(!addr) {
addr = new fieldmapper.aua();
addr.id(w._addr);
addr.isnew(1);
+ addr.usr(patron.id());
patron.addresses().push(addr);
+ } else {
+ if(addr[w._fmfield]() != val)
+ addr.ischanged(1);
}
- addr[w._fmfield](uEditWidgetVal(w));
+ addr[w._fmfield](val);
break;
case 'survey':
@@ -316,8 +358,20 @@
case 'statcat':
var val = uEditWidgetVal(w);
if(val == null) break;
- var map = new fieldmapper.actscecm();
- map.isnew(1);
+
+ var map = patron.stat_cat_entries().filter(
+ function(m){
+ return (m.stat_cat() == w._statcat) })[0];
+
+ if(map) {
+ if(map.stat_cat_entry() == val)
+ break;
+ map.ischanged(1);
+ } else {
+ map = new fieldmapper.actscecm();
+ map.isnew(1);
+ }
+
map.stat_cat(w._statcat);
map.stat_cat_entry(val);
map.target_usr(patron.id());
@@ -333,6 +387,7 @@
oncomplete: function(r) {
patron = openils.Util.readResponse(r);
if(patron) {
+ //alert('done');
uEditRefresh();
}
}
More information about the open-ils-commits
mailing list