custom org tree : admin ui
authorBill Erickson <berick@esilibrary.com>
Wed, 21 Mar 2012 18:19:15 +0000 (14:19 -0400)
committerBill Erickson <berick@esilibrary.com>
Wed, 21 Mar 2012 18:19:37 +0000 (14:19 -0400)
Signed-off-by: Bill Erickson <berick@esilibrary.com>
Open-ILS/web/js/ui/default/conify/global/actor/org_unit_custom_tree.js

index 34b61d0..cc835f7 100644 (file)
@@ -206,6 +206,7 @@ function applyChanges2() {
                 prevTn = newTn;
                 if (nodeList.length == 0) {
                     progressDialog.hide();
+                    location.href = location.href;
                 } else {
                     progressDialog.update({maximum : nodeList.length, progress : ++progress});
                     traverseAndCreate(nodeList.shift());
@@ -217,10 +218,29 @@ function applyChanges2() {
 }
 
 function deleteSelected() {
+    var toDelete = [];
+
+    function collectChildren(item) {
+        toDelete.push(item);
+        magicTree.model.store.fetch({
+            query : {parent_ou : item.id[0]+''},
+            onComplete : function(list) { 
+                dojo.forEach(list, collectChildren) 
+            }
+        });
+    }
+
     magicTree.dndController.getSelectedItems().forEach(
         function(item) {
-            if (item !== magicTree.model.root)
-                magicTree.model.store.deleteItem(item);
+            if (item === magicTree.model.root) return
+            collectChildren(item);
+            // delete node plus children, starting at the leaf nodes
+            dojo.forEach(toDelete.reverse(),
+                function(i) {
+                    console.log('Deleting item ' + i.id);
+                    magicTree.model.store.deleteItem(i)
+                }
+            );
         }
     );
 }