[open-ils-commits] [GIT] Evergreen ILS branch rel_2_3 updated. 8a929d746246b56f2670d1b71adaec3377ba67c8

Evergreen Git git at git.evergreen-ils.org
Tue Oct 16 09:40:17 EDT 2012


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Evergreen ILS".

The branch, rel_2_3 has been updated
       via  8a929d746246b56f2670d1b71adaec3377ba67c8 (commit)
      from  de412ce69871671af7970abba42b10fc33554b8b (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 8a929d746246b56f2670d1b71adaec3377ba67c8
Author: Bill Erickson <berick at esilibrary.com>
Date:   Thu Aug 23 17:29:42 2012 -0400

    Improvements to custom org tree UI
    
    This replaced the PermaCrud.js create() calls with inline transaction
    begin, creates, and commit.  We do this to solve a number of problems:
    
    * Create all new nodes within the same transaction so that a failure
    gracefully rolls back.
    
    * PermaCrud.js does not currently disconnect opensrf client sessions
    (though it has a disconnect() method).  We can manage that locally.
    
    Signed-off-by: Bill Erickson <berick at esilibrary.com>
    Signed-off-by: Kathy Lussier <klussier at masslnc.org>

diff --git a/Open-ILS/web/js/ui/default/conify/global/actor/org_unit_custom_tree.js b/Open-ILS/web/js/ui/default/conify/global/actor/org_unit_custom_tree.js
index 88d35dc..b4fd42a 100644
--- a/Open-ILS/web/js/ui/default/conify/global/actor/org_unit_custom_tree.js
+++ b/Open-ILS/web/js/ui/default/conify/global/actor/org_unit_custom_tree.js
@@ -162,12 +162,19 @@ function applyChanges() {
 }
 
 function applyChanges2() {
+
+    // pcrud.disconnect() exits before disconnecting the session.
+    // Clean up the session here.  TODO: fix pcrud
+    pcrud.session.disconnect();
+    pcrud.session.cleanup();
+
     ctNodes = [];
     var newCtNodes = [];
     var nodeList = [];
     var sorder = 0;
     var prevTn;
     var progress = 0;
+    var session = new OpenSRF.ClientSession('open-ils.pcrud');
 
     // flatten child nodes into a level-order (by parent) list
     var nodeList = [magicTree.rootNode];
@@ -178,6 +185,19 @@ function applyChanges2() {
     }
     flatten(magicTree.rootNode);
 
+    // called after all nodes are processed
+    function finishUp() {
+        // commit the transaction
+        session.request({
+            method : 'open-ils.pcrud.transaction.commit',
+            params : [ openils.User.authtoken ],
+            oncomplete : function (r) {
+                session.disconnect();
+                location.href = location.href;
+            }
+        }).send();
+    }
+
     // traverse the nodes, creating new aoucnt's as we go
     function traverseAndCreate(node) {
         var item = node.item;
@@ -199,25 +219,36 @@ function applyChanges2() {
             tn.sibling_order(++sorder);
         } else { sorder = 0; }
 
-        console.log("Creating new node for org unit " + tn.org_unit());
-
-        // create the new node, then process the children
-        pcrud.create(tn, {
-            oncomplete : function(r, objs) {
-                var newTn = objs[0];
+        // create the new node, then process the children (async)
+        session.request({
+            method : 'open-ils.pcrud.create.aouctn',
+            params : [ openils.User.authtoken, tn ],
+            oncomplete : function (r) {
+                var newTn = openils.Util.readResponse(r);
+                console.log("Created new node for org " + newTn.org_unit() + " => " + newTn.id());
                 ctNodes.push(newTn);
                 prevTn = newTn;
                 if (nodeList.length == 0) {
-                    progressDialog.hide();
-                    location.href = location.href;
+                    finishUp();
                 } else {
                     progressDialog.update({maximum : nodeList.length, progress : ++progress});
                     traverseAndCreate(nodeList.shift());
                 }
             }
-        });
+        }).send();
     }
-    traverseAndCreate(nodeList.shift());
+
+    // kick things off...
+    session.connect();
+
+    // start the transaction
+    session.request({
+        method : 'open-ils.pcrud.transaction.begin',
+        params : [ openils.User.authtoken ],
+        oncomplete : function (r) {
+            traverseAndCreate(nodeList.shift());
+        }
+    }).send();
 }
 
 function deleteSelected() {

-----------------------------------------------------------------------

Summary of changes:
 .../conify/global/actor/org_unit_custom_tree.js    |   51 ++++++++++++++++----
 1 files changed, 41 insertions(+), 10 deletions(-)


hooks/post-receive
-- 
Evergreen ILS


More information about the open-ils-commits mailing list