dojo.require('dojox.grid._data.model');
dojo.require('fieldmapper.dojoData');
dojo.require('openils.User');
+dojo.require('openils.Event');
/** Declare the Lineitems class with dojo */
dojo.declare('openils.acq.Lineitems', null, {
{ async: true,
params: [openils.User.authtoken, this.lineitem],
oncomplete: function(r) {
- oncomplete(r.recv().content())
+ oncomplete(openils.Event.parse(r.recv().content()));
}
}
);
},
- setState: function(newState, oncomplete) {
- this.lineitem.state(newState);
- this.update(oncomplete);
+ approve: function(oncomplete) {
+ fieldmapper.standardRequest(
+ ['open-ils.acq', 'open-ils.acq.lineitem.approve'],
+ { async: true,
+ params: [openils.User.authtoken, this.lineitem.id()],
+ oncomplete: function(r) {
+ oncomplete(openils.Event.parse(r.recv().content()));
+ }
+ });
+ },
+
+ id: function() {
+ return this.lineitem.id();
},
});
});
};
-openils.acq.Lineitems.alertOnSet = function(griditem, attr, oldVal, newVal) {
+openils.acq.Lineitems.alertOnLIDSet = function(griditem, attr, oldVal, newVal) {
var item;
var updateDone = function(r) {
var stat = r.recv().content();
- // XXX Check for Event
- }
+ var evt = openils.Event.parse(stat);
+
+ if (evt) {
+ alert("Error: "+evt.desc);
+ console.dir(evt);
+ if (attr == "fund") {
+ item.fund(oldVal);
+ griditem.fund = oldVal;
+ } else if (attr == "owning_lib") {
+ item.owning_lib(oldVal);
+ griditem.owning_lib = oldVal;
+ }
+ }
+ };
if (oldVal == newVal) {
return;
oncomplete: function(r) {
msg = r.recv()
stat = msg.content();
- onComplete();
+ onComplete(openils.Event.parse(stat));
}
});
};
{rowsPerPage: 20, clientSort:true, query:{id:'*'}});
dojo.connect(store, "onSet",
- openils.acq.Lineitems.alertOnSet);
+ openils.acq.Lineitems.alertOnLIDSet);
openils.acq.Lineitems.ModelCache[id] = model;
domNode.setStructure(layout);
});
} else {
domNode.setModel(openils.acq.Lineitems.ModelCache[id]);
+ domNode.setStructure(layout);
domNode.update();
+ domNode.refresh();
}
};
}