} 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);
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 ) {
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);
+ }
}
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 ) {
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();
}
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'));
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());
function _myOPACFleshHoldTitle(hold, holdObjects) {
- var record = holdObjects.recordObject;
+ var record = holdObjects.recordObject;
var volume = holdObjects.volumeObject;
var copy = holdObjects.copyObject;
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'));