unlinking multi-home items
authorJason Etheridge <jason@esilibrary.com>
Tue, 5 Apr 2011 23:03:12 +0000 (19:03 -0400)
committerJason Etheridge <jason@esilibrary.com>
Tue, 5 Apr 2011 23:03:12 +0000 (19:03 -0400)
Open-ILS/xul/staff_client/server/cat/manage_multi_home_items.js

index 8cc8d59..0ff25bf 100644 (file)
@@ -292,7 +292,7 @@ function handle_change() {
         if (eligibles.length > 0) {
             if (window.confirm(
                 eligibles.length == 1
-                ? 'Change peer type on 1 selected item to ' + data.hash.bpt[ $('bpt_menu').value ].name()
+                ? 'Change peer type on selected item to ' + data.hash.bpt[ $('bpt_menu').value ].name()
                 : 'Change peer type on ' + eligibles.length + ' selected items to '+ data.hash.bpt[ $('bpt_menu').value ].name())
             ) {
                 var bpbcm_list = [];
@@ -333,3 +333,57 @@ function handle_change() {
         alert('Error in manage_multi_home_items.js, handle_change(): ' + E);
     }
 }
+
+function handle_remove() {
+    try {
+        var node_list = list.retrieve_selection();
+        var eligibles = [];
+        for (var i = 0; i < node_list.length; i++) {
+            if (node_list[i].hasAttribute('retrieve_id')) {
+                eligibles.push( node_list[i].getAttribute('retrieve_id') );
+            }
+        }
+        if (eligibles.length > 0) {
+            if (window.confirm(
+                eligibles.length == 1
+                ? 'Unlink selected item from bib #' + xul_param('docid')
+                : 'Unlink ' + eligibles.length + ' selected items from bib #' + xul_param('docid'))
+            ) {
+                var bpbcm_list = [];
+                for (var i = 0; i < eligibles.length; i++) {
+                    var obj = rows[ bpbcm_barcode_map[ eligibles[i] ] ].row.my.bpbcm;
+                    obj.isdeleted(1);
+                    bpbcm_list.push( obj );
+                }
+                pcrud.eliminate(
+                    bpbcm_list, {
+                        'async' : false,
+                        'onerror': function(r) {
+                            dump('onerror: ' + r + '\n');
+                        },
+                        'onresponse': function(r) {
+                            dump('onresponse: ' + r + '\n');
+                        },
+                        'oncomplete': function(r,ids) {
+                            dump('oncomplete: r = ' + r + '\n\tids = ' + js2JSON(ids) + '\n');
+                            for (var i = 0; i < ids.length; i++) {
+                                var bpbcm_id = ids[i];
+                                try {
+                                    var node = rows[ bpbcm_barcode_map[ bpbcm_id ] ].my_node;
+                                    var parentNode = node.parentNode;
+                                    parentNode.removeChild( node );
+                                    delete(rows[ bpbcm_barcode_map[ bpbcm_id ] ]);
+                                } catch(E) {
+                                    alert('error in oncomplete: ' + E);
+                                }
+                            }
+                        }
+                    }
+                );
+            }
+        }
+
+    } catch(E) {
+        alert('Error in manage_multi_home_items.js, handle_remove(): ' + E);
+    }
+}