You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
106 lines
4.5 KiB
106 lines
4.5 KiB
Drupal.behaviors.roblib_search_evergreen = { |
|
attach: function(context, settings) { |
|
url = settings.roblib_search_evergreen.search_url; |
|
jQuery.getJSON(url, function(data) { |
|
var items = []; |
|
var numberOfDocs = 0; |
|
try { |
|
numberOfDocs = data.numberOfRecords; |
|
} catch (err) { |
|
// do nothing leave docLength at 0 |
|
} |
|
if(numberOfDocs < 1){ |
|
jQuery('#' + 'roblib-search-content-evergreen').empty().append('No Results'); |
|
jQuery('.pane-roblib-search-evergreen-roblib-search-evergreen-results').hide(); |
|
} else { |
|
var counter = 0; |
|
var divs = new Array(); |
|
var content = new Array(); |
|
jQuery.each(data, function(key, val) { |
|
id = 'roblib_search_evergreen_' + counter; |
|
populatePopupDivs(content, val, counter); |
|
divs[counter++] = id; |
|
items.push('<div class ="roblib-search-row" id="' + id + '">'); |
|
items.push('<div class="roblib-title evergreen">'); |
|
if (typeof val.title !== 'undefined') { |
|
items.push('<a href = "'+val.url+'">'+val.title); |
|
} |
|
if (typeof val.subtitle !== 'undefined') { |
|
items.push(' ' + val.subtitle); |
|
} |
|
items.push('</a></div>'); |
|
if (typeof val.sor !== 'undefined') { |
|
items.push('<div class="evergreen-sor">' + val.sor +'</div>'); |
|
} |
|
if (typeof val.date !== 'undefined') { |
|
items.push('<div class="evergreen-date">' + val.date + '</div>') |
|
} |
|
if(typeof val.holdings !== 'undefined'){ |
|
items.push('<div class="evergreen-holdings">'); |
|
jQuery.each(val.holdings, function(key2, val2){ |
|
roblibEvergreenAddHoldings(val2, items); |
|
}) |
|
items.push('</div>') |
|
} |
|
if(typeof val.electronic_holdings !== 'undefined'){ |
|
items.push('<div class="evergreen-holdings">'); |
|
jQuery.each(val.electronic_holdings, function(key2, val2){ |
|
roblibEvergreenAddElectronicHoldings(val2, items); |
|
}) |
|
items.push('</div>') |
|
} |
|
items.push('</div>'); |
|
}); |
|
jQuery('#roblib-search-content-evergreen').empty().append(items.join('')); |
|
qtipify(divs, content, 'More Info'); |
|
} |
|
|
|
jQuery('#roblib-search-evergreen-more').empty().append('<a href = "' + data.catalogBaseSearchUrl + '">See all ' + data.numberOfRecords + ' results</a>'); |
|
}); |
|
} |
|
|
|
} |
|
|
|
function populatePopupDivs(content, val, counter){ |
|
content[counter] = ''; |
|
var placeOfPublication = ''; |
|
if(typeof val.pop !== 'undefined'){ |
|
content[counter] += '<div class="evergreen-publisher">Publisher: ' + val.pop ; |
|
placeOfPublication = '</div>'; |
|
} |
|
if(typeof val.pop !== 'undefined' ){ |
|
placeOfPublication = val.publisher + ' ' +placeOfPublication; |
|
} |
|
content[counter] += placeOfPublication; |
|
|
|
if(typeof val.numofpages !== 'undefined'){ |
|
content[counter] += '<div class="evergreen-nop">Number of Pages: ' + val.numofpages +'</div>'; |
|
} |
|
if(typeof val.date !== 'undefined'){ |
|
content[counter] += '<div class="evergreen-popup-date">Publication Year: ' + val.date +'</div>'; |
|
} |
|
var subjects = ''; |
|
if(typeof val.subjectsa !== 'undefined'){ |
|
subjects += val.subjectsa; |
|
} |
|
if(typeof val.subjectsb !== 'undefined'){ |
|
subjects += ' ' + val.subjectsb; |
|
} |
|
if(typeof val.subjectsc !== 'undefined'){ |
|
subjects += ' ' + val.subjectsc; |
|
} |
|
if(subjects){ |
|
content[counter] += '<div class="evergreen-subjects">Subjects: ' + subjects + '</div>'; |
|
} |
|
|
|
|
|
} |
|
|
|
function roblibEvergreenAddHoldings(holdings, items){ |
|
items.push('<div class="evergreen-holdings-item">' + holdings.call_number + ' - ' + holdings.location +' (' + holdings.availability + ')</div>'); |
|
} |
|
function roblibEvergreenAddElectronicHoldings(holdings, items){ |
|
items.push('<div class="evergreen-holdings-item"><a href="' + holdings.url + '">' + holdings.label + '</div>'); |
|
} |
|
|
|
|
|
|