create a peer bib copy map. needs error detection (onerror doesn't work, at least...
authorJason Etheridge <jason@esilibrary.com>
Tue, 5 Apr 2011 15:30:48 +0000 (11:30 -0400)
committerJason Etheridge <jason@esilibrary.com>
Tue, 5 Apr 2011 15:30:48 +0000 (11:30 -0400)
Open-ILS/xul/staff_client/server/cat/add_multi_home_items.js

index a08cbb2..4c1e3d0 100644 (file)
@@ -1,4 +1,4 @@
-var list; var error; var net; var pcrud; var rows;
+var list; var error; var net; var pcrud; var rows; var sound;
 
 var commonStrings;
 var catStrings;
@@ -24,6 +24,7 @@ function my_init() {
         JSAN.addRepository('..');
 
         JSAN.use('util.error'); error = new util.error();
+        JSAN.use('util.sound'); sound = new util.sound();
         JSAN.use('util.list');
         JSAN.use('util.network'); net = new util.network();
         dojo.require('openils.PermaCrud');
@@ -75,6 +76,10 @@ function init_list() {
                         'mvr_tcn' : { 'hidden' : false },
                         'mvr_id' : { 'hidden' : false }
                     })
+                ).concat(
+                    list.fm_columns('bpbcm', {
+                        '*' : { 'expanded_label' : true, 'hidden' : true }
+                    })
                 )
             }
         );
@@ -122,6 +127,33 @@ function handle_submit() {
                     } else {
                         row_params.row.my.acp = robj.copy;
                         row_params.row.my.mvr = robj.mvr;
+
+                        if (robj.mvr.docid() != xul_param('docid')) {
+                            var new_bpbcm = new bpbcm();
+                                new_bpbcm.isnew(1);
+                                new_bpbcm.peer_type(1);
+                                new_bpbcm.peer_record(xul_param('docid'));
+                                new_bpbcm.target_copy(robj.copy.id());
+                            pcrud.create(new_bpbcm, {
+                                "oncomplete": function (r, objs) {
+                                    try {
+                                        var obj = objs[0];
+                                        if (obj) {
+                                            row_params.row.my.result = 'Success';
+                                            row_params.row.my.bpbcm = obj;
+                                        } else {
+                                            row_params.row.my.result = 'Failed';
+                                            sound.bad();
+                                        }
+                                        list.refresh_row( row_params );
+                                    } catch(E) {
+                                        alert('Error in add_multi_home_items.js, handle_submit, pcrud create oncomplete callback: ' + E);
+                                    }
+                                }
+                            });
+                        } else {
+                            row_params.row.my.result = 'Item native to Bib';
+                        }
                     }
                     list.refresh_row( row_params );
                 } catch(E) {