now updating grid dynamically with writestore for initial drawing, additions, and...
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Tue, 9 Dec 2008 17:15:29 +0000 (17:15 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Tue, 9 Dec 2008 17:15:29 +0000 (17:15 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@11475 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/web/js/dojo/openils/acq/Picklist.js
Open-ILS/web/js/ui/default/acq/picklist/view_list.js

index 4c12bd2..504b969 100644 (file)
@@ -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,
index 93de401..b511e1f 100644 (file)
@@ -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);