Owen Leonard
afa51869c3
This patch modifies the JavaScript which embeds local cover images in staff client catalog search results. It now adds the "thumbail" class to the image, matching Amazon cover images. To test you should have one or more titles with local cover images attached. Apply the patch and clear your browser cache if necessary. Enable both the AmazonCoverImages and LocalCoverImages system preferences and perform a search which will return titles with local cover images. Confirm that local covers are styled like Amazon covers. Tested and confirmed local cover images are appearing quite nicely now. Signed-off-by: Dilan Johnpullé <dilan@calyx.net.au> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
89 lines
3.6 KiB
JavaScript
89 lines
3.6 KiB
JavaScript
if (typeof KOHA == "undefined" || !KOHA) {
|
|
var KOHA = {};
|
|
}
|
|
|
|
/**
|
|
* A namespace for local cover related functions.
|
|
*/
|
|
KOHA.LocalCover = {
|
|
|
|
|
|
/**
|
|
* Search all:
|
|
* <div title="biblionumber" id="isbn" class="openlibrary-thumbnail"></div>
|
|
* or
|
|
* <div title="biblionumber" id="isbn" class="openlibrary-thumbnail-preview"></div>
|
|
* and run a search with all collected isbns to Open Library Book Search.
|
|
* The result is asynchronously returned by OpenLibrary and catched by
|
|
* olCallBack().
|
|
*/
|
|
GetCoverFromBibnumber: function(uselink) {
|
|
$("div [id^=local-thumbnail]").each(function(i) {
|
|
var mydiv = this;
|
|
var message = document.createElement("span");
|
|
$(message).attr("class","no-image");
|
|
$(message).html(NO_LOCAL_JACKET);
|
|
$(mydiv).parent().find('.no-image').remove();
|
|
$(mydiv).append(message);
|
|
var img = $("<img />").attr('src',
|
|
'/cgi-bin/koha/catalogue/image.pl?thumbnail=1&biblionumber=' + $(mydiv).attr("class"))
|
|
.load(function () {
|
|
if (!this.complete || typeof this.naturalWidth == "undefined" || this.naturalWidth <= 1) {
|
|
//IE HACK
|
|
try {
|
|
$(mydiv).remove();
|
|
}
|
|
catch(err){
|
|
}
|
|
} else {
|
|
if (uselink) {
|
|
var a = $("<a />").attr('href', '/cgi-bin/koha/catalogue/imageviewer.pl?biblionumber=' + $(mydiv).attr("class"));
|
|
$(a).append(img);
|
|
$(mydiv).append(a);
|
|
} else {
|
|
$(mydiv).append(img);
|
|
}
|
|
$(mydiv).children('.no-image').remove();
|
|
}
|
|
});
|
|
});
|
|
},
|
|
LoadResultsCovers: function(){
|
|
$("div [id^=local-thumbnail]").each(function(i) {
|
|
var mydiv = this;
|
|
var message = document.createElement("span");
|
|
$(message).attr("class","no-image thumbnail");
|
|
$(message).html(NO_LOCAL_JACKET);
|
|
$(mydiv).append(message);
|
|
var img = $("<img />");
|
|
img.attr('src','/cgi-bin/koha/catalogue/image.pl?thumbnail=1&biblionumber=' + $(mydiv).attr("class"))
|
|
.addClass("thumbnail")
|
|
.load(function () {
|
|
if (!this.complete || typeof this.naturalWidth == "undefined" || this.naturalWidth <= 1) {
|
|
//IE HACK
|
|
try {
|
|
var otherCovers = $(mydiv).closest('td').find('img');
|
|
var nbCovers = otherCovers.length;
|
|
if(nbCovers > 0){
|
|
var badCovers = 0;
|
|
otherCovers.each(function(){
|
|
if(this.naturalWidth <= 1){
|
|
$(this).parent().remove();
|
|
badCovers++;
|
|
}
|
|
});
|
|
if(badCovers < nbCovers){
|
|
$(mydiv).parent().remove();
|
|
}
|
|
}
|
|
}
|
|
catch(err){
|
|
}
|
|
} else {
|
|
$(mydiv).append(img);
|
|
$(mydiv).children('.no-image').remove();
|
|
}
|
|
});
|
|
});
|
|
}
|
|
};
|