From: Bill Erickson Date: Thu, 24 Mar 2011 15:26:08 +0000 (-0400) Subject: wrap up holds placement, editing, and viewing for p-type holds X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=61517dbc600adf3c327347a8a463ffdcb54fe18a;p=evergreen%2Fequinox.git wrap up holds placement, editing, and viewing for p-type holds --- diff --git a/Open-ILS/web/opac/locale/en-US/opac.dtd b/Open-ILS/web/opac/locale/en-US/opac.dtd index 74b7a2739b..ac9d626e68 100644 --- a/Open-ILS/web/opac/locale/en-US/opac.dtd +++ b/Open-ILS/web/opac/locale/en-US/opac.dtd @@ -202,6 +202,7 @@ avoid using bookbags all together. Thank you."> + diff --git a/Open-ILS/web/opac/skin/default/js/holds.js b/Open-ILS/web/opac/skin/default/js/holds.js index 522978d3e3..153a8d52bf 100644 --- a/Open-ILS/web/opac/skin/default/js/holds.js +++ b/Open-ILS/web/opac/skin/default/js/holds.js @@ -229,8 +229,11 @@ function holdFetchObjects(hold, doneCallback) { } else if( type == 'I' ) { _h_set_issuance(args, doneCallback); + } else if( type == 'P' ) { + _h_set_parts(args, doneCallback); + } else { - if( type == 'T' ) { + if( type == 'T') { _h_set_rec(args, doneCallback); } else { _h_set_rec_descriptors(args, doneCallback); @@ -241,6 +244,25 @@ function holdFetchObjects(hold, doneCallback) { return args; } +function _h_set_parts(args, doneCallback) { + + var preq = new Request( + 'open-ils.fielder:open-ils.fielder.bmp.atomic', + {"cache":1, "fields":["label", "record"],"query": {"id":args.part}} + ); + + preq.callback( + function(r) { + var part = r.getResultObject()[0]; + args.record = part.record; + args.partObject = part; + _h_set_rec(args, doneCallback); + } + ); + + preq.send(); +} + function _h_set_vol(args, doneCallback) { if( args.volumeObject ) { @@ -292,10 +314,13 @@ function _h_set_rec(args, doneCallback) { else args.recordObject = findRecord( args.record, 'T' ); - if( args.type == 'T' || args.type == 'M' ) + if( args.type == 'T' || args.type == 'M' ) { _h_set_rec_descriptors(args, doneCallback); - else + //} else if(args.type == 'P') { + //_h_get_parts(args, doneCallback); + } else { if(doneCallback) doneCallback(args); + } } @@ -305,7 +330,7 @@ function _h_set_rec_descriptors(args, doneCallback) { args.pickup_lib = getSelectorVal($('holds_org_selector')); if(args.pickup_lib === null) - args.pickup_lib = holdArgs.recipient.home_ou(); + args.pickup_lib = args.recipient.home_ou(); // grab the list of record desciptors attached to this records metarecord if( ! args.recordDescriptors ) { @@ -333,54 +358,41 @@ function _h_set_rec_descriptors(args, doneCallback) { req.callback( function(r) { var data = r.getResultObject(); - holdArgs.recordDescriptors = args.recordDescriptors = data.descriptors; - holdArgs.metarecord = args.metarecord = data.metarecord; + args.recordDescriptors = args.recordDescriptors = data.descriptors; + args.metarecord = args.metarecord = data.metarecord; if( args.type == 'M' && ! args.metarecordObject) - holdArgs.metarecordObject = args.metarecordObject = findRecord(args.metarecord, 'M'); + args.metarecordObject = args.metarecordObject = findRecord(args.metarecord, 'M'); - _h_set_parts(args, doneCallback); + _h_get_parts(args, doneCallback); } ); req.send(); } else { - _h_set_parts(args, doneCallback); + _h_get_parts(args, doneCallback); } return args; } -function _h_set_parts(args, doneCallback) { +function _h_get_parts(args, doneCallback) { - if(args.recordParts) { - if(doneCallback) doneCallback(args); - } else { - var params = { pickup_lib: args.pickup_lib }; + if(args.type == 'M' || args.editHold || args.holdParts) { + if(doneCallback) + doneCallback(args); - if (args.type == 'M') { - if( !args.metarecord && args.record) { - params.metarecord = args.metarecord = args.record; - delete(args.record); - } else { - params.metarecord = args.metarecordObject.doc_id(); - } - } else { - params.record = args.record; - } + } else { - if( ! args.record ) { - if( args.metarecord ) - params.metarecord = args.metarecord; - else - params.metarecord = args.metarecordObject.doc_id(); - } + var req = new Request( + 'open-ils.search:open-ils.search.biblio.record_hold_parts', + {pickup_lib: args.pickup_lib, record: args.record} + ); - var req = new Request('open-ils.search:open-ils.search.metabib.record_hold_parts', params); req.callback( function(r) { - holdArgs.recordParts = r.getResultObject(); + args.recordParts = r.getResultObject(); if(doneCallback) - doneCallback(); + doneCallback(args); } ); req.send(); @@ -492,13 +504,27 @@ function __holdsDrawWindow() { } if(holdArgs.recordParts && holdArgs.recordParts.length) { + var selector = $('holds_parts_selector'); unHideMe($('holds_parts_row')); + unHideMe(selector); + + var nodeList = []; + dojo.forEach(selector.options, + function(node) { if(node.value != '') nodeList.push(node) } ); + + dojo.forEach(nodeList, function(node) { selector.removeChild(node); }); + dojo.forEach( holdArgs.recordParts, function(part) { - insertSelectorVal($('holds_parts_selector'), -1, part.label, part.id); + insertSelectorVal(selector, -1, part.label, part.id); } ); + + } else if(holdArgs.type == 'P') { + unHideMe($('holds_parts_row')); + unHideMe($('holds_parts_label')); + appendClear( $('holds_parts_label'), text(holdArgs.partObject.label)); } removeChildren($('holds_format')); diff --git a/Open-ILS/web/opac/skin/default/js/myopac.js b/Open-ILS/web/opac/skin/default/js/myopac.js index 6fd49f99c8..819f8aa048 100644 --- a/Open-ILS/web/opac/skin/default/js/myopac.js +++ b/Open-ILS/web/opac/skin/default/js/myopac.js @@ -499,7 +499,7 @@ function myOShowHoldStatus(r) { function myOPACDrawHoldTitle(hold) { var method; - if( hold.hold_type() == 'T' || hold.hold_type() == 'M' ) { + if( hold.hold_type() == 'T' || hold.hold_type() == 'M') { if(hold.hold_type() == "M") method = FETCH_MRMODS; if(hold.hold_type() == "T") method = FETCH_RMODS; var req = new Request(method, hold.target()); @@ -521,7 +521,7 @@ function myOPACFleshHoldTitle(r) { function _myOPACFleshHoldTitle(hold, holdObjects) { - var record = holdObjects.recordObject; + var record = holdObjects.recordObject; var volume = holdObjects.volumeObject; var copy = holdObjects.copyObject; @@ -539,6 +539,11 @@ function _myOPACFleshHoldTitle(hold, holdObjects) { buildTitleDetailLink(record, title_link); buildSearchLink(STYPE_AUTHOR, record.author(), author_link); + if(hold.hold_type() == 'P') { + unHideMe($n(row, 'vol_copy')); + $n(row, 'part').appendChild(text(holdObjects.partObject.label)); + } + if( volume ) { $n(row, 'volume').appendChild(text(volume.label())); unHideMe($n(row, 'vol_copy')); diff --git a/Open-ILS/web/opac/skin/default/xml/common/holds.xml b/Open-ILS/web/opac/skin/default/xml/common/holds.xml index 34d28f5679..7d8712d235 100644 --- a/Open-ILS/web/opac/skin/default/xml/common/holds.xml +++ b/Open-ILS/web/opac/skin/default/xml/common/holds.xml @@ -54,7 +54,8 @@ &common.mono_parts.label; - diff --git a/Open-ILS/web/opac/skin/default/xml/myopac/myopac_holds.xml b/Open-ILS/web/opac/skin/default/xml/myopac/myopac_holds.xml index 4d5b46db66..08d16906d1 100644 --- a/Open-ILS/web/opac/skin/default/xml/myopac/myopac_holds.xml +++ b/Open-ILS/web/opac/skin/default/xml/myopac/myopac_holds.xml @@ -71,8 +71,9 @@
-
-
+
+
+