From: Jason Etheridge Date: Tue, 5 Apr 2011 20:28:40 +0000 (-0400) Subject: changing peer type on existing linkages. need to rework oncomplete X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=d44afbdf9ac1db4cf615fd328eaceedb9be72c79;p=evergreen%2Fequinox.git changing peer type on existing linkages. need to rework oncomplete --- 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 0500f9df7d..64251d8228 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 @@ -1,5 +1,6 @@ var data; var list; var error; var net; var pcrud; var sound; var rows = {}; +var bpbcm_barcode_map = {}; var commonStrings; var catStrings; @@ -41,6 +42,8 @@ function my_init() { list.set_list_actions(); populate_list(); $('submit').addEventListener('command', function() { handle_submit(true); }, false); + $('remove').addEventListener('command', function() { handle_remove(); }, false); + $('change').addEventListener('command', function() { handle_change(); }, false); $('scanbox').addEventListener('keypress', handle_keypress, false); default_focus(); @@ -79,6 +82,13 @@ function init_list() { list = new util.list( 'list' ); list.init( { + 'retrieve_row' : function(params) { + if (params.row.my.bpbcm) { + params.row_node.setAttribute('retrieve_id',params.row.my.bpbcm.id()); + } + params.on_retrieve(params.row); + return params.row; + }, 'columns' : [ { 'id' : 'result', @@ -165,10 +175,14 @@ function handle_submit(create,my_bpbcm) { function handle_req(req) { try { var robj = req.getResultObject(); + row_params.row.my.result = 'Error'; if (typeof robj.ilsevent != 'undefined') { row_params.row.my.result = robj.textcode; } else { rows[robj.copy.barcode()] = row_params; + if (row_params.row.my.bpbcm) { + bpbcm_barcode_map[ row_params.row.my.bpbcm.id() ] = robj.copy.barcode(); + } row_params.row.my.acp = robj.copy; row_params.row.my.mvr = robj.mvr; @@ -190,6 +204,7 @@ function handle_submit(create,my_bpbcm) { if (obj) { row_params.row.my.result = 'Success'; row_params.row.my.bpbcm = obj; + bpbcm_barcode_map[ obj.id() ] = robj.copy.barcode(); } else { row_params.row.my.result = 'Failed'; sound.bad(); @@ -264,3 +279,58 @@ function populate_list() { alert('Error in manage_multi_home_items.js, populate_list(): ' + E); } } + +function handle_change() { + 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 + ? 'Change peer type on 1 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 = []; + for (var i = 0; i < eligibles.length; i++) { + var obj = rows[ bpbcm_barcode_map[ eligibles[i] ] ].row.my.bpbcm; + obj.ischanged(1); + obj.peer_type( $('bpt_menu').value ); + bpbcm_list.push( obj ); + } + pcrud.update( + bpbcm_list, { + 'async' : false, + 'onerror': function(r) { + dump('onerror: ' + r + '\n'); + }, + 'onresponse': function(r) { + dump('onresponse: ' + r + '\n'); + }, + 'oncomplete': function(r,objs) { + dump('oncomplete: ' + r + '\n'); + for (var i = 0; i < objs.length; i++) { + var obj = objs[i]; + alert('obj = ' + js2JSON(obj)); + try { + rows[ bpbcm_barcode_map[ obj.id() ] ].row.my.bpbcm = obj; + rows[ bpbcm_barcode_map[ obj.id() ] ].row.my.result = 'Peer Type Updated'; + list.refresh_row( rows[ bpbcm_barcode_map[ obj.id() ] ] ); + } catch(E) { + alert('error in oncomplete: ' + E); + } + } + } + } + ); + } + } + + } catch(E) { + alert('Error in manage_multi_home_items.js, handle_change(): ' + E); + } +}