+++ /dev/null
-\r
-var recordsHandled = 0;\r
-var recordsCache = [];\r
-var lowHitCount = 4;\r
-var isbnList = '';\r
-var googleBooksLink = true;\r
-buildOrgSel($('holdsCacheSel'), globalOrgTree, 0);\r
-\r
-var resultFetchAllRecords = false;\r
-var resultCompiledSearch = null;\r
-\r
-/* set up the event handlers */\r
-if( findCurrentPage() == MRESULT || findCurrentPage() == RRESULT ) {\r
- G.evt.result.hitCountReceived.push(resultSetHitInfo);\r
- G.evt.result.recordReceived.push(resultDisplayRecord, resultAddCopyCounts);\r
- G.evt.result.copyCountsReceived.push(resultDisplayCopyCounts);\r
- G.evt.result.allRecordsReceived.push(function(){unHideMe($('tehSideBar'));},function(){unHideMe($('results_view_span'));},resultBuildCaches,\r
- function(){unHideMe($('result_info_2'))}, fetchGoogleBooksLink, fetchChiliFreshReviews, postResultsCollect);\r
-\r
- attachEvt('result','lowHits',resultLowHits);\r
- attachEvt('result','zeroHits',resultZeroHits);\r
- attachEvt( "common", "locationUpdated", resultSBSubmit );\r
- /* do this after we have ID's so the rank for mr pages will be correct */\r
- attachEvt("result", "preCollectRecords", resultPaginate);\r
-}\r
-\r
-function resultSBSubmit(){searchBarSubmit();}\r
-\r
-/* returns the last 'index' postion ocurring in this page */\r
-function resultFinalPageIndex() {\r
- if(getHitCount() < (getOffset() + getDisplayCount())) \r
- return getHitCount() - 1;\r
- return getOffset() + getDisplayCount() - 1;\r
-}\r
-\r
-\r
-function plausible_ident(s) {\r
- s = s.replace(/^\s*(.+)\s*$/, '$1');\r
- s = s.replace(/^(\S+)\s.*$/, '$1');\r
- return s;\r
-}\r
-\r
-/* generic search method */\r
-function resultCollectSearchIds( type, method, handler ) {\r
-\r
- var sort = (getSort() == SORT_TYPE_REL) ? null : getSort(); \r
- var sortdir = (sort) ? ((getSortDir()) ? getSortDir() : SORT_DIR_ASC) : null;\r
-\r
- var item_type;\r
- var item_form;\r
- var args = {};\r
-\r
- if( type ) {\r
- var form = parseForm(getForm());\r
- item_type = form.item_type;\r
- item_form = form.item_form;\r
-\r
- } else {\r
- item_type = (getItemType()) ? getItemType().split(/,/) : null;\r
- item_form = (getItemForm()) ? getItemForm().split(/,/) : null;\r
- }\r
- \r
- item_type=null;\r
-\r
- var limit = (resultFetchAllRecords) ? 1000 : getDisplayCount();\r
-\r
- if( getOffset() > 0 ) {\r
- if( getHitCount() > 0 && (getOffset() + getDisplayCount()) > getHitCount() ) \r
- limit = getHitCount() - getOffset();\r
- }\r
-\r
- var lasso = getLasso();\r
-\r
- if (lasso) args.org_unit = -lasso;\r
- else args.org_unit = getLocation();\r
-\r
- args.depth = getDepth();\r
- args.limit = limit;\r
- args.offset = getOffset();\r
- args.visibility_limit = 3000;\r
- args.default_class = getStype();\r
-\r
- if(sort) args.sort = sort;\r
- if(sortdir) args.sort_dir = sortdir;\r
- if(item_type) args.item_type = item_type;\r
- if(item_form) args.item_form = item_form;\r
- if(getAvail()) args.available = 1;\r
- //args.format="marcxml";\r
-\r
- if(getFacet()) args.facets = getFacet();\r
-\r
- if(getAudience()) args.audience = getAudience().split(/,/);\r
- if(getLitForm()) args.lit_form = getLitForm().split(/,/);\r
- if(getLanguage()) args.language = getLanguage().split(/,/);\r
- if(getBibLevel()) args.bib_level = getBibLevel().split(/,/);\r
- if(getCopyLocs()) args.locations = getCopyLocs().split(/,/);\r
- if(getPubdBefore()) args.before = getPubdBefore();\r
- else if(getPubdAfter()) args.after = getPubdAfter();\r
- else if(getPubdBetween()) args.between = getPubdBetween().split(/,/);\r
-\r
- _debug('Search args: ' + js2JSON(args));\r
- _debug('Raw query: ' + getTerm());\r
-\r
- var req = new Request(method, args, getTerm(), 1);\r
- req.callback(handler);\r
- req.send();\r
-}\r
-\r
-\r
-\r
-\r
-\r
-/* set the search result info, number of hits, which results we're \r
- displaying, links to the next/prev pages, etc. */\r
-function resultSetHitInfo() { \r
-\r
- var lasso = getLasso();\r
- if (!lasso) {\r
- /* tell the user where the results are coming from */\r
- var baseorg = findOrgUnit(getLocation());\r
- var depth = getDepth();\r
- var mydepth = findOrgDepth(baseorg);\r
- if( findOrgDepth(baseorg) != depth ) {\r
- var tmporg = baseorg;\r
- while( mydepth > depth ) {\r
- mydepth--;\r
- tmporg = findOrgUnit(tmporg.parent_ou());\r
- }\r
- unHideMe($('including_results_for'));\r
- try{$('including_results_location').appendChild(text(tmporg.name()));} catch(e){}\r
- }\r
- }\r
-\r
-\r
- try{searchTimer.stop()}catch(e){}\r
-\r
- //if( findCurrentPage() == MRESULT ) {\r
- if( findCurrentPage() == MRESULT || \r
-\r
- (findCurrentPage() == RRESULT &&\r
- (\r
- getRtype() == RTYPE_TITLE ||\r
- getRtype() == RTYPE_AUTHOR ||\r
- getRtype() == RTYPE_SUBJECT ||\r
- getRtype() == RTYPE_SERIES ||\r
- getRtype() == RTYPE_KEYWORD \r
- )\r
-\r
- ) ) {\r
-\r
- if(getHitCount() <= lowHitCount && getTerm())\r
- runEvt('result', 'lowHits');\r
- }\r
-\r
- if(getHitCount() == 0) {\r
- runEvt('result', 'zeroHits');\r
- return;\r
- }\r
-\r
-\r
- var pages = getHitCount() / getDisplayCount();\r
- if(pages % 1) pages = parseInt(pages) + 1;\r
-\r
- \r
-\r
- var cpage = (getOffset()/getDisplayCount()) + 1;\r
-\r
- G.ui.result.current_page.appendChild(text(cpage));\r
- G.ui.result.num_pages.appendChild(text(pages)); /* the ) is dumb */\r
-\r
- $('current_page2').appendChild(text(cpage));\r
- $('num_pages2').appendChild(text(pages + ")")); /* the ) is dumb */\r
-\r
- /* set the offsets */\r
- var offsetEnd = getDisplayCount() + getOffset(); \r
- if( getDisplayCount() > (getHitCount() - getOffset())) \r
- offsetEnd = getHitCount();\r
-\r
- G.ui.result.offset_end.appendChild(text(offsetEnd));\r
- G.ui.result.offset_start.appendChild(text(getOffset() + 1));\r
-\r
- $('offset_end2').appendChild(text(offsetEnd));\r
- $('offset_start2').appendChild(text(getOffset() + 1));\r
-\r
- G.ui.result.result_count.appendChild(text(getHitCount()));\r
- unHideMe(G.ui.result.info);\r
- unHideMe($('result_numbers1'));\r
-\r
- $('result_count2').appendChild(text(getHitCount()));\r
- unHideMe($('result_info_div2'));\r
-}\r
-\r
-function resultLowHits() {\r
- showCanvas();\r
- unHideMe($('result_low_hits'));\r
- if(getHitCount() > 0)\r
- unHideMe($('result_low_hits_msg'));\r
-\r
- var words = [];\r
- for(var key in resultCompiledSearch.searches) \r
- words.push(resultCompiledSearch.searches[key].term);\r
-\r
- var sreq = new Request(CHECK_SPELL, words.join(' '));\r
- sreq.callback(resultSuggestSpelling);\r
- sreq.send();\r
-\r
- for(var key in resultCompiledSearch.searches) {\r
- var areq = new Request(FETCH_CROSSREF, key, resultCompiledSearch.searches[key].term);\r
- areq.callback(resultLowHitXRef);\r
- areq.send();\r
- }\r
-\r
- if( !(getForm() == null || getForm() == 'all' || getForm() == "") ) {\r
- var a = {};\r
- a[PARAM_FORM] = "all";\r
- $('low_hits_remove_format_link').setAttribute('href',buildOPACLink(a));\r
- unHideMe($('low_hits_remove_format'));\r
- }\r
-\r
- resultSuggestSearchClass();\r
-\r
- if(getTerm()) resultExpandSearch(); /* advanced search */\r
-}\r
-\r
-var lowHitsXRefSet = {};\r
-var lowHitsXRefLink;\r
-var lowHitsXRefLinkParent;\r
-function resultLowHitXRef(r) {\r
- if(!lowHitsXRefLink){\r
- lowHitsXRefLinkParent = $('low_hits_xref_link').parentNode;\r
- lowHitsXRefLink = lowHitsXRefLinkParent.removeChild($('low_hits_xref_link'));\r
- }\r
- var res = r.getResultObject();\r
- var arr = res.from;\r
- arr.concat(res.also);\r
- if(arr && arr.length > 0) {\r
- unHideMe($('low_hits_cross_ref'));\r
- var word;\r
- var c = 0;\r
- while( word = arr.shift() ) {\r
-\r
- if (lowHitsXRefSet[word] == 1) continue;\r
- lowHitsXRefSet[word] = 1;\r
-\r
- if(c++ > 20) break;\r
- var a = {};\r
- a[PARAM_TERM] = word;\r
- var template = lowHitsXRefLink.cloneNode(true);\r
- template.setAttribute('href',buildOPACLink(a));\r
- template.appendChild(text(word));\r
- lowHitsXRefLinkParent.appendChild(template);\r
- lowHitsXRefLinkParent.appendChild(text(' '));\r
- }\r
- }\r
-}\r
-\r
-function resultZeroHits() {\r
- hideMe($('result_header'));\r
- hideMe($('result_table_div'));\r
- hideMe($('statusbar'));\r
- $('rresults_page').style.width="690px";\r
- unHideMe($('zero_search_hits'));\r
- $('zero_hits_term').innerHTML = getTerm();\r
- //showCanvas();\r
- unHideMe($('result_low_hits'));\r
- unHideMe($('result_zero_hits_msg'));\r
- if(getTerm()) resultExpandSearch(); /* advanced search */\r
-}\r
-\r
-function resultExpandSearch() {\r
- var top = findOrgDepth(globalOrgTree);\r
- if(getDepth() == top) return;\r
- unHideMe($('low_hits_expand_range'));\r
- var par = $('low_hits_expand_link').parentNode;\r
- var template = par.removeChild($('low_hits_expand_link'));\r
-\r
- var bottom = getDepth();\r
- while( top < bottom ) {\r
- var a = {};\r
- a[PARAM_DEPTH] = top;\r
- var temp = template.cloneNode(true);\r
- temp.appendChild(text(findOrgTypeFromDepth(top).opac_label()))\r
- temp.setAttribute('href',buildOPACLink(a));\r
- par.appendChild(temp);\r
- top++;\r
- }\r
-}\r
-\r
-function resultSuggestSearchClass() {\r
- var stype = getStype();\r
- if(stype == STYPE_KEYWORD) return;\r
- var a = {}; var ref;\r
- unHideMe($('low_hits_search_type'));\r
- if(stype != STYPE_TITLE) {\r
- ref = $('low_hits_title_search');\r
- unHideMe(ref);\r
- a[PARAM_STYPE] = STYPE_TITLE;\r
- ref.setAttribute('href',buildOPACLink(a));\r
- }\r
- if(stype != STYPE_AUTHOR) {\r
- ref = $('low_hits_author_search');\r
- unHideMe(ref);\r
- a[PARAM_STYPE] = STYPE_AUTHOR;\r
- ref.setAttribute('href',buildOPACLink(a));\r
- }\r
- if(stype != STYPE_SUBJECT) {\r
- ref = $('low_hits_subject_search');\r
- unHideMe(ref);\r
- a[PARAM_STYPE] = STYPE_SUBJECT;\r
- ref.setAttribute('href',buildOPACLink(a));\r
- }\r
- if(stype != STYPE_KEYWORD) {\r
- ref = $('low_hits_keyword_search');\r
- unHideMe(ref);\r
- a[PARAM_STYPE] = STYPE_KEYWORD;\r
- ref.setAttribute('href',buildOPACLink(a));\r
- }\r
- if(stype != STYPE_SERIES) {\r
- ref = $('low_hits_series_search');\r
- unHideMe(ref);\r
- a[PARAM_STYPE] = STYPE_SERIES;\r
- ref.setAttribute('href',buildOPACLink(a));\r
- }\r
-}\r
-\r
-function resultSuggestSpelling(r) {\r
- var res = r.getResultObject();\r
- var phrase = getTerm();\r
- var words = phrase.split(/ /);\r
-\r
- var newterm = "";\r
-\r
- for( var w = 0; w < words.length; w++ ) {\r
- var word = words[w];\r
- var blob = grep(res, function(i){return (i.word == word);});\r
- if( blob ) blob = blob[0];\r
- else continue;\r
- if( blob.word == word ) {\r
- if( blob.suggestions && blob.suggestions[0] ) {\r
- newterm += " " + blob.suggestions[0];\r
- unHideMe($('did_you_mean'));\r
- } else {\r
- newterm += " " + word;\r
- }\r
- }\r
- }\r
- var cell = $('zero_hits_suggestions');\r
- var s = res[0].suggestions;\r
- for(var i in s) {\r
- if(i==0) continue;\r
- if(i==10) break; //limit suggestions\r
- cell.appendChild(elem('a',{href:buildOPACLink({t:s[i]})},s[i]));\r
- cell.appendChild(elem('br'));\r
- }\r
- if(newterm.toLowerCase().trim()!=getTerm().toLowerCase().trim()) unHideMe($('zero_hits_label1'));\r
- if(res[0].suggestions && res[0].suggestions.length>0) unHideMe($('zero_hits_label2'));\r
-\r
- var arg = {};\r
- arg[PARAM_TERM] = newterm;\r
- $('spell_check_link').setAttribute('href', buildOPACLink(arg));\r
- $('spell_check_link').appendChild(text(newterm));\r
-}\r
-\r
-\r
-function resultPaginate() {\r
- var o = getOffset();\r
- var args = {};\r
-\r
- if( !( ((o) + getDisplayCount()) >= getHitCount()) ) {\r
-\r
- args[PARAM_OFFSET] = o + getDisplayCount();\r
- args[PARAM_SORT] = SORT;\r
- args[PARAM_SORT_DIR] = SORT_DIR;\r
- args[PARAM_RLIST] = new CGI().param(PARAM_RLIST);\r
-\r
- G.ui.result.next_link.setAttribute("href", buildOPACLink(args)); \r
- addCSSClass(G.ui.result.next_link, config.css.result.nav_active);\r
-\r
- $('next_link2').setAttribute("href", buildOPACLink(args)); \r
- addCSSClass($('next_link2'), config.css.result.nav_active);\r
-\r
- args[PARAM_OFFSET] = getHitCount() - (getHitCount() % getDisplayCount());\r
-\r
- /* when hit count is divisible by display count, we have to adjust */\r
- if( getHitCount() % getDisplayCount() == 0 ) \r
- args[PARAM_OFFSET] -= getDisplayCount();\r
- }\r
-\r
- if( o > 0 ) {\r
-\r
- var args = {};\r
- args[PARAM_SORT] = SORT;\r
- args[PARAM_SORT_DIR] = SORT_DIR;\r
- args[PARAM_RLIST] = new CGI().param(PARAM_RLIST);\r
-\r
- args[PARAM_OFFSET] = o - getDisplayCount();\r
- G.ui.result.prev_link.setAttribute( "href", buildOPACLink(args)); \r
- addCSSClass(G.ui.result.prev_link, config.css.result.nav_active);\r
-\r
- $('prev_link2').setAttribute( "href", buildOPACLink(args)); \r
- addCSSClass($('prev_link2'), config.css.result.nav_active);\r
-\r
- args[PARAM_OFFSET] = 0;\r
- G.ui.result.home_link.setAttribute( "href", buildOPACLink(args)); \r
- addCSSClass(G.ui.result.home_link, config.css.result.nav_active);\r
- }\r
- \r
- // pagination - google style\r
- var pages = getHitCount() / getDisplayCount();\r
- var cpage = (getOffset()/getDisplayCount()) + 1;\r
- var start = 0;\r
- pages = Math.floor(pages);\r
- cpage = Math.floor(cpage);\r
- var end = pages>9?8:pages;\r
- \r
- // narrow our window of visible page numbers to 9 - sets start and end pages for the loop\r
- if(cpage>4) {\r
- start = cpage-5;\r
- end = cpage+3>pages?pages:cpage+3;\r
- if(cpage+3>pages) { start = (cpage-5)-(cpage-pages+3); }\r
- if(start<0) start=0;\r
- }\r
- \r
- if(pages>0) {\r
- var span = $('nav_pages');\r
- var span2 = $('nav_pages2');\r
- for(var i=start; i<=end; i++) {\r
- var temp = elem('span',{style:'padding:0px 3px;'});\r
- temp.style.padding='0px 3px';\r
- args[PARAM_OFFSET] = getDisplayCount()*i;\r
- if(i==cpage-1) { var link = text(i+1); temp.style.color="red" }\r
- else var link = elem('a',{href:buildOPACLink(args)},i+1);\r
- temp.appendChild(link);\r
- span.appendChild(temp);\r
- span2.appendChild(temp.cloneNode(true));\r
- }\r
- }\r
- //////\r
-\r
- if(getDisplayCount() < getHitCount()) {\r
- unHideMe($('start_end_links_span'));\r
- unHideMe($('start_end_links_span2'));\r
- }\r
-\r
- showCanvas();\r
- try{searchTimer.stop()}catch(e){}\r
-}\r
-\r
-function buildunAPISpan (span, type, id) {\r
- if(!span || !type || !id) return;\r
- var cgi = new CGI();\r
- var d = new Date();\r
-\r
- addCSSClass(span,'unapi-id');\r
-\r
- span.setAttribute(\r
- 'title',\r
- 'tag:' + cgi.server_name + ',' +\r
- d.getFullYear() +\r
- ':' + type + '/' + id\r
- );\r
-}\r
-\r
-function unhideGoogleBooksLink (data) {\r
- for ( var i in data ) {\r
- //if (data[i].preview == 'noview') continue;\r
-\r
- var gbspan = $n(document.documentElement, 'googleBooksLink-' + i);\r
- var gba = $n(gbspan, "googleBooks-link");\r
-\r
- gba.setAttribute(\r
- 'href',\r
- data[i].info_url\r
- );\r
- removeCSSClass( gbspan, 'hide_me' );\r
- }\r
-}\r
-\r
-/* display the record info in the record display table 'pos' is the \r
- zero based position the record should have in the display table */\r
-function resultDisplayRecord(rec, pos, is_mr) {\r
- //fieldmapper.IDL.load(['mvr']);\r
- if(rec == null || rec.__c) rec = new mvr(); /* so the page won't die if there was an error */\r
- recordsHandled++;\r
- recordsCache.push(rec);\r
-\r
- var r = table.rows[pos + 1];\r
- r.id += "_" + rec.doc_id();\r
- var currentISBN = cleanISBN(rec.isbn());\r
-\r
- if (googleBooksLink) {\r
- var gbspan = $n(r, "googleBooksLink");\r
- if (currentISBN && gbspan) {\r
- gbspan.setAttribute('name', gbspan.getAttribute('name') + '-' + currentISBN );\r
- if (isbnList) isbnList += ', ';\r
- isbnList += currentISBN;\r
- }\r
- }\r
-\r
- if (currentISBN && chilifresh && chilifresh != '(none)') {\r
- var cfrow = $n(r, "chilifreshReview");\r
- if (cfrow) {\r
- removeCSSClass( cfrow, 'hide_me' );\r
- }\r
- var cflink = $n(r, "chilifreshReviewLink");\r
- if (cflink) {\r
- cflink.setAttribute(\r
- 'id',\r
- 'isbn_' + currentISBN\r
- );\r
- }\r
- var cfdiv = $n(r, "chilifreshReviewResult");\r
- if (cfdiv) {\r
- cfdiv.setAttribute(\r
- 'id',\r
- 'chili_review_' + currentISBN\r
- )\r
- }\r
- }\r
-\r
- var pic = $n(r, config.names.result.item_jacket);\r
- if (!pic) pic = elem("img");\r
- //pic.setAttribute("src", buildISBNSrc(currentISBN));\r
- pic.setAttribute("width",55);\r
-\r
- var title_link = $n(r, config.names.result.item_title);\r
- var author_link = $n(r, config.names.result.item_author);\r
- var row_count = $n(r,"results_row_count");\r
- var myListLink = $n(r,"result_my_list_link");\r
- var reviewsLink = $n(r, 'reviews_and_more');\r
- if(currentISBN) {\r
- reviewsLink.href="http://contentcafe2.btol.com/ContentCafeClient/ContentCafe.aspx?UserID=KC72927&Password=CC14647&ItemKey="+currentISBN+"&Options=Y";\r
- }\r
-\r
- if( is_mr ) {\r
- var onlyrec = onlyrecord[ getOffset() + pos ];\r
- if(onlyrec) {\r
- buildunAPISpan($n(r,'unapi'), 'biblio-record_entry', onlyrec);\r
-\r
- var args = {};\r
- args.page = RDETAIL;\r
- args[PARAM_OFFSET] = 0;\r
- args[PARAM_RID] = onlyrec;\r
- args[PARAM_MRID] = rec.doc_id();\r
- pic.parentNode.setAttribute("href", buildOPACLink(args));\r
- title_link.setAttribute("href", buildOPACLink(args));\r
- title_link.appendChild(text(normalize(truncate(rec.title(), 65))));\r
- \r
- } else {\r
- buildunAPISpan($n(r,'unapi'), 'metabib-metarecord', rec.doc_id());\r
-\r
- buildTitleLink(rec, title_link); \r
- var args = {};\r
- args.page = RRESULT;\r
- args[PARAM_OFFSET] = 0;\r
- args[PARAM_MRID] = rec.doc_id();\r
- pic.parentNode.setAttribute("href", buildOPACLink(args));\r
- }\r
-\r
- } else {\r
- buildunAPISpan($n(r,'unapi'), 'biblio-record_entry', rec.doc_id());\r
-\r
- if(title_link) buildTitleDetailLink(rec, title_link); \r
- var args = {};\r
- args.page = RDETAIL;\r
- args[PARAM_OFFSET] = 0;\r
- args[PARAM_RID] = rec.doc_id();\r
- pic.parentNode.setAttribute("href", buildOPACLink(args));\r
-\r
- unHideMe($n(r,'place_hold_span'));\r
- $n(r,'place_hold_link').setAttribute('href','javascript:holdsDrawEditor({record:"'+rec.doc_id()+'",type:"T"});');\r
-\r
- /** BILL */\r
- //dojo.require('openils.BibTemplate'); // -- this causes redundant requests per record - put in js_common.xml instead\r
- setTimeout(\r
- function () { \r
- new openils.BibTemplate({root : r, record : rec.doc_id()}).render();\r
- },\r
- 0\r
- );\r
- /** BILL */\r
- }\r
- \r
- if(row_count) row_count.innerHTML = (pos+1)+getOffset();\r
- if(myListLink) myListLink.setAttribute("href","javascript:addMyList("+rec.doc_id()+");")\r
- title_link.setAttribute("title",rec.title());\r
- buildSearchLink(STYPE_AUTHOR, rec.author(), author_link);\r
-\r
- if(! is_mr ) {\r
- $n(r, "results_pub_date").innerHTML = (!rec.pubdate())?"":rec.pubdate();\r
- $n(r, "results_pub").innerHTML = (!rec.publisher())?"":rec.publisher();\r
- $n(r, "results_isbn").innerHTML = (!currentISBN)?"":currentISBN;\r
- $n(r, "results_edition").innerHTML = (!rec.edition())?"":rec.edition();\r
- $n(r, "results_phys_desc").innerHTML = (!rec.physical_description())?"":rec.physical_description();\r
- if(isInAnonList(parseInt(rec.doc_id()))) { \r
- $n(r, 'result_my_list_link').innerHTML = '';\r
- $n(r, 'result_my_list_link').appendChild(elem('img', {src:'/opac/skin/kcls/graphics/add_mylist_sel.gif'}, null));\r
- }\r
- \r
- if(!isNull(rec.edition())) {\r
- unHideMe( $n(r, "result_table_extra_span"));\r
- $n(r, "result_table_edition_span").appendChild( text( rec.edition()) );\r
- }\r
- if(!isNull(rec.pubdate())) {\r
- unHideMe( $n(r, "result_table_extra_span"));\r
- unHideMe($n(r, "result_table_pub_span"));\r
- $n(r, "result_table_pub_span").appendChild( text( rec.pubdate() ));\r
- }\r
- if(!isNull(rec.publisher()) ) {\r
- unHideMe( $n(r, "result_table_extra_span"));\r
- unHideMe($n(r, "result_table_pub_span"));\r
- $n(r, "result_table_pub_span").appendChild( text( " " + rec.publisher() ));\r
- }\r
-\r
- if(!isNull(rec.physical_description()) ) {\r
- unHideMe( $n(r, "result_table_extra_span"));\r
- var t = " " + rec.physical_description();\r
- //$n(r, "result_table_phys_span").appendChild( text(t.replace(/:.*/g,'')));\r
- $n(r, "result_table_phys_span").appendChild( text(t));\r
- }\r
- }\r
-\r
- resultBuildFormatIcons( r, rec, is_mr );\r
- unHideMe(r);\r
- runEvt("result", "recordDrawn", rec.doc_id(), title_link);\r
-\r
- \r
- if(resultPageIsDone()) {\r
- runEvt('result', 'allRecordsReceived', recordsCache);\r
- }\r
-}\r
-\r
-function _resultFindRec(id) {\r
- for( var i = 0; i != recordsCache.length; i++ ) {\r
- var rec = recordsCache[i];\r
- if( rec && rec.doc_id() == id )\r
- return rec;\r
- }\r
- return null;\r
-}\r
-\r
-\r
-function resultBuildFormatIcons( row, rec, is_mr ) {\r
- var ress = "";\r
- var imgEl = $n(row, "result_mat_type");\r
- if(!imgEl) return;\r
- \r
- ress = getMarcData(rec.doc_id(),"998","d");\r
- if(setFormatIcon(imgEl, ress)) unHideMe(imgEl);\r
-\r
-}\r
-\r
-function fetchGoogleBooksLink () {\r
- return;\r
- if (isbnList && googleBooksLink) {\r
- var scriptElement = document.createElement("script");\r
- scriptElement.setAttribute("id", "jsonScript");\r
- scriptElement.setAttribute("src",\r
- "https://books.google.com/books?bibkeys=" + \r
- escape(isbnList) + "&jscmd=viewapi&callback=unhideGoogleBooksLink");\r
- scriptElement.setAttribute("type", "text/javascript");\r
- // make the request to Google Book Search\r
- document.documentElement.firstChild.appendChild(scriptElement);\r
- }\r
-}\r
-\r
-function resultPageIsDone(pos) {\r
-\r
- return (recordsHandled == getDisplayCount() \r
- || recordsHandled + getOffset() == getHitCount());\r
-}\r
-\r
-var resultCCHeaderApplied = false;\r
-\r
-/* -------------------------------------------------------------------- */\r
-/* dynamically add the copy count rows based on the org type 'countsrow' \r
- is the row into which we will add TD's to hold the copy counts \r
- This code generates copy count cells with an id of\r
- 'copy_count_cell_<depth>_<pagePosition>' */\r
-function resultAddCopyCounts(rec, pagePosition) {\r
-\r
- var r = table.rows[pagePosition + 1];\r
- var countsrow = $n(r, config.names.result.counts_row );\r
- var ccell = $n(countsrow, config.names.result.count_cell);\r
-\r
- var nodes = orgNodeTrail(findOrgUnit(getLocation()));\r
- var node = nodes[0];\r
- var type = findOrgType(node.ou_type());\r
- ccell.id = "copy_count_cell_" + type.depth() + "_" + pagePosition;\r
- ccell.title = type.opac_label();\r
- //addCSSClass(ccell, config.css.result.cc_cell_even);\r
-\r
- var lastcell = ccell;\r
- var lastheadcell = null;\r
-\r
- var cchead = null;\r
- var ccheadcell = null;\r
- if(!resultCCHeaderApplied && !getLasso()) {\r
- ccrow = $('result_thead_row');\r
- ccheadcell = ccrow.removeChild($n(ccrow, "result_thead_ccell"));\r
- var t = ccheadcell.cloneNode(true);\r
- lastheadcell = t;\r
- t.appendChild(text(type.opac_label()));\r
- ccrow.appendChild(t);\r
- resultCCHeaderApplied = true;\r
- }\r
-}\r
-\r
-/* collect copy counts for a record using method 'methodName' */\r
-function resultCollectCopyCounts(rec, pagePosition, methodName) {\r
- if(rec == null || rec.doc_id() == null) return;\r
-\r
- var loc = getLasso();\r
- if (loc) loc = -loc;\r
- else loc= getLocation();\r
-\r
- var req = new Request(methodName, loc, rec.doc_id(), getForm() );\r
- req.request.userdata = [ rec, pagePosition ];\r
- req.callback(resultHandleCopyCounts);\r
- req.send();\r
-}\r
-\r
-function resultHandleCopyCounts(r) {\r
- runEvt('result', 'copyCountsReceived', r.userdata[0], r.userdata[1], r.getResultObject()); \r
-}\r
-\r
-\r
-/* XXX Needs to understand Lasso copy counts... */\r
-/* display the collected copy counts */\r
-function resultDisplayCopyCounts(rec, pagePosition, copy_counts) {\r
- if(copy_counts == null || rec == null) return;\r
- var r = table.rows[pagePosition + 1];\r
- var cnt_avail = $n(r, "copy_count_avail");\r
- if(cnt_avail && copy_counts[0]) {\r
- /*if(copy_counts[0].available)*/ cnt_avail.innerHTML = copy_counts[0].available+' cop'+(copy_counts[0].available==1?'y':'ies')+' available';\r
- //else {\r
- fieldmapper.standardRequest(['open-ils.circ','open-ils.circ.bre.holds.count'], {async:true, params:[rec.doc_id(), r.id], oncomplete: drawHoldsCount});\r
- $n(r, 'copy_holds2').innerHTML = ' on first copy returned of '+copy_counts[0].count+' cop'+(copy_counts[0].count==1?'y':'ies');\r
- //}\r
- }\r
-}\r
-\r
-function drawHoldsCount(r) {\r
- if(!r.params[1]) return;\r
- var row = $(r.params[1]);\r
- if(!row) return;\r
- var span = $n(row, 'copy_holds');\r
- var resp = r.recv().content();\r
- span.innerHTML = resp+' hold'+(resp==1?'':'s')+' ';\r
-}\r
-\r
-function showDetailedInfo(bool) {\r
- var simple_lbl = $('results_simple_lbl');\r
- var simple_link = $('results_simple_link');\r
- var detail_lbl = $('results_detail_lbl');\r
- var detail_link = $('results_detail_link');\r
- if(!simple_lbl || !simple_link || !detail_lbl || !detail_link) return;\r
- \r
- var tbls = dojo.query('.results_info_table',$('result_table'));\r
- if(bool) {\r
- tbls.forEach(function(node, index, arr){\r
- unHideMe($n(node,'results_pub_tr'));\r
- unHideMe($n(node,'results_isbn_tr'));\r
- unHideMe($n(node,'results_edition_tr'));\r
- unHideMe($n(node,'results_phys_desc_tr'));\r
- });\r
- hideMe(simple_lbl);\r
- hideMe(detail_link);\r
- unHideMe(simple_link);\r
- unHideMe(detail_lbl);\r
- } else {\r
- tbls.forEach(function(node, index, arr){\r
- hideMe($n(node,'results_pub_tr'));\r
- hideMe($n(node,'results_isbn_tr'));\r
- hideMe($n(node,'results_edition_tr'));\r
- hideMe($n(node,'results_phys_desc_tr'));\r
- });\r
- unHideMe(simple_lbl);\r
- unHideMe(detail_link);\r
- hideMe(simple_link);\r
- hideMe(detail_lbl);\r
- }\r
-}\r
-\r
-function fetchChiliFreshReviews() {\r
- if (chilifresh && chilifresh != '(none)') {\r
- try { chili_init(); } catch(E) { dump(E + '\n'); }\r
- }\r
-}\r
-\r
-function postResultsCollect() {\r
- var it = getCacheValue('showHoldEditor');\r
- if(it) {\r
- setCacheValue('showHoldEditor', null);\r
- holdsDrawEditor({record:it.record, type:it.type});\r
- }\r
-}\r