changeset 1172:d4affe13568c

fix bugs #33 (image jumping in embedded mode) and #32 (option to not save state in cookie).
author robcast
date Tue, 02 Apr 2013 10:34:15 +0200
parents ac3719dc46ff
children 4eb69ffb8a78
files webapp/src/main/webapp/jquery/jquery.digilib.js
diffstat 1 files changed, 14 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/webapp/src/main/webapp/jquery/jquery.digilib.js	Sun Mar 31 11:47:24 2013 +0200
+++ b/webapp/src/main/webapp/jquery/jquery.digilib.js	Tue Apr 02 10:34:15 2013 +0200
@@ -42,7 +42,7 @@
 
     var defaults = {
         // version of this script
-        'version' : 'jquery.digilib.js 2.1.12',
+        'version' : 'jquery.digilib.js 2.1.13',
         // logo url
         'logoUrl' : 'img/digilib-logo-text1.png',
         // homepage url (behind logo)
@@ -88,6 +88,8 @@
         // fullscreen = take parameters from page URL, keep state in page URL
         // embedded = take parameters from Javascript options, keep state inside object 
         'interactionMode' : 'fullscreen',
+        // save digilib state in cookie for embedded mode
+        'saveStateInCookie' : true,
         // default size of preview image for drag-scroll (preferrably same as Bird's Eye View image)
         'previewImgWidth' : 200,
         'previewImgHeight' : 200,
@@ -154,7 +156,7 @@
                         params = queryParams;
                     } else {
                         params = parseImgParams($elem);
-                        if ($.cookie) {
+                        if ($.cookie && settings.saveStateInCookie) {
                             // retrieve params from cookie
                             var ck = "digilib-embed:fn:" + escape(params.fn) + ":pn:" + (params.pn || '1');
                             var cs = $.cookie(ck);
@@ -859,7 +861,7 @@
                 $.cookie(ck, clop);
                 }
         }
-        if (settings.interactionMode !== 'fullscreen' && $.cookie) {
+        if (settings.interactionMode !== 'fullscreen' && $.cookie && settings.saveStateInCookie) {
             // store normal parameters in cookie for embedded mode
             var qs = getParamString(settings, settings.digilibParamNames, defaults);
             var ck = "digilib-embed:fn:" + escape(settings.fn) + ":pn:" + settings.pn;
@@ -954,14 +956,21 @@
             var $img = data.$img;
             var url = getScalerUrl(data);
             $img.attr('src', url);
-            // trigger load event if image is cached
-            if ($img.prop('complete')) $img.trigger('load');
+            // trigger load event if image is cached. Doesn't work with Firefox!!
+            if (data.hasCachedComplete && $img.prop('complete')) {
+                console.debug("cached img.load");
+                $img.trigger('load');
+            }
             if (data.scalerFlags.clip != null || data.scalerFlags.osize != null) {
                 // we need image info, do we have it?
                 if (data.imgInfo == null) {
                     loadImageInfo(data);
                 }
             }
+            // update if we have a preview
+            if (data.hasPreviewBg) {
+                $(data).trigger('update');
+            }
             //FIXME: highlightButtons(data);
             // send event
             $(data).trigger('redisplay');