Koha/koha-tmpl/intranet-tmpl/prog/js/localcovers.js
Owen Leonard afa51869c3 Bug 19511: Local cover images not centered in table column in staff client search results
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>
2018-08-21 12:48:36 +00:00

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();
}
});
});
}
};