# HG changeset patch # User robcast # Date 1298054769 -3600 # Node ID 6914ddedaca78d30a86d6ea9ec48902ea1b1b672 # Parent 6aa9908303f17bca4e08b4e2ecde146823db9877 loadImageInfo sends event when loaded. diff -r 6aa9908303f1 -r 6914ddedaca7 client/digitallibrary/jquery/jquery.digilib.js --- a/client/digitallibrary/jquery/jquery.digilib.js Fri Feb 18 19:18:14 2011 +0100 +++ b/client/digitallibrary/jquery/jquery.digilib.js Fri Feb 18 19:46:09 2011 +0100 @@ -25,7 +25,7 @@ */ // fallback for console.log calls -if (typeof(console) === 'undefined') { +if (typeof console === 'undefined') { var console = { log : function(){}, debug : function(){}, @@ -357,7 +357,8 @@ } // get image info from server if needed if (data.scaleMode === 'pixel' || data.scaleMode === 'size') { - loadImageInfo(data, updateDisplay); // updateDisplay(data) on completion + $(data).bind('imageInfo', handleImageInfo); + loadImageInfo(data); // triggers "imageInfo" on completion } // create buttons before scaler for (var i = 0; i < elemSettings.visibleButtonSets; ++i) { @@ -722,8 +723,8 @@ return settings.digilibBaseUrl + '?' + queryString; }; - // loads image information from digilib server via HTTP (and calls complete-fn) - var loadImageInfo = function (data, complete) { + // loads image information from digilib server via HTTP + var loadImageInfo = function (data) { var settings = data.settings; var p = settings.scalerBaseUrl.indexOf('/servlet/Scaler'); var url = settings.scalerBaseUrl.substring(0, p) + '/ImgInfo-json.jsp'; @@ -732,9 +733,8 @@ $.getJSON(url, function (json) { console.debug("got json data=", json); data.imgInfo = json; - if (complete != null) { - complete.call(this, data, json); - } + // send event + $(data).trigger('imageInfo', [json]); }); }; @@ -1205,7 +1205,7 @@ } }; - // returns function for load event of scaler img + // returns handler for load event of scaler img var scalerImgLoadedHandler = function (data) { return function () { var $img = $(this); @@ -1222,6 +1222,12 @@ }; }; + // handler for imageInfo loaded event + var handleImageInfo = function (evt, json) { + var data = this; + updateDisplay(data); + }; + // place marks on the image var renderMarks = function (data) { if (data.$img == null || data.imgTrafo == null) return;