return $cn;
}
+__PACKAGE__->register_method (
+ method => "fetch_copy_by_cn",
+ api_name => 'open-ils.search.copies_by_call_number.retrieve',
+ signature => q/
+ Returns an array of copy id's by callnumber id
+ @param cnid The callnumber id
+ @return An array of copy ids
+ /
+);
+
+sub fetch_copy_by_cn {
+ my( $self, $conn, $cnid ) = @_;
+ return $U->storagereq(
+ 'open-ils.storage.id_list.asset.copy.search_where.atomic',
+ { call_number => $cnid, deleted => 'f' } );
+}
+
+__PACKAGE__->register_method (
+ method => 'fetch_cn_by_info',
+ api_name => 'open-ils.search.call_number.retrieve_by_info',
+ signature => q/
+ @param label The callnumber label
+ @param record The record the cn is attached to
+ @param org The owning library of the cn
+ @return The callnumber object
+ /
+);
+
+sub fetch_cn_by_info {
+ my( $self, $conn, $label, $record, $org ) = @_;
+ return $U->storagereq(
+ 'open-ils.storage.direct.asset.call_number.search_where',
+ { label => $label, record => $record, owning_lib => $org, deleted => 'f' });
+}
+
+
var rdetailReviewFetched = false;
var rdetailMarcFetched = false;
-function rdetailShowExtra(type) {
+function rdetailShowExtra(type, args) {
hideMe($('rdetail_copy_info_div'));
hideMe($('rdetail_reviews_div'));
case 'notes':
unHideMe($('rdetail_notes_div'));
break;
+
+ case 'cn_details':
+ unHideMe($('rdetail_cn_details_div'));
+ unHideMe($('rdetail_cn_details_link'));
+ rdetailShowCNDetails(args);
+ break;
+
+
+ }
+}
+
+var rdetailCNDetailsRow;
+function rdetailShowCNDetails(args) {
+ $('rdetail_cn_details_cn').appendChild(text(args.cn));
+ $('rdetail_cn_details_owner').appendChild(text(findOrgUnit(args.org).name()));
+ var req = new Request(FETCH_VOLUME_BY_INFO, args.cn, record.doc_id(), args.org);
+ req.callback(rdetailShowCNDetails2);
+ req.send();
+}
+
+function rdetailShowCNDetails2(r) {
+ var cn = r.getResultObject();
+ var req = new Request(FETCH_COPIES_FROM_VOLUME, cn.id());
+ req.request._cn = cn;
+ req.callback(rdetailShowCNDetails3);
+ req.send();
+}
+
+function rdetailShowCNDetails3(r) {
+ var copies = r.getResultObject();
+ var cn = r._cn;
+ var tbody = $('rdetail_cn_copies_tbody');
+ if(!rdetailCNDetailsRow)
+ rdetailCNDetailsRow = tbody.removeChild($('rdetail_cn_copies_row'));
+
+ for( var i = 0; i != copies.length; i++ ) {
+ var row = rdetailCNDetailsRow.cloneNode(true);
+ var copyid = copies[i];
+ var req = new Request(FETCH_COPY, copyid);
+ req.callback(rdetailShowCNCopy);
+ req.request._cn = cn;
+ req.request._tbody = tbody;
+ req.request._row = row;
+ req.send();
+ tbody.appendChild(row);
+ }
+}
+
+function rdetailShowCNCopy(r) {
+ var copy = r.getResultObject();
+ var row = r._row;
+ $n(row, 'barcode').appendChild(text(copy.barcode()));
+
+ for( i = 0; i < cp_statuses.length; i++ ) {
+ var c = cp_statuses[i];
+ if( c.id() == copy.status() )
+ $n(row, 'status').appendChild(text(c.name()));
}
}
}
}
rdetailSetPath( thisOrg, isLocal );
- rdetailBuildBrowseInfo( rowNode, arr[1], isLocal );
+ rdetailBuildBrowseInfo( rowNode, arr[1], isLocal, thisOrg );
if( i == summary.length - 1 && !defaultCN) defaultCN = arr[1];
}
if(found) unHideMe($('rdetail_viewnotes_link'));
}
-function rdetailBuildBrowseInfo(row, cn, local) {
+function rdetailBuildBrowseInfo(row, cn, local, orgNode) {
/* used for building the shelf browser */
if(local) {
var cache = callnumberCache[cn];
var depth = getDepth();
if( !local ) depth = findOrgDepth(globalOrgTree);
+
+ /*
var a = elem("a", {href:'javascript:rdetailShowCNBrowse("' + cn + '", "'+depth+'");' }, cn);
+ */
+
+ var a = elem("a", {href:'javascript:rdetailShowExtra('+
+ '"cn_details", {cn :"'+cn+'", depth:"'+depth+'", org:"'+orgNode.id()+'"});' }, cn);
addCSSClass(a, 'classic_link');
+
findNodeByName( row, config.names.rdetail.cn_cell ).appendChild(a);
}