From e69da8f83f1d407bb7fa70626ec609d0cf51dd58 Mon Sep 17 00:00:00 2001 From: dbs Date: Tue, 12 May 2009 04:27:46 +0000 Subject: [PATCH] Add basic MFHD holdings display to OPAC git-svn-id: svn://svn.open-ils.org/ILS/trunk@13140 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/web/opac/common/js/config.js | 1 + Open-ILS/web/opac/skin/default/js/rdetail.js | 61 ++++++++++++++++++++ 2 files changed, 62 insertions(+) diff --git a/Open-ILS/web/opac/common/js/config.js b/Open-ILS/web/opac/common/js/config.js index 38d8886f2f..e3471f3ee1 100644 --- a/Open-ILS/web/opac/common/js/config.js +++ b/Open-ILS/web/opac/common/js/config.js @@ -291,6 +291,7 @@ var SEARCH_RS = 'open-ils.search:open-ils.search.biblio.multiclass:1'; var SEARCH_MRS_QUERY = 'open-ils.search:open-ils.search.metabib.multiclass.query:1'; var SEARCH_RS_QUERY = 'open-ils.search:open-ils.search.biblio.multiclass.query:1'; var FETCH_SEARCH_RIDS = "open-ils.search:open-ils.search.biblio.record.class.search:1"; +var FETCH_MFHD_SUMMARY = "open-ils.search:open-ils.search.serial.record.bib_to_mfhd.retrieve"; var FETCH_MRMODS = "open-ils.search:open-ils.search.biblio.metarecord.mods_slim.retrieve"; var FETCH_MODS_FROM_COPY = "open-ils.search:open-ils.search.biblio.mods_from_copy"; var FETCH_MR_COPY_COUNTS = "open-ils.search:open-ils.search.biblio.metarecord.copy_count:1"; diff --git a/Open-ILS/web/opac/skin/default/js/rdetail.js b/Open-ILS/web/opac/skin/default/js/rdetail.js index 5bb14a084a..7f27b232bd 100644 --- a/Open-ILS/web/opac/skin/default/js/rdetail.js +++ b/Open-ILS/web/opac/skin/default/js/rdetail.js @@ -26,6 +26,7 @@ var _statusPositions = {}; var rdetailShowLocal = true; var rdetailShowCopyLocation = true; var googleBookPreview = true; +var displaySerialHoldings = true; var nextContainerIndex; @@ -117,6 +118,12 @@ function rdetailDraw() { req.callback(_rdetailDraw); req.send(); + if (displaySerialHoldings) { + var req = new Request(FETCH_MFHD_SUMMARY, getRid()); + req.callback(_holdingsDraw); + req.send(); + } + detachAllEvt("result", "idsReceived"); G.evt.result.hitCountReceived = []; G.evt.result.recordReceived = []; @@ -173,6 +180,60 @@ function rdetailShowAllCopies() { hideMe(G.ui.rdetail.cp_info_none); } +/* + * This function could be written much more intelligently + * Limited brain power means that I'm brute-forcing it for now + */ +function _holdingsDraw(h) { + holdings = h.getResultObject(); + if (!holdings) { return null; } + + var hh = holdings.holdings(); + var hch = holdings.current_holdings(); + var hs = holdings.supplements(); + var hcs = holdings.current_supplements(); + var hi = holdings.indexes(); + var hci = holdings.current_indexes(); + var ho = holdings.online(); + var hm = holdings.missing(); + var hinc = holdings.incomplete(); + + if ( hh.length == 0 && hch.length == 0 && hs.length == 0 && + hcs.length == 0 && hi.length == 0 && hci.length == 0 && + ho.length == 0 && hm.length == 0 && hinc.length == 0 + ) { + return null; + } + + dojo.place("
Holdings summary
", "rdetail_details_table", "after"); + if (hh.length > 0) { + dojo.place(" Holdings" + hh + "", "rdetail_holdings_tbody", "last"); + } + if (hch.length > 0) { + dojo.place(" Current holdings" + hch + "", "rdetail_holdings_tbody", "last"); + } + if (hs.length > 0) { + dojo.place(" Supplements" + hs + "", "rdetail_holdings_tbody", "last"); + } + if (hcs.length > 0) { + dojo.place(" Current supplements" + hcs + "", "rdetail_holdings_tbody", "last"); + } + if (hi.length > 0) { + dojo.place(" Indexes" + hi + "", "rdetail_holdings_tbody", "last"); + } + if (hci.length > 0) { + dojo.place(" Current indexes" + hci + "", "rdetail_holdings_tbody", "last"); + } + if (ho.length > 0) { + dojo.place(" Online" + ho + "", "rdetail_holdings_tbody", "last"); + } + if (hm.length > 0) { + dojo.place(" Missing" + hm + "", "rdetail_holdings_tbody", "last"); + } + if (hinc.length > 0) { + dojo.place(" Incomplete" + hinc + "", "rdetail_holdings_tbody", "last"); + } +} function _rdetailDraw(r) { record = r.getResultObject(); -- 2.43.2