From d2fcf4e428a87f93e6f57149c0eb77588c7ae508 Mon Sep 17 00:00:00 2001 From: dbs Date: Tue, 28 Jul 2009 05:49:34 +0000 Subject: [PATCH] Bring detailed record display back into sync with rel_1_6_0 git-svn-id: svn://svn.open-ils.org/ILS-Contrib/conifer/trunk@596 6d9bc8c9-1ec2-4278-b937-99fde70a366f --- web/opac/skin/default/js/rdetail.js | 117 +++++++++++++++++++++++++++--------- 1 file changed, 87 insertions(+), 30 deletions(-) diff --git a/web/opac/skin/default/js/rdetail.js b/web/opac/skin/default/js/rdetail.js index c0638a12c3..79d12050a8 100644 --- a/web/opac/skin/default/js/rdetail.js +++ b/web/opac/skin/default/js/rdetail.js @@ -1,12 +1,22 @@ /* */ - detachAllEvt('common', 'run'); attachEvt("common", "run", rdetailDraw); attachEvt("rdetail", "recordDrawn", rdetailBuildStatusColumns); attachEvt("rdetail", "recordDrawn", rdetailBuildInfoRows); attachEvt("rdetail", "recordDrawn", rdetailGetPageIds); +/* Per-skin configuration settings */ +var rdetailLocalOnly = true; +var rdetailShowLocal = true; +var rdetailShowCopyLocation = true; +var rdetailGoogleBookPreview = true; +var rdetailDisplaySerialHoldings = true; +var rdetailEnableRefWorks = false; +var rdetailRefWorksHost = 'http://refworks.scholarsportal.info'; +var enableHoldsOnAvailable = false; + +/* vars vars vars */ var record = null; var cp_statuses = null; var recordsCache = []; @@ -17,34 +27,14 @@ var statusRow = null; var numStatuses = null; var defaultCN; var callnumberCache = {}; -var rdetailLocalOnly = true; var globalCNCache = {}; var localTOC; var cachedRecords; var _statusPositions = {}; - -var rdetailShowLocal = true; -var rdetailShowCopyLocation = true; -var googleBookPreview = true; -var enableHoldsOnAvailable = false; -var displaySerialHoldings = true; var opac_strings; -/* serials are currently the only use of Dojo strings in the OPAC */ -if (displaySerialHoldings) { - dojo.requireLocalization("openils.opac", "opac"); - opac_strings = dojo.i18n.getLocalization("openils.opac", "opac"); -} - var nextContainerIndex; -function rdetailReload() { - var args = {}; - args[PARAM_LOCATION] = getNewSearchLocation(); - args[PARAM_DEPTH] = depthSelGetDepth(); - goTo(buildOPACLink(args)); -} - var nextRecord; var prevRecord; @@ -53,7 +43,20 @@ var rdetailNext = null; var rdetailStart = null; var rdetailEnd = null; +/* serials are currently the only use of Dojo strings in the OPAC */ +if (rdetailDisplaySerialHoldings) { + dojo.require("dijit.Menu"); + dojo.require("dijit.form.Button"); + dojo.requireLocalization("openils.opac", "opac"); + opac_strings = dojo.i18n.getLocalization("openils.opac", "opac"); +} +function rdetailReload() { + var args = {}; + args[PARAM_LOCATION] = getNewSearchLocation(); + args[PARAM_DEPTH] = depthSelGetDepth(); + goTo(buildOPACLink(args)); +} /* looks to see if we have a next and/or previous record in the record cache, if so, set up the nav links */ @@ -125,10 +128,21 @@ function rdetailDraw() { req.callback(_rdetailDraw); req.send(); - if (displaySerialHoldings) { + if (rdetailDisplaySerialHoldings) { var req = new Request(FETCH_MFHD_SUMMARY, getRid()); req.callback(_holdingsDraw); req.send(); + if (isXUL()) { + var here = findOrgUnit(getLocation()); + dojo.place("
" + + dojo.place("
" + dojo.string.substitute(opac_strings.HOLDINGS_TABLE_CAPTION, [hloc]) + "
", "rdetail_details_table", "after" @@ -274,10 +300,20 @@ function _holdingsDrawMFHD(holdings, entryNum) { if (isXUL()) { dojo.require('openils.Event'); dojo.require('openils.PermaCrud'); - dojo.place(" - " + opac_strings.EDIT_LABEL + "", - "mfhdHoldingsCaption", "last" - ); + var mfhd_edit = new dijit.Menu({}); + new dijit.MenuItem({onClick: function(){loadMarcEditor(holdings.id())}, label:opac_strings.EDIT_MFHD_RECORD}).placeAt(mfhd_edit, "first"); + new dijit.MenuItem({onClick:function(){ + var pcrud = new openils.PermaCrud({"authtoken": G.user.session}); + var mfhd_rec = pcrud.retrieve("sre", holdings.id()); + if (mfhd_rec) { + pcrud.eliminate(mfhd_rec); + alert(dojo.string.substitute(opac_strings.DELETED_MFHD_RECORD, [holdings.id()])); + } + }, label:opac_strings.DELETE_MFHD}).placeAt(mfhd_edit, "last"); + // new dijit.MenuItem({onClick:function(){alert("Edit properties " + holdings.id());}, label:opac_strings.EDIT_PROPERTIES}).placeAt(mfhd_edit, "last"); + var mfhd_mb = new dijit.form.DropDownButton({dropDown: mfhd_edit, label:opac_strings.EDIT_MFHD_MENU, style:"float:right"}); + mfhd_mb.placeAt("mfhdHoldingsCaption" + entryNum, "last"); + mfhd_edit.startup(); } } @@ -376,6 +412,27 @@ function _rdetailDraw(r) { $('rdetail_place_hold').setAttribute( 'href','javascript:holdsDrawEditor({record:"'+record.doc_id()+'",type:"T"});'); + var RW = $('rdetail_exp_refworks'); + if (RW && rdetailEnableRefWorks) { + + var here = (findOrgUnit(getLocation())).name(); + var org_name = here.replace(" ", "+"); + var cgi = new CGI(); + + RW.setAttribute( + 'href', + rdetailRefWorksHost + '/express/expressimport.asp?vendor=' + + org_name + + '&filter=MARC+Format&database=All+MARC+Formats&encoding=65001&url=http%3A%2F%2F' + + cgi.server_name + '/opac/extras/supercat/marctxt/record/' + + record.doc_id() + ); + + RW.setAttribute('target', 'RefWorksMain'); + + unHideMe($('rdetail_exp_refworks_span')); + } + $('rdetail_img_link').setAttribute('href', buildISBNSrc(cleanISBN(record.isbn()), 'large')); G.ui.rdetail.image.setAttribute("src", buildISBNSrc(cleanISBN(record.isbn()))); runEvt("rdetail", "recordDrawn"); @@ -945,7 +1002,7 @@ function _rdetailSortStatuses(a, b) { * Check for a Google Book preview */ function rdetailCheckForGBPreview() { - if (!googleBookPreview) return; + if (!rdetailGoogleBookPreview) return; searchForGBPreview( cleanISBN(record.isbn()) ); } -- 2.11.0