Merge branch 'master' into kcls_dcl53
[evergreen-equinox.git] / Open-ILS / xul / staff_client / server / patron / holds.js
index 8846577..edf589b 100644 (file)
@@ -21,6 +21,8 @@ patron.holds.prototype = {
 
     'filter_lib' : null,
 
+    'hold_subscription_map' : {},
+
     'expired' : false,
     'post_clear_shelf_hold_action_map' : {},
 
@@ -66,7 +68,13 @@ patron.holds.prototype = {
         JSAN.use('util.list'); obj.list = new util.list( obj.tree_id || 'holds_list');
         obj.list.init(
             {
-                'columns' : columns,
+                'columns' : columns.concat(
+                    obj.list.fm_columns('acp', {
+                        '*' : { 'expanded_label' : true, 'hidden' : true },
+                        // example of unhiding some columns by default
+                        // 'acp_circ_modifier' : { 'hidden' : false }
+                    })
+                ),
                 'map_row_to_columns' : circ.util.std_map_row_to_columns(),
                 'retrieve_row' : function(params) {
                     var row = params.row;
@@ -78,10 +86,16 @@ patron.holds.prototype = {
                                     if (typeof blob.ilsevent != 'undefined') throw(blob);
                                     row.my.ahr = blob.hold;
                                     row.my.status = blob.status;
-                                                                        row.my.ahr.status( blob.status );
+                                    row.my.ahr.status( blob.status );
                                     row.my.acp = blob.copy;
                                     row.my.acn = blob.volume;
                                     row.my.mvr = blob.mvr;
+                                    row.my.part = blob.part;
+                                    row.my.issuance = blob.issuance;
+                                    if (blob.issuance) {
+                                        row.my.subscription = blob.issuance.subscription();
+                                        obj.hold_subscription_map[ row.my.hold_id ] = row.my.subscription;
+                                    }
                                     row.my.patron_family_name = blob.patron_last;
                                     row.my.patron_first_given_name = blob.patron_first;
                                     row.my.patron_barcode = blob.patron_barcode;
@@ -337,7 +351,7 @@ patron.holds.prototype = {
                                     "authtime": ses("authtime"),
                                     "no_xulG": false,
                                     "show_nav_buttons": true,
-                                    "show_print_button": false
+                                    "show_print_button": true
                                 };
                                 ["url_prefix", "new_tab", "set_tab",
                                     "close_tab", "new_patron_tab",
@@ -1135,8 +1149,13 @@ patron.holds.prototype = {
                                             opac_url = xulG.url_prefix( urls.opac_rresult ) + '?m=' + htarget;
                                         break;
                                         case 'T' :
+                                        case 'P' :
                                             opac_url = xulG.url_prefix( urls.opac_rdetail ) + '?r=' + htarget;
                                         break;
+                                        case 'I' :
+                                            opac_url = xulG.url_prefix( urls.opac_rdetail )
+                                            + '?r=' + obj.hold_subscription_map[ obj.retrieve_ids[i].id ].record_entry();
+                                        break;
                                         case 'V' :
                                             var my_acn = obj.network.simple_request( 'FM_ACN_RETRIEVE.authoritative', [ htarget ]);
                                             opac_url = xulG.url_prefix( urls.opac_rdetail) + '?r=' + my_acn.record();
@@ -1513,6 +1532,8 @@ patron.holds.prototype = {
                     holds = holds.concat( robj.copy_holds );
                     holds = holds.concat( robj.volume_holds );
                     holds = holds.concat( robj.title_holds );
+                    holds = holds.concat( robj.part_holds );
+                    holds = holds.concat( robj.issuance_holds );
                     holds = holds.concat( robj.metarecord_holds );
                     holds = holds.sort();
                 }