1 dojo.require('dojox.grid.DataGrid');
2 dojo.require('dojo.data.ItemFileWriteStore');
3 dojo.require('dijit.Dialog');
4 dojo.require('dijit.form.Button');
5 dojo.require('dijit.form.TextBox');
6 dojo.require('dijit.form.Button');
7 dojo.require('dojox.grid.cells.dijit');
8 dojo.require('openils.acq.Picklist');
9 dojo.require('openils.Util');
15 var method = 'open-ils.acq.picklist.user.retrieve';
17 method = method.replace(/user/, 'user.all');
19 var store = new dojo.data.ItemFileWriteStore({data:acqpl.initStoreData()});
20 plListGrid.setStore(store);
22 dojo.connect(store, 'onSet', plGridChanged);
24 fieldmapper.standardRequest(
25 ['open-ils.acq', method],
28 params: [openils.User.authtoken,
29 {flesh_lineitem_count:1, flesh_owner:1}],
31 onresponse : function(r) {
32 if(pl = openils.Util.readResponse(r)) {
33 plCache[pl.id()] = pl;
34 store.newItem(acqpl.itemToStoreData(pl));
40 function getOwnerName(rowIndex, item) {
42 var id= this.grid.store.getValue(item, 'id');
44 return pl.owner().usrname();
47 function createPL(fields) {
48 if(fields.name == '') return;
50 openils.acq.Picklist.create(fields,
53 fieldmapper.standardRequest(
55 ['open-ils.acq', 'open-ils.acq.picklist.retrieve'],
57 params: [openils.User.authtoken, plId,
58 {flesh_lineitem_count:1, flesh_username:1}],
60 oncomplete: function(r) {
61 if(pl = openils.Util.readResponse(r))
62 plListGrid.store.newItem(acqpl.toStoreData([pl]).items[0]);
69 function plGridChanged(item, attr, oldVal, newVal) {
70 var pl = plCache[plListGrid.store.getValue(item, 'id')];
71 console.log("changing pl " + pl.id() + " object: " + attr + " = " + newVal);
74 plSaveButton.setDisabled(false);
76 function saveChanges() {
77 plListGrid.doclick(0);
78 var changedObjects = [];
79 for(var i in plCache){
82 changedObjects.push(pl);
84 _saveChanges(changedObjects, 0);
86 function _saveChanges(changedObjects, idx) {
88 if(idx >= changedObjects.length) {
89 // we've made it through the list
90 plSaveButton.setDisabled(true);
94 var pl = changedObjects[idx];
95 var owner = pl.owner();
96 pl.owner(owner.id()); // un-flesh the owner object
98 fieldmapper.standardRequest(
99 ['open-ils.acq', 'open-ils.acq.picklist.update'],
101 params: [openils.User.authtoken, pl],
102 oncomplete: function(r) {
103 if(stat = openils.Util.readResponse(r)) {
104 _saveChanges(changedObjects, ++idx);
111 function getDateTimeField(rowIndex, item) {
113 var data = this.grid.store.getValue(item, this.field);
114 var date = dojo.date.stamp.fromISOString(data);
115 return dojo.date.locale.format(date, {formatLength:'short'});
117 function deleteFromGrid() {
119 var selected = plListGrid.selection.getSelected();
120 for(var idx = 0; idx < selected.length; idx++) {
121 var item = selected[idx];
123 plListGrid.store.deleteItem(item);
125 openils.acq.Picklist.deleteList(list);
128 openils.Util.addOnLoad(loadGrid);