Drupal . behaviors . roblib _search _eds = {
attach : function ( context , settings ) {
$url = settings . roblib _search _eds . search _url ;
profile = settings . roblib _search _eds . eds _profile ;
proxy _url = "https://proxy.library.upei.ca/login?url=" ;
jQuery . getJSON ( $url , function ( data ) {
var items = [ ] ;
var numberOfDocs = 0 ;
try {
numberOfDocs = data . numFound ;
} catch ( err ) {
// do nothing leave docLength at 0
}
if ( numberOfDocs < 1 ) {
jQuery ( '#' + 'roblib-search-content-eds' ) . empty ( ) . append ( 'No Results' ) ;
jQuery ( '.' + 'pane-roblib-search-eds-roblib-search-eds-results' ) . hide ( ) ;
} else {
var counter = 0 ;
var divs = new Array ( ) ;
var content = new Array ( ) ;
var queries = [ ] ;
jQuery . each ( data . queries , function ( key7 , query ) {
queries . push ( query . query ) ;
} )
var query _str = encodeURI ( data . queries [ 0 ] . query ) ;
var href _str = 'https://search.ebscohost.com/login.aspx?direct=true&site=eds-live&scope=site&type=1&custid=uprince&groupid=main&profid=lite&mode=bool&lang=en&bquery=' ;
jQuery . each ( data . documents , function ( key , val ) {
id = 'roblib-search-eds-' + counter ;
divs [ counter ++ ] = id ;
if ( typeof val . Items !== 'undefined' ) {
items . push ( '<div class ="roblib-search-row" id="' + id + '">' ) ;
if ( typeof val . Items . Title !== 'undefined' ) {
items . push ( '<div class="roblib-title eds">' ) ;
items . push ( '<a href="' + proxy _url + val . PLink + '&scope=site">' + val . Items . Title . Data + '</a></div>' ) ;
}
val . PubType == 'Book' ? pubType = 'Print Book' : pubType = val . PubType ;
pubYear = val . RecordInfo . BibRelationships . IsPartOfRelationships [ "date" ] ;
! pubYear ? pubYear = " " : pubYear = pubYear [ 0 ] [ "Y" ] ;
items . push ( '<div class="eds-type"><span class="eds-pubyear">' + pubYear + '</span> - ' + pubType + '</div>' ) ;
var roblib _authors = [ ] ;
jQuery . each ( val . RecordInfo . BibRelationships . HasContributorRelationships , function ( key3 , author ) {
roblib _authors . push ( author . NameFull ) ;
} )
items . push ( '<div class="eds-sor">' ) ;
roblib _authors = roblib _shorten ( roblib _authors . join ( '; ' ) , 50 , " " ) ;
items . push ( roblib _authors ) ;
items . push ( '</div>' ) ;
var url ;
! val . Items . URL ? url = " " : url = val . Items . URL . Data ;
if ( url ) {
items . push ( '<div class="eds-url">' + url + '</div>' ) ;
}
if ( pubType == "Print Book" ) {
anNumber = val . An . split ( "." ) ;
if ( anNumber [ 0 ] && anNumber [ 0 ] == 'upei' ) {
catalogUrl = '<a href="http://islandpines.roblib.upei.ca/eg/opac/record/' + anNumber [ 1 ] +
'">View in UPEI Catalogue</a>' ;
items . push ( '<div class="eds-catalog-link">' + catalogUrl + '</div>' ) ;
}
}
items . push ( '</div>' ) ;
} else {
items . push ( '<div class ="roblib-search-row roblib-eds-unauthorized" id="\' + id + \'">You must login to view this result, <a href="https://proxy.library.upei.ca/login?url=' + href _str + query _str + '" id="eds-unauthorized-result">click here to login</a></div>' ) ;
}
} ) ;
jQuery ( '#' + 'roblib-search-content-eds' ) . empty ( ) . append ( items . join ( '' ) ) ;
}
var non _upei _link = '' ;
var upei _link = '<a href="' + proxy _url + href _str + query _str + '" id="eds-see-all-results">SEE ALL (' + data . recordCount + ')</a> ' ;
if ( ! data . is _local _ip ) {
non _upei _link = '<a href="' + href _str + query _str + '&authtype=ip,guest" id="eds-non-upei-see_all_results">[Non-UPEI]</a>' ;
upei _link = upei _link + non _upei _link ;
}
jQuery ( '#roblib-search-eds-more' ) . empty ( ) . append ( upei _link ) ;
jQuery ( '#roblib-eds-books-more-results' ) . empty ( ) . append ( upei _link ) ;
jQuery ( '#roblib-eds-books-toc' ) . empty ( ) . append ( '<a href="' + proxy _url + href _str + query _str + '" id="eds-see-all-results-toc">Books (' + data . recordCount + ')</a>' ) ;
} ) ;
}
}
function roblib _intersects ( a , b ) {
var d = { } ;
var results = [ ] ;
for ( var i = 0 ; i < b . length ; i ++ ) {
d [ b [ i ] ] = true ;
}
for ( var j = 0 ; j < a . length ; j ++ ) {
if ( d [ a [ j ] ] )
results . push ( a [ j ] ) ;
}
return results ;
}
function roblib _shorten ( str , maxLen , separator ) {
if ( str . length <= maxLen ) return str ;
return str . substr ( 0 , str . lastIndexOf ( separator , maxLen ) ) + ' et al.' ;
}