widget._fmfield = fmfield;
widget._addr = args.addr;
widgetPile.push(widget);
- attachEvents(fmcls, fmfield, widget);
+ attachWidgetEvents(fmcls, fmfield, widget);
return widget;
}
-function attachEvents(fmcls, fmfield, widget) {
+function findWidget(wtype, fmfield) {
+ return widgetPile.filter(
+ function(i){
+ return (i._wtype == wtype && i._fmfield == fmfield);
+ }
+ ).pop();
+}
+
+function attachWidgetEvents(fmcls, fmfield, widget) {
+
+ if(fmcls == 'ac') {
+ if(fmfield == 'barcode') {
+ dojo.connect(widget.widget, 'onChange',
+ function() {
+ var un = findWidget('au', 'usrname');
+ if(!un.widget.attr('value'))
+ un.widget.attr('value', this.attr('value'));
+ }
+ );
+ }
+ }
+
if(fmcls == 'au') {
switch(fmfield) {
case 'profile': // when the profile changes, update the expire date
dojo.connect(widget.widget, 'onChange',
function() {
-
- var expireWidget = widgetPile.filter(
- function(i){return (i._fmfield == 'expire_date')})[0];
var self = this;
-
+ var expireWidget = findWidget('au', 'expire_date');
function found(items) {
if(items.length == 0) return;
var item = items[0];
var interval = self.store.getValue(item, 'perm_interval');
- expireWidget.widget.attr('value',
- dojo.date.add(new Date(), 'second', openils.Util.intervalToSeconds(interval)));
+ expireWidget.widget.attr('value', dojo.date.add(new Date(),
+ 'second', openils.Util.intervalToSeconds(interval)));
}
this.store.fetch({onComplete:found, query:{id:this.attr('value')}});
}