From 5762a53f9f75a85f5a47d667f4b408fa2935454a Mon Sep 17 00:00:00 2001 From: Amit Gupta Date: Sat, 5 Nov 2011 03:36:23 -0400 Subject: [PATCH] Bug-7161 Open Library - Larger image, Read, borrow and checked-out status To test: 1. go into system administration and search for "cover" 2. change "OpenLibraryCovers" to "add" and all other to "don't show" 3. verify that opac search results have small covers, while detail page has big ones 4. (optional) find book which is available for reading (and not borrowed!) on Open Library and change ISBN on one of your books to test Signed-off-by: Dobrica Pavlinusic --- koha-tmpl/opac-tmpl/prog/en/js/openlibrary.js | 113 ++++++++++++++++++------- 1 files changed, 83 insertions(+), 30 deletions(-) diff --git a/koha-tmpl/opac-tmpl/prog/en/js/openlibrary.js b/koha-tmpl/opac-tmpl/prog/en/js/openlibrary.js index 1c62e6c..9727d3e 100644 --- a/koha-tmpl/opac-tmpl/prog/en/js/openlibrary.js +++ b/koha-tmpl/opac-tmpl/prog/en/js/openlibrary.js @@ -2,6 +2,51 @@ if (typeof KOHA == "undefined" || !KOHA) { var KOHA = {}; } +function get_cover(data) { + if (data.cover && data.cover.small) { + return data.cover.small; + } + return "undefined"; +} + +function get_ebook(data) { + var buttons = { + 'full access': + "http://openlibrary.org/images/button-read-open-library.png", + 'lendable': + "http://openlibrary.org/images/button-borrow-open-library.png", + 'checkedout': + "http://openlibrary.org/images/button-checked-out-open-library.png" + }; + + var result = ""; + if (data["ebooks"] != "undefined") { + /* Ebooks are available */ + var ebooks = data["ebooks"]; + for (idx in ebooks) { + var ebook = ebooks[idx]; + if (ebook["availability"] == "full") { + result = '' + ''; + } + if (ebook["availability"] == "borrow") { + if(ebook.checkedout) { + result = '' + ''; + } else { + result = '' + ''; + } + } + } + } + return result; + } + +function keys(d) { + var k = []; + for (var i in d) { + k.push(i); + } + return k; +} /** * A namespace for OpenLibrary related functions. */ @@ -27,44 +72,52 @@ KOHA.OpenLibrary = { scriptElement.setAttribute("id", "jsonScript"); scriptElement.setAttribute("src", "http://openlibrary.org/api/books?bibkeys=" + escape(bibkeys) + - "&callback=KOHA.OpenLibrary.olCallBack"); + "&callback=KOHA.OpenLibrary.olCallBack&jscmd=data"); scriptElement.setAttribute("type", "text/javascript"); document.documentElement.firstChild.appendChild(scriptElement); }, + + /** * Add cover pages
' + - 'Preview
' - ); - } - } else { - var message = document.createElement("span"); - $(message).attr("class","no-image"); - $(message).html(NO_OL_JACKET); - $(this).append(message); - } - }); - } - } + for (id in booksInfo) { + var book = booksInfo[id]; + var isbn = id.substring(5); + $("."+isbn).each(function() { + console.log($(this).attr("id")); + var is_opacdetail = /openlibrary-thumbnail-preview/.exec($(this).attr("id")); + /*console.log([is_opacdetail,this]); + var cover = get_cover(book);*/ + var ebook = get_ebook(book); + var a = document.createElement("a"); + a.href = booksInfo.url; + if (book.cover) { + var img = document.createElement("img"); + if (is_opacdetail) { + img.src = book.cover.medium; + $(this).append(img); + $(this).append( + '
' + 'Preview
' + ); + $(this).append( + '
' +ebook+'
' + ); + } else { + img.src = book.cover.small; + $(this).append(img); + } + } else { + var message = document.createElement("span"); + $(message).attr("class","no-image"); + $(message).html(NO_OL_JACKET); + $(this).append(message); + } + }); + } + } }; -- 1.7.2.5