Mercurial > hg > digilib
diff client/digitallibrary/jquery/jquery.digilib.js @ 602:c6f62be59683 jquery
start work on scaler call
author | robcast |
---|---|
date | Fri, 14 Jan 2011 13:38:36 +0100 |
parents | 4da7592149e7 |
children | e92511f4dddc |
line wrap: on
line diff
--- a/client/digitallibrary/jquery/jquery.digilib.js Fri Jan 14 11:23:56 2011 +0100 +++ b/client/digitallibrary/jquery/jquery.digilib.js Fri Jan 14 13:38:36 2011 +0100 @@ -9,9 +9,8 @@ // base URL to Scaler servlet 'scalerBaseUrl' : 'http://digilib.mpiwg-berlin.mpg.de/digitallibrary/servlet/Scaler', // list of Scaler parameters - 'scalerParamNames' : ['fn','pn','dw','dh','ww','wh','wx','wy','ws','mo'], - // digilib image path - 'fn' : '', + 'scalerParamNames' : ['fn','pn','dw','dh','ww','wh','wx','wy','ws','mo', + 'rot','cont','brgt','rgbm','rgba','ddpi','ddpix','ddpiy'], // mode of operation. // fullscreen: takes parameters from page URL, keeps state in page URL // embedded: takes parameters from Javascript options, keeps state inside object @@ -81,7 +80,7 @@ var query = (pos < 0) ? '' : src.substring(pos + 1); var scalerUrl = src.substring(0, pos); var hash = parseQueryString(query); - hash.scalerUrl = scalerUrl; + hash.scalerBaseUrl = scalerUrl; // console.log(hash); return hash; }; @@ -101,18 +100,54 @@ // returns URL and query string for Scaler var getScalerString = function (settings) { - var url = settings.scalerUrl; - + var url = settings.scalerBaseUrl + '?'; + var i, parm, latter; + // go through param names and get values from settings + for (i = 0; i < settings.scalerParamNames.length; ++i) { + parm = settings.scalerParamNames[i]; + if (settings[parm]) { + // first parm gets no '&' + url += latter ? '&' : ''; + latter = 1; + // add parm=val + url += parm + '=' + settings[parm]; + } + } + return url; + }; + + // returns maximum size for scaler img in fullscreen mode + var getFullscreenImgSize = function($elem) { + var winH = $(window).height(); + var winW = $(window).width(); + // TODO: account for borders? + return geom.size(winW, winH); }; // creates HTML structure for digilib in elem var setupScalerDiv = function ($elem, settings) { if (settings.interactionMode === 'fullscreen') { - // fullscreen -- create new + // fullscreen + var imgSize = getFullscreenImgSize($elem); + settings.dw = imgSize.width; + settings.dh = imgSize.height; + // create new html $elem.empty(); // TODO: should we keep stuff for customization? + var scalerUrl = getScalerString(settings); var scalerHTML = '<div class="scaler"><img class="pic"/></div>'; - $elem.add(scalerHTML); - + $elem.append(scalerHTML); + var $img = $elem.find("img.pic"); + $img.attr('src', scalerUrl); + //$img.load(scalerImgLoaded); + } else { + // embedded mode -- keep inner img + var $img = $elem.detach('img'); + $elem.empty(); // TODO: should we keep stuff for customization? + $img.addClass('pic'); + var $scaler = $('<div class="scaler"/>'); + $scaler.append($img); + $elem.append($scaler); + //$img.load(scalerImgLoaded); } };