}
}
+__PACKAGE__->register_method(
+ method => 'find_peer_bibs',
+ api_name => 'open-ils.search.peer_bibs.test',
+ authoritative => 1,
+ signature => {
+ desc => 'Tests to see if the specified record is a peer record.',
+ params => [
+ { desc => 'Biblio record entry Id', type => 'number' }
+ ],
+ return => {
+ desc => 'True if specified id can be found in biblio.peer_record_copy_map.peer_record.',
+ type => 'bool'
+ }
+ }
+);
+
+__PACKAGE__->register_method(
+ method => 'find_peer_bibs',
+ api_name => 'open-ils.search.peer_bibs',
+ authoritative => 1,
+ signature => {
+ desc => 'Return acps and mvrs for multi-home items linked to specified peer record.',
+ params => [
+ { desc => 'Biblio record entry Id', type => 'number' }
+ ],
+ return => {
+ desc => '{ records => Array of mvrs, items => array of acps }',
+ }
+ }
+);
+
+
+sub find_peer_bibs {
+ my( $self, $client, $doc_id ) = @_;
+ my $e = new_editor();
+
+ my $multi_home_list = $e->search_biblio_peer_bib_copy_map(
+ [
+ { peer_record => $doc_id },
+ {
+ flesh => 2,
+ flesh_fields => {
+ bpbcm => [ 'target_copy' ],
+ acp => [ 'call_number' ]
+ }
+ }
+ ]
+ );
+
+ if ($self->api_name =~ /test/) {
+ return scalar( @{$multi_home_list} ) > 0 ? 1 : 0;
+ }
+
+ if (scalar(@{$multi_home_list})==0) {
+ return { 'records' => [], 'items' => [] };
+ }
+
+ my $mods_list = _records_to_mods( map { $_->target_copy->call_number->record; } @{$multi_home_list} );
+ my @copies = map { $_->target_copy } @{$multi_home_list};
+
+ my $obj = {
+ 'records' => $mods_list,
+ 'items' => \@copies
+ };
+
+ return $obj;
+};
__PACKAGE__->register_method(
method => "biblio_copy_to_mods",
$('rdetail_view_marc_box').insertBefore(span, $('rdetail_view_marc_box').firstChild);
}
+function rdetailForeignItems(r,id) {
+ hideMe($('rdetail_extras_loading'));
+ var tbody = $('rdetail_foreign_items_tbody');
+
+ var robj = r.getResultObject(); /* { 'records' : [ mvr1, mvr2, ...], 'items' : [ acp1, acp2, ... ] } */
+
+ for (var i = 0; i < robj.records.length; i++) {
+ var args = {};
+ args.page = RDETAIL;
+ args[PARAM_OFFSET] = 0;
+ args[PARAM_RID] = robj.records[i].doc_id();
+ var row = elem('tr'); tbody.appendChild(row);
+ var td1 = elem('td'); row.appendChild(td1);
+ var title = elem(
+ 'a',
+ {
+ 'href' : buildOPACLink(args),
+ 'class' : 'classic_link'
+ },
+ robj.records[i].title()
+ );
+ td1.appendChild(title);
+ var td2 = elem('td',{},robj.records[i].author()); row.appendChild(td2);
+ var td3 = elem('td'); row.appendChild(td3);
+ var details = elem(
+ 'a',
+ {
+ 'href' : 'javascript:alert("foo")',
+ 'class' : 'classic_link'
+ },
+ 'Copy Details'
+ );
+ td3.appendChild(details);
+ }
+}
+
+
function rdetailShowLocalCopies() {
rdetailShowLocal = true;
if (novelist && currentISBN) {
unHideMe($('rdetail_novelist_link'));
}
+
+ // Multi-Home / Foreign Items / Peer Bibs
+ var req = new Request( TEST_PEER_BIBS, record.doc_id() );
+ req.callback(function(r){
+ var test = r.getResultObject();
+ if (test == "1") {
+ unHideMe($('rdetail_foreign_items_link'));
+ }
+ });
+ req.send();
}
var rdetailMarcFetched = false;
+var rdetailForeignItemsFetched = false;
function rdetailShowExtra(type, args) {
hideMe($('rdetail_copy_info_div'));
hideMe($('cn_browse'));
hideMe($('rdetail_cn_browse_div'));
hideMe($('rdetail_novelist_div'));
+ hideMe($('rdetail_foreign_items_div'));
hideMe($('rdetail_notes_div'));
removeCSSClass($('rdetail_copy_info_link'), 'rdetail_extras_selected');
removeCSSClass($('rdetail_annotation_link'), 'rdetail_extras_selected');
removeCSSClass($('rdetail_viewmarc_link'), 'rdetail_extras_selected');
removeCSSClass($('rdetail_novelist_link'), 'rdetail_extras_selected');
+ removeCSSClass($('rdetail_foreign_items_link'), 'rdetail_extras_selected');
switch(type) {
unHideMe($('rdetail_novelist_div'));
break;
+ case "foreign_items":
+ addCSSClass($('rdetail_foreign_items_link'), 'rdetail_extras_selected');
+ unHideMe($('rdetail_foreign_items_div'));
+ if(rdetailForeignItemsFetched) return;
+ unHideMe($('rdetail_extras_loading'));
+ rdetailForeignItemsFetched = true;
+ var req = new Request( FETCH_PEER_BIBS, record.doc_id() );
+ req.callback(rdetailForeignItems);
+ req.send();
+ break;
+
case 'cn':
addCSSClass($('rdetail_viewcn_link'), 'rdetail_extras_selected');
unHideMe($('rdetail_cn_browse_div'));
class='classic_link'>&rdetail.extras.novelist;</a>
</td>
+ <td id='rdetail_foreign_items_link' class='hide_me rdetail_extras_td'
+ style='padding-right: 15px; padding-left: 15px;' >
+ <a href='javascript:rdetailShowExtra("foreign_items");'
+ class='classic_link'>&rdetail.extras.foreign_items;</a>
+ </td>
+
</tr>
</thead>
</table>
</div>
</div>
+ <div id='rdetail_foreign_items_div' class='rdetail_extras_div hide_me'>
+ <table width='100%' class='data_grid data_grid_center' id='rdetail_foreign_items_table'>
+ <thead>
+ <tr> <td>&common.title;</td> <td>&common.authors;</td> <td> </td></tr>
+ </thead>
+ <tbody id='rdetail_foreign_items_tbody'>
+ </tbody>
+ </table>
+ </div>
+
<div id='rdetail_cn_browse_div' style='text-align: center;' class='hide_me'>
<div id='cn_browse_none' class='hide_me color_4' style='width: 90%; text-align: center; margin: 10px;'>