move the approval callback to external function because JS will overwrite closure...
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 27 Aug 2008 14:13:21 +0000 (14:13 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 27 Aug 2008 14:13:21 +0000 (14:13 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/branches/acq-experiment@10460 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/web/oilsweb/oilsweb/public/oils/media/ui_js/oils/default/common/jubgrid.js

index abb4782..536ee1d 100644 (file)
@@ -144,41 +144,40 @@ var JUBGrid = {
     },
 
     approveJUB: function(evt) {
-       var list = [];
-       var selected = JUBGrid.jubGrid.selection.getSelected();
-
-       for (var idx = 0; idx < selected.length; idx++) {
-           var rowIdx = selected[idx];
-           var jub = JUBGrid.jubGrid.model.getRow(rowIdx);
-           var li = new openils.acq.Lineitem({lineitem:JUBGrid.getLi(jub.id)});
-           var approveStore = function(evt) {
-               if (evt) {
-                   // something bad happened
-                   console.log("jubgrid.js: approveJUB: error:");
-                   console.dir(evt);
-                   alert("Error: "+evt.desc);
-               } else {
-                   var approveACQLI = function(jub, rq) {
-                       JUBGrid.jubGrid.model.store.setValue(jub,
-                                                            "state",
-                                                            "approved");
-                       JUBGrid.jubGrid.update();
-                       // Reload lineitem details, read-only
-                       openils.acq.Lineitem.loadLIDGrid(
-                           JUBGrid.jubDetailGrid, li.id(),
-                           JUBGrid.jubDetailGridLayout);
-                           //JUBGrid.jubDetailGridLayoutReadOnly);
-                   };
+        var list = [];
+        var selected = JUBGrid.jubGrid.selection.getSelected();
+        for (var idx = 0; idx < selected.length; idx++) {
+            var rowIdx = selected[idx];
+            JUBGrid.approveSingleJUB(JUBGrid.jubGrid.model.getRow(rowIdx));
+        }
+    },
 
-                   JUBGrid.jubGrid.model.store.fetch({query:{id:jub.id},
-                                                      onItem: approveACQLI});
-               }
-           };
+    approveSingleJUB: function(jub) {
+        var li = new openils.acq.Lineitem({lineitem:JUBGrid.getLi(jub.id)});
+        var approveStore = function(evt) {
+            if (evt) {
+                // something bad happened
+                console.log("jubgrid.js: approveJUB: error:");
+                console.dir(evt);
+                alert("Error: "+evt.desc);
+            } else {
+                var approveACQLI = function(jub, rq) {
+                    alert('setting jub to approved ' + jub.id);
+                    JUBGrid.jubGrid.model.store.setValue(jub, "state", "approved");
+                    JUBGrid.jubGrid.model.refresh();
+                    JUBGrid.jubGrid.update();
+                    // Reload lineitem details, read-only
+                    //openils.acq.Lineitem.loadLIDGrid(JUBGrid.jubDetailGrid, li.id(), JUBGrid.jubDetailGridLayout);
+                        //JUBGrid.jubDetailGridLayoutReadOnly);
+                };
+                JUBGrid.jubGrid.model.store.fetch({query:{id:jub.id}, onItem: approveACQLI});
+            }
+        };
 
-           li.approve(approveStore);
-       }
+        li.approve(approveStore);
     },
 
+
     removeSelectedJUBs: function(evt) {
 
         function deleteList(list, idx, oncomplete) {