Fix a long-standing undiscoverd bug in the Bib Summary for what was Show Notices...
authorphasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 23 Sep 2009 02:56:17 +0000 (02:56 +0000)
committerphasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 23 Sep 2009 02:56:17 +0000 (02:56 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@14110 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/xul/staff_client/server/patron/hold_details.js
Open-ILS/xul/staff_client/server/patron/holds.js

index 2620cb4..ae63f8c 100644 (file)
@@ -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,
index f7810a9..8e54425 100644 (file)
@@ -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]);