From 9793da615a6d7d994957012793b574e63a0b7d16 Mon Sep 17 00:00:00 2001 From: phasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4> Date: Wed, 23 Sep 2009 02:56:17 +0000 Subject: [PATCH] Fix a long-standing undiscoverd bug in the Bib Summary for what was Show Notices for non-title holds. We're getting a lot of objects related to holds already, so re-use that data where we can. git-svn-id: svn://svn.open-ils.org/ILS/trunk@14110 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../xul/staff_client/server/patron/hold_details.js | 39 ++++++++-------------- Open-ILS/xul/staff_client/server/patron/holds.js | 23 +++++++------ 2 files changed, 25 insertions(+), 37 deletions(-) diff --git a/Open-ILS/xul/staff_client/server/patron/hold_details.js b/Open-ILS/xul/staff_client/server/patron/hold_details.js index 2620cb4821..ae63f8c477 100644 --- a/Open-ILS/xul/staff_client/server/patron/hold_details.js +++ b/Open-ILS/xul/staff_client/server/patron/hold_details.js @@ -44,7 +44,7 @@ function fetch_and_render_all() { var bib_brief = document.createElement('iframe'); x.appendChild(bib_brief); bib_brief.setAttribute('flex',1); bib_brief.setAttribute('src',urls.XUL_BIB_BRIEF); - get_contentWindow(bib_brief).xulG = { 'docid' : g.ahr.target() }; + get_contentWindow(bib_brief).xulG = { 'docid' : g.blob.mvr.doc_id() }; retrieve_notes(); render_notes(); @@ -58,9 +58,14 @@ function fetch_and_render_all() { function fetch_hold(id) { try { g.ahr_id = xulG.ahr_id; - g.ahr = g.network.simple_request('FM_AHR_RETRIEVE',[ ses(), g.ahr_id ]); - if (typeof g.ahr.ilsevent != 'undefined') { throw(g.ahr); } - g.ahr = g.ahr[0]; + g.blob = xulG.blob; + if (g.blob) { + g.ahr = xulG.blob.hold; + } else { + g.blob = g.network.simple_request('FM_AHR_BLOB_RETRIEVE',[ ses(), g.ahr_id ]); + if (typeof g.ahr.ilsevent != 'undefined') { throw(g.ahr); } + g.ahr = g.blob.hold; + } } catch(E) { alert('Error in hold_details.js, fetch_hold(): ' + E); } @@ -101,28 +106,6 @@ function init_list() { 'map_row_to_columns' : circ.util.std_map_row_to_columns(), 'retrieve_row' : function(params) { var row = params.row; - try { - switch(row.my.ahr.hold_type()) { - case 'M' : - row.my.mvr = g.network.request( - api.MODS_SLIM_METARECORD_RETRIEVE.app, - api.MODS_SLIM_METARECORD_RETRIEVE.method, - [ row.my.ahr.target() ] - ); - break; - default: - row.my.mvr = g.network.simple_request( - 'MODS_SLIM_RECORD_RETRIEVE.authoritative', - [ row.my.ahr.target() ] - ); - if (row.my.ahr.current_copy()) { - row.my.acp = g.network.simple_request( 'FM_ACP_RETRIEVE', [ row.my.ahr.current_copy() ]); - } - break; - } - } catch(E) { - g.error.sdump('D_ERROR','retrieve_row: ' + E ); - } if (typeof params.on_retrieve == 'function') { params.on_retrieve(row); } @@ -139,6 +122,10 @@ function a_list_of_one() { 'row' : { 'my' : { 'ahr' : g.ahr, + 'acp' : g.blob.copy, + 'acn' : g.blob.volume, + 'mvr' : g.blob.mvr, + 'blob' : g.blob } }, 'no_auto_select' : true, diff --git a/Open-ILS/xul/staff_client/server/patron/holds.js b/Open-ILS/xul/staff_client/server/patron/holds.js index f7810a914d..8e5442506a 100644 --- a/Open-ILS/xul/staff_client/server/patron/holds.js +++ b/Open-ILS/xul/staff_client/server/patron/holds.js @@ -93,7 +93,7 @@ patron.holds.prototype = { copy_id = row.my.acp.id(); } - obj.holds_map[ row.my.ahr.id() ] = row.my.ahr; + obj.holds_map[ row.my.ahr.id() ] = blob; params.row_node.setAttribute('retrieve_id', js2JSON({ 'copy_id':copy_id, @@ -211,6 +211,7 @@ patron.holds.prototype = { if (obj.retrieve_ids.length == 0) return; var f = obj.browser.get_content(); xulG.ahr_id = obj.retrieve_ids[0].id; + xulG.blob = obj.holds_map[ xulG.ahr_id ]; xulG.patron_rendered_elsewhere = (obj.hold_interface_type == 'patron'); f.xulG = xulG; f.fetch_and_render_all(); @@ -331,7 +332,7 @@ patron.holds.prototype = { ); if (r == 0) { for (var i = 0; i < obj.retrieve_ids.length; i++) { - var hold = obj.holds_map[ obj.retrieve_ids[i].id ]; + var hold = obj.holds_map[ obj.retrieve_ids[i].id ].hold; hold.selection_depth( obj.data.hash.aout[selection].depth() ); hold.ischanged('1'); hold = obj.flatten_copy(hold); var robj = obj.network.simple_request('FM_AHR_UPDATE',[ ses(), hold ]); @@ -353,7 +354,7 @@ patron.holds.prototype = { var deny_edit_because_of_transit = false; for (var i = 0; i < obj.retrieve_ids.length; i++) { - var hold = obj.holds_map[ obj.retrieve_ids[i].id ]; + var hold = obj.holds_map[ obj.retrieve_ids[i].id ].hold; if (hold.status() == 3 /* In-Transit */) deny_edit_because_of_transit = true; } if (deny_edit_because_of_transit) { @@ -416,7 +417,7 @@ patron.holds.prototype = { ); if (r == 0) { for (var i = 0; i < obj.retrieve_ids.length; i++) { - var hold = obj.holds_map[ obj.retrieve_ids[i].id ]; + var hold = obj.holds_map[ obj.retrieve_ids[i].id ].hold; hold.pickup_lib( pickup_lib ); hold.ischanged('1'); hold = obj.flatten_copy(hold); var robj = obj.network.simple_request('FM_AHR_UPDATE',[ ses(), hold ]); @@ -474,7 +475,7 @@ patron.holds.prototype = { ); if (r == 0) { for (var i = 0; i < obj.retrieve_ids.length; i++) { - var hold = obj.holds_map[ obj.retrieve_ids[i].id ]; + var hold = obj.holds_map[ obj.retrieve_ids[i].id ].hold; hold.phone_notify( phone ); hold.ischanged('1'); hold = obj.flatten_copy(hold); var robj = obj.network.simple_request('FM_AHR_UPDATE',[ ses(), hold ]); @@ -541,7 +542,7 @@ patron.holds.prototype = { ); if (r == 0) { for (var i = 0; i < obj.retrieve_ids.length; i++) { - var hold = obj.holds_map[ obj.retrieve_ids[i].id ]; + var hold = obj.holds_map[ obj.retrieve_ids[i].id ].hold; hold.email_notify( email ); hold.ischanged('1'); hold = obj.flatten_copy(hold); var robj = obj.network.simple_request('FM_AHR_UPDATE',[ ses(), hold ]); @@ -572,7 +573,7 @@ patron.holds.prototype = { if (r == 0) { var already_suspended = []; for (var i = 0; i < obj.retrieve_ids.length; i++) { - var hold = obj.holds_map[ obj.retrieve_ids[i].id ]; + var hold = obj.holds_map[ obj.retrieve_ids[i].id ].hold; if ( get_bool( hold.frozen() ) ) { already_suspended.push( hold.id() ); continue; @@ -614,7 +615,7 @@ patron.holds.prototype = { if (r == 0) { var already_activated = []; for (var i = 0; i < obj.retrieve_ids.length; i++) { - var hold = obj.holds_map[ obj.retrieve_ids[i].id ]; + var hold = obj.holds_map[ obj.retrieve_ids[i].id ].hold; if ( ! get_bool( hold.frozen() ) ) { already_activated.push( hold.id() ); continue; @@ -673,7 +674,7 @@ patron.holds.prototype = { } if (thaw_date || thaw_date == '') { for (var i = 0; i < obj.retrieve_ids.length; i++) { - var hold = obj.holds_map[ obj.retrieve_ids[i].id ]; + var hold = obj.holds_map[ obj.retrieve_ids[i].id ].hold; hold.frozen('t'); hold.thaw_date( thaw_date == '' ? null : util.date.formatted_date(thaw_date + ' 00:00:00','%{iso8601}') ); hold.ischanged('1'); hold = obj.flatten_copy(hold); @@ -722,7 +723,7 @@ patron.holds.prototype = { } if (expire_time || expire_time == '') { for (var i = 0; i < obj.retrieve_ids.length; i++) { - var hold = obj.holds_map[ obj.retrieve_ids[i].id ]; + var hold = obj.holds_map[ obj.retrieve_ids[i].id ].hold; hold.expire_time( expire_time == '' ? null : util.date.formatted_date(expire_time + ' 00:00:00','%{iso8601}') ); hold.ischanged('1'); hold = obj.flatten_copy(hold); var robj = obj.network.simple_request('FM_AHR_UPDATE',[ ses(), hold ]); @@ -795,7 +796,7 @@ patron.holds.prototype = { if (r == 0) { var transits = []; for (var i = 0; i < obj.retrieve_ids.length; i++) { - if (obj.holds_map[ obj.retrieve_ids[i].id ].transit()) { + if (obj.holds_map[ obj.retrieve_ids[i].id ].hold.transit()) { transits.push( obj.retrieve_ids[i].barcode ); } var robj = obj.network.simple_request('FM_AHR_CANCEL',[ ses(), obj.retrieve_ids[i].id]); -- 2.11.0