From 198411d680c896bb95b18a6158d87d69dc2e56d2 Mon Sep 17 00:00:00 2001 From: dbwells Date: Thu, 12 Aug 2010 13:41:54 +0000 Subject: [PATCH] Small OPAC serial holdings display changes git-svn-id: svn://svn.open-ils.org/ILS/branches/seials-integration@17187 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../perlmods/OpenILS/Application/Search/Serial.pm | 21 ++++++++++++--------- Open-ILS/web/opac/skin/default/js/rdetail.js | 13 ++++++++++--- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Search/Serial.pm b/Open-ILS/src/perlmods/OpenILS/Application/Search/Serial.pm index d1b770032d..cd1d48afe1 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Search/Serial.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Search/Serial.pm @@ -109,14 +109,14 @@ Given a bib record ID, returns a hash of holdings statements # note => "Given a bibliographic record ID, return MFHD holdings" #); -sub bib_to_mfhd { +sub bib_to_svr { my ($self, $client, $bib) = @_; - my $mfhd; + my $svrs; my $e = OpenILS::Utils::CStoreEditor->new(); # TODO: 'deleted' ssub support - my $sdists = $e->search_serial_distribution([{ "+ssub" => {"record_entry" => $bib} }, { "flesh" => 1, "flesh_fields" => {'sdist' => [ "record_entry", "basic_summary", "supplement_summary", "index_summary" ]}, "join" => {"ssub" => {}} }]); + my $sdists = $e->search_serial_distribution([{ "+ssub" => {"record_entry" => $bib} }, { "flesh" => 1, "flesh_fields" => {'sdist' => [ "record_entry", "holding_lib", "basic_summary", "supplement_summary", "index_summary" ]}, "join" => {"ssub" => {}} }]); my $sres = $e->search_serial_record_entry([{ record => $bib, deleted => 'f', "+sdist" => {"id" => undef} }, { "join" => {"sdist" => { 'type' => 'left' }} }]); if (!ref $sres and !ref $sdists) { return undef; @@ -130,7 +130,7 @@ sub bib_to_mfhd { } else { $svr = Fieldmapper::serial::virtual_record->new; $svr->sre_id(-1); - $svr->location(-1); #TODO: location support + $svr->location($_->holding_lib->name); $svr->owning_lib($_->holding_lib); $svr->basic_holdings([]); $svr->supplement_holdings([]); @@ -166,20 +166,23 @@ sub bib_to_mfhd { push(@{$svr->index_holdings_add}, $_->index_summary->textual_holdings); } } - push(@$mfhd, $svr); + push(@$svrs, $svr); } foreach (@$sres) { - push(@$mfhd, $mfhd_parser->generate_svr($_->id, $_->marc, $_->owning_lib)); + push(@$svrs, $mfhd_parser->generate_svr($_->id, $_->marc, $_->owning_lib)); } - return $mfhd; + # do a basic location sort for simple predictability + @$svrs = sort { $a->location cmp $b->location } @$svrs; + + return $svrs; } __PACKAGE__->register_method( - method => "bib_to_mfhd", + method => "bib_to_svr", api_name => "open-ils.search.serial.record.bib.retrieve", argc => 1, - note => "Given a bibliographic record ID, return MFHD holdings" + note => "Given a bibliographic record ID, return holdings in svr form" ); 1; diff --git a/Open-ILS/web/opac/skin/default/js/rdetail.js b/Open-ILS/web/opac/skin/default/js/rdetail.js index de6568c9f1..41d836c383 100644 --- a/Open-ILS/web/opac/skin/default/js/rdetail.js +++ b/Open-ILS/web/opac/skin/default/js/rdetail.js @@ -298,10 +298,17 @@ function _holdingsDrawMFHD(holdings, entryNum) { entryNumString = ' [Entry #'+entryNumInc+'] '; } - dojo.place("
" + - dojo.string.substitute(opac_strings.HOLDINGS_TABLE_CAPTION, [hloc]) + + var refNode; + if (entryNum > 0) { + refNode = 'rdetail_holdings_table_' + (entryNum - 1); + } else { + refNode = 'rdetail_details_table'; + } + + dojo.place("
" + + dojo.string.substitute(opac_strings.HOLDINGS_TABLE_CAPTION, [hloc]) + entryNumString + "
", "rdetail_details_table", "after" + "'>
", refNode, "after" ); if (hb.length > 0) { _holdingsDrawMFHDEntry(entryNum, opac_strings.BASIC_HOLDINGS, hb); } if (hba.length > 0) { _holdingsDrawMFHDEntry(entryNum, opac_strings.BASIC_HOLDINGS_ADD, hba); } -- 2.11.0