From: erickson Date: Tue, 9 Dec 2008 17:15:29 +0000 (+0000) Subject: now updating grid dynamically with writestore for initial drawing, additions, and... X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=f4c1b2bd4b642ac386ad157da2d14d2a7a22f810;p=Evergreen.git now updating grid dynamically with writestore for initial drawing, additions, and deletiong git-svn-id: svn://svn.open-ils.org/ILS/trunk@11475 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/web/js/dojo/openils/acq/Picklist.js b/Open-ILS/web/js/dojo/openils/acq/Picklist.js index 4c12bd2cc5..504b9691a0 100644 --- a/Open-ILS/web/js/dojo/openils/acq/Picklist.js +++ b/Open-ILS/web/js/dojo/openils/acq/Picklist.js @@ -146,8 +146,11 @@ openils.acq.Picklist.deleteList = function(list, onComplete) { /* iterate through the list of IDs deleting asynchronously as we go... */ openils.acq.Picklist._deleteList = function(list, idx, onComplete) { - if(idx >= list.length) - return onComplete(); + if(idx >= list.length) { + if(onComplete) + onComplete(); + return; + } fieldmapper.standardRequest( ['open-ils.acq', 'open-ils.acq.picklist.delete'], { async: true, diff --git a/Open-ILS/web/js/ui/default/acq/picklist/view_list.js b/Open-ILS/web/js/ui/default/acq/picklist/view_list.js index 93de4019b4..b511e1f1f8 100644 --- a/Open-ILS/web/js/ui/default/acq/picklist/view_list.js +++ b/Open-ILS/web/js/ui/default/acq/picklist/view_list.js @@ -1,4 +1,5 @@ dojo.require('dojox.grid.DataGrid'); +dojo.require('dojo.data.ItemFileWriteStore'); dojo.require('dijit.Dialog'); dojo.require('dijit.form.Button'); dojo.require('dijit.form.TextBox'); @@ -6,32 +7,27 @@ dojo.require('dijit.form.Button'); dojo.require('openils.acq.Picklist'); dojo.require('openils.Util'); -var plList = []; var listAll = false; -function makeGridFromList() { - var store = new dojo.data.ItemFileReadStore({data:acqpl.toStoreData(plList)}); - plListGrid.setStore(store); - plListGrid.render(); -} - - function loadGrid() { - var method = 'open-ils.acq.picklist.user.retrieve.atomic'; + var method = 'open-ils.acq.picklist.user.retrieve'; if(listAll) method = method.replace(/user/, 'user.all'); + var store = new dojo.data.ItemFileWriteStore({data:acqpl.toStoreData([])}); + plListGrid.setStore(store); + plListGrid.render(); + fieldmapper.standardRequest( ['open-ils.acq', method], + { async: true, params: [openils.User.authtoken, {flesh_lineitem_count:1, flesh_username:1}], - oncomplete: function(r) { - var resp = r.recv().content(); - if(e = openils.Event.parse(resp)) - return alert(e); - plList = resp; - makeGridFromList(); + + onresponse : function(r) { + if(pl = openils.Util.readResponse(r)) + store.newItem(acqpl.toStoreData([pl]).items[0]); } } ); @@ -39,17 +35,20 @@ function loadGrid() { function createPL(fields) { if(fields.name == '') return; + openils.acq.Picklist.create(fields, + function(plId) { fieldmapper.standardRequest( + ['open-ils.acq', 'open-ils.acq.picklist.retrieve'], { async: true, params: [openils.User.authtoken, plId, {flesh_lineitem_count:1, flesh_username:1}], + oncomplete: function(r) { - var pl = r.recv().content(); - plList.push(pl); - makeGridFromList(); + if(pl = openils.Util.readResponse(r)) + plListGrid.store.newItem(acqpl.toStoreData([pl]).items[0]); } } ); @@ -61,17 +60,11 @@ function deleteFromGrid() { var list = [] var selected = plListGrid.selection.getSelected(); for(var idx = 0; idx < selected.length; idx++) { - var rowIdx = selected[idx]; - var id = plListGrid.model.getRow(rowIdx).id; - for(var i = 0; i < plList.length; i++) { - var pl = plList[i]; - if(pl.id() == id && pl.owner() == new openils.User().user.usrname()) { - list.push(id); - plList = (plList.slice(0, i) || []).concat(plList.slice(i+1, plList.length) || []); - } - } + var item = selected[idx]; + list.push(item.id); + plListGrid.store.deleteItem(item); } - openils.acq.Picklist.deleteList(list, function() { makeGridFromList(); }); + openils.acq.Picklist.deleteList(list); } openils.Util.addOnLoad(loadGrid);