[Koha-patches] [PATCH] Bug-7161 Open Library - Larger image, Read, borrow and checked-out status

Amit Gupta amit.gupta at osslabs.biz
Sat Nov 5 09:29:08 CET 2011


---
 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 = '<a href="' + ebook["read_url"] + '">' + '<img  src="' + buttons["full access"] + '"/></a>';
+           }
+           if (ebook["availability"] == "borrow") {
+		if(ebook.checkedout) {
+               	    result = '<a href="' + ebook["borrow_url"] + '">' + '<img  src="' + buttons["checkedout"] + '"/></a>';
+		} else { 
+                    result = '<a href="' + ebook["borrow_url"] + '">' + '<img  src="' + buttons["lendable"] + '"/></a>';
+                }
+           }                
+       }
+   }
+   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 <div
      * and link to preview if div id is gbs-thumbnail-preview
      */
     olCallBack: function(booksInfo) {
-       for (id in booksInfo) {
-          var book = booksInfo[id];
-          var isbn = book.bib_key.substring(5);
-          
-          $("."+isbn).each(function() {
-              var a = document.createElement("a");
-              a.href = book.info_url;
-				      if (typeof(book.thumbnail_url) != "undefined") {
-	               	var img = document.createElement("img");
-	                img.src = book.thumbnail_url;
-					        $(this).append(img);
-                  var re = /^openlibrary-thumbnail-preview/;
-                  if ( re.exec($(this).attr("id")) ) {
-                      $(this).append(
-                        '<div style="margin-bottom:5px; margin-top:-5px;font-size:9px">' +
-                        '<a href="' + 
-                        book.info_url + 
-                        '">Preview</a></div>' 
-                      );
-                  }
-		     		} 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(
+                       '<div class="results_summary">' + '<a href="' + book.url + '">Preview</a></div>'
+                   );
+                $(this).append(
+                       '<div class="results_summary">' +ebook+'</div>'
+                   );
+               } 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.3.4



More information about the Koha-patches mailing list