From: Jason Etheridge Date: Tue, 5 Apr 2011 18:06:14 +0000 (-0400) Subject: populate with existing peer biblio copy map entries X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=3dfe91be5eea7a8d749e9ab30fbad831e2f3c579;p=evergreen%2Fequinox.git populate with existing peer biblio copy map entries --- diff --git a/Open-ILS/xul/staff_client/server/cat/manage_multi_home_items.js b/Open-ILS/xul/staff_client/server/cat/manage_multi_home_items.js index b3ba0bcdd6..6d0f58caf9 100644 --- a/Open-ILS/xul/staff_client/server/cat/manage_multi_home_items.js +++ b/Open-ILS/xul/staff_client/server/cat/manage_multi_home_items.js @@ -38,7 +38,8 @@ function my_init() { init_list(); $('list_actions').appendChild( list.render_list_actions() ); list.set_list_actions(); - $('submit').addEventListener('command', function() { handle_submit(); }, false); + populate_list(); + $('submit').addEventListener('command', function() { handle_submit(true); }, false); $('scanbox').addEventListener('keypress', handle_keypress, false); default_focus(); @@ -47,7 +48,7 @@ function my_init() { } } catch(E) { - alert('Error in add_multi_home_items.js, my_init(): ' + E); + alert('Error in manage_multi_home_items.js, my_init(): ' + E); } } @@ -68,7 +69,7 @@ function init_menu() { ml.setAttribute('id','bpt_menu'); $('menu_placeholder').appendChild(ml); } catch(E) { - alert('Error in add_multi_home_items.js, init_menu(): ' + E); + alert('Error in manage_multi_home_items.js, init_menu(): ' + E); } } @@ -110,90 +111,140 @@ function init_list() { } ); } catch(E) { - alert('Error in add_multi_home_items.js, init_list(): ' + E); + alert('Error in manage_multi_home_items.js, init_list(): ' + E); } } function handle_keypress(ev) { try { if (ev.keyCode && ev.keyCode == 13) { - handle_submit(); + handle_submit(true); } } catch(E) { - alert('Error in add_multi_home_items.js, handle_keypress(): ' + E); + alert('Error in manage_multi_home_items.js, handle_keypress(): ' + E); } } -function handle_submit() { +function handle_submit(create,my_bpbcm) { try { - var barcode = $('scanbox').value; - $('scanbox').value = ''; - default_focus(); + var barcode; + if (create) { + barcode = $('scanbox').value; + $('scanbox').value = ''; + default_focus(); + } var placeholder_acp = new acp(); placeholder_acp.barcode(barcode); var row_params = { 'row' : { 'my' : { - 'acp' : placeholder_acp + 'acp' : placeholder_acp, + 'bpbcm' : bpbcm } } }; var row_params = list.append(row_params); - net.simple_request( - 'FM_ACP_DETAILS_VIA_BARCODE.authoritative', - [ ses(), barcode ], - function(req) { - try { - var robj = req.getResultObject(); - if (typeof robj.ilsevent != 'undefined') { - row_params.row.my.result = robj.textcode; - } else { - row_params.row.my.acp = robj.copy; - row_params.row.my.mvr = robj.mvr; - - if (robj.mvr.doc_id() != xul_param('docid')) { - var new_bpbcm = new bpbcm(); - new_bpbcm.isnew(1); - new_bpbcm.peer_type($('bpt_menu').value); - new_bpbcm.peer_record(xul_param('docid')); - new_bpbcm.target_copy(robj.copy.id()); - pcrud.create(new_bpbcm, { - "onerror" : function(r) { - alert('here'); - alert(js2JSON(r)); - }, - "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); + function handle_req(req) { + try { + var robj = req.getResultObject(); + if (typeof robj.ilsevent != 'undefined') { + row_params.row.my.result = robj.textcode; + } else { + row_params.row.my.acp = robj.copy; + row_params.row.my.mvr = robj.mvr; + + if (create && robj.mvr.doc_id() != xul_param('docid')) { + var new_bpbcm = new bpbcm(); + new_bpbcm.isnew(1); + new_bpbcm.peer_type($('bpt_menu').value); + new_bpbcm.peer_record(xul_param('docid')); + new_bpbcm.target_copy(robj.copy.id()); + pcrud.create(new_bpbcm, { + "onerror" : function(r) { + alert('here'); + alert(js2JSON(r)); + }, + "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 manage_multi_home_items.js, handle_submit, pcrud create oncomplete callback: ' + E); } - }); + } + }); + } else { + if (robj.mvr.doc_id() != xul_param('docid')) { + row_params.row.my.result = 'Item linked to Bib'; } else { row_params.row.my.result = 'Item native to Bib'; } } - list.refresh_row( row_params ); - } catch(E) { - alert('Error in add_multi_home_items.js, handle_submit, acp details callback: ' + E); } + list.refresh_row( row_params ); + } catch(E) { + alert('Error in manage_multi_home_items.js, handle_submit, acp details callback: ' + E); } - ); + } + + if (my_bpbcm) { + net.simple_request( + 'FM_ACP_DETAILS', // FIXME: want this to be authoritative + [ ses(), my_bpbcm.target_copy() ], + handle_req + ); + } else { + net.simple_request( + 'FM_ACP_DETAILS_VIA_BARCODE.authoritative', + [ ses(), barcode ], + handle_req + ); + } + } catch(E) { - alert('Error in add_multi_home_items.js, handle_submit(): ' + E); + alert('Error in manage_multi_home_items.js, handle_submit(): ' + E); } } +function populate_list() { + try { + pcrud.search( + 'bpbcm', + { + peer_record : xul_param('docid') + }, + { + async : true, + streaming : true, + onerror : function(r) { + alert('Error in manage_multi_home_items.js, populate_list(), pcrud.search onerror: ' + r); + }, + oncomplete : function() { + }, + onresponse : function(r) { + try { + var my_bpbcm = openils.Util.readResponse(r); + if (typeof my_bpbcm.ils_event != 'undefined') { throw(my_bpbcm); } + handle_submit(false,my_bpbcm); + } catch(E) { + alert('Error in manage_multi_home_items.js, populate_list(), pcrud.search onresponse: ' + E); + } + } + } + ); + + } catch(E) { + alert('Error in manage_multi_home_items.js, populate_list(): ' + E); + } +} diff --git a/Open-ILS/xul/staff_client/server/cat/manage_multi_home_items.xul b/Open-ILS/xul/staff_client/server/cat/manage_multi_home_items.xul index b4d578db31..5bb0c3d6ab 100644 --- a/Open-ILS/xul/staff_client/server/cat/manage_multi_home_items.xul +++ b/Open-ILS/xul/staff_client/server/cat/manage_multi_home_items.xul @@ -29,7 +29,7 @@