# HG changeset patch # User robcast # Date 1298480971 -3600 # Node ID ba708c57e57ca12b9264e03fdb77506a22db5388 # Parent f210731dc6cc2d11a5a9727b2aa1cc997c7855c8# Parent f0a5e4d2cba75bcb374ccae5624da0af11c11927 merge from jquery branch f0a5e4d2cba75bcb374ccae5624da0af11c11927 diff -r f210731dc6cc -r ba708c57e57c client/digitallibrary/jquery/jquery-test-full.html --- a/client/digitallibrary/jquery/jquery-test-full.html Wed Feb 23 18:03:27 2011 +0100 +++ b/client/digitallibrary/jquery/jquery-test-full.html Wed Feb 23 18:09:31 2011 +0100 @@ -70,7 +70,9 @@ var opts = { interactionMode : 'fullscreen', scalerBaseUrl : 'http://digilib.biblhertz.it/digilib04/servlet/Scaler', - showRegionNumbers : true + showRegionNumbers : false, + autoRegionLinks : false, + includeRegionContent : true }; var $div = $('div.digilib'); $div.digilib(opts); @@ -83,6 +85,12 @@
+
+ MPI fuer Wissenschaftsgeschichte +
+
+ Bibliotheca Hertziana +
DEBUG
diff -r f210731dc6cc -r ba708c57e57c client/digitallibrary/jquery/jquery.digilib.css --- a/client/digitallibrary/jquery/jquery.digilib.css Wed Feb 23 18:03:27 2011 +0100 +++ b/client/digitallibrary/jquery/jquery.digilib.css Wed Feb 23 18:09:31 2011 +0100 @@ -66,8 +66,9 @@ opacity: 0.5; } -div.regionnumber { +div.regionnumber a { color: white; + text-decoration: none; font-size: 11px; font-weight: bold; height: 15px; @@ -75,6 +76,24 @@ margin: 3px; } +div.regioncontent { + display: none; + padding: 3px; +} + +div.regioncontent a { + color: white; + text-decoration: none; + font-size: 11px; + font-weight: bold; +} + +div.regioninfo { + display: none; + color: white; + background-color: black; +} + /* special definitions for fullscreen */ div.digilib.dl_fullscreen div.buttons { position: fixed; diff -r f210731dc6cc -r ba708c57e57c client/digitallibrary/jquery/jquery.digilib.js --- a/client/digitallibrary/jquery/jquery.digilib.js Wed Feb 23 18:03:27 2011 +0100 +++ b/client/digitallibrary/jquery/jquery.digilib.js Wed Feb 23 18:09:31 2011 +0100 @@ -774,40 +774,50 @@ retrieveOptions(data); }; + // put area into parameters + var packArea = function (settings, area) { + if (!area) return; + // zoom area + settings.wx = cropFloat(area.x); + settings.wy = cropFloat(area.y); + settings.ww = cropFloat(area.width); + settings.wh = cropFloat(area.height); + }; + + // put marks into parameters + var packMarks = function (settings, marks) { + if (!marks) return; + settings.mk = ''; + for (var i = 0; i < marks.length; i++) { + if (i) { + settings.mk += ','; + } + settings.mk += + cropFloatStr(marks[i].x) + '/' + + cropFloatStr(marks[i].y); + } + }; + + // pack scaler flags into parameters + var packScalerFlags = function (settings, flags) { + if (!flags) return; + var mo = ''; + for (var f in flags) { + if (mo) { + mo += ','; + } + mo += f; + } + settings.mo = mo; + }; + // put objects back into parameters var packParams = function (data) { var settings = data.settings; - // zoom area - if (data.zoomArea) { - settings.wx = cropFloat(data.zoomArea.x); - settings.wy = cropFloat(data.zoomArea.y); - settings.ww = cropFloat(data.zoomArea.width); - settings.wh = cropFloat(data.zoomArea.height); - } - // marks - if (data.marks) { - settings.mk = ''; - for (var i = 0; i < data.marks.length; i++) { - if (i) { - settings.mk += ','; - } - settings.mk += - cropFloatStr(data.marks[i].x) + '/' + - cropFloatStr(data.marks[i].y); - } - } - // Scaler flags - if (data.scalerFlags) { - var mo = ''; - for (var f in data.scalerFlags) { - if (mo) { - mo += ','; - } - mo += f; - } - settings.mo = mo; - } - // user interface options + packArea(settings, data.zoomArea); + packMarks(settings, data.marks); + packScalerFlags(settings, data.scalerFlags); + // store user interface options in cookie storeOptions(data); }; @@ -961,8 +971,8 @@ $img = $(''); } } - // create new inner html, keep buttons - $elem.contents(":not(div.buttons)").remove(); + // create new inner html, keeping buttons and content marked with "keep" class + $elem.contents(":not(.keep)").remove(); var $scaler = $('
'); // scaler should be the first child element? $elem.prepend($scaler); @@ -987,7 +997,8 @@ // no buttons here return; } - var $buttonsDiv = $('
'); + // button divs are marked with class "keep" + var $buttonsDiv = $('
'); var buttonNames = buttonSettings[buttonGroup]; for (var i = 0; i < buttonNames.length; i++) { var buttonName = buttonNames[i]; @@ -1588,6 +1599,9 @@ getDigilibUrl : getDigilibUrl, unpackParams : unpackParams, packParams : packParams, + packArea : packArea, + packMarks : packMarks, + packScalerFlags : packScalerFlags, storeOptions : storeOptions, redisplay : redisplay, updateDisplay : updateDisplay, diff -r f210731dc6cc -r ba708c57e57c client/digitallibrary/jquery/jquery.digilib.regions.js --- a/client/digitallibrary/jquery/jquery.digilib.regions.js Wed Feb 23 18:03:27 2011 +0100 +++ b/client/digitallibrary/jquery/jquery.digilib.regions.js Wed Feb 23 18:09:31 2011 +0100 @@ -41,8 +41,8 @@ icon : "regions.png" }, regioninfo : { - onclick : "infoRegions", - tooltip : "information about regions", + onclick : "toggleRegionInfo", + tooltip : "show information about regions", icon : "regioninfo.png" } }; @@ -52,8 +52,16 @@ 'isRegionVisible' : true, // are region numbers shown? 'showRegionNumbers' : false, + // is region info shown? + 'showRegionInfo' : false, + // should digilib look for region content in the page? + 'includeRegionContent' : false, + // turn any region into a clickable link to its detail view + 'autoRegionLinks' : false, + // class name for content divs (must additionally be marked with class "keep") + 'regionContentSelector' : 'div.regioncontent', // buttonset of this plugin - 'regionSet' : ['addregion', 'delregion', 'regions', 'regioninfo', 'lessoptions'], + 'regionSet' : ['regions', 'addregion', 'delregion', 'regioninfo', 'lessoptions'], // url param for regions 'rg' : null, }; @@ -76,8 +84,7 @@ var $overlay = $('
'); $body.append($overlay); bodyRect.adjustDiv($overlay); - // we count regions from 1 - var $regionDiv = addRegionDiv(data, data.regions.length + 1); + var $regionDiv = addRegionDiv(data, data.regions.length); // mousedown handler: start sizing var regionStart = function (evt) { @@ -144,8 +151,21 @@ "toggleRegions" : function (data) { var show = !data.settings.isRegionVisible; data.settings.isRegionVisible = show; - fn.highlightButtons(data, 'regions' , show); - showRegionDivs(data); + fn.highlightButtons(data, 'regions', show); + showRegionDivs(data, 1); + }, + + // show/hide region info + "toggleRegionInfo" : function (data) { + var show = !data.settings.showRegionInfo; + data.settings.showRegionInfo = show; + fn.highlightButtons(data, 'regioninfo', show); + var $info = $('.regioninfo'); + if (show) { + $info.fadeIn(); + } else { + $info.fadeOut(); + } } }; @@ -162,38 +182,80 @@ }; // add a region to data.$elem - var addRegionDiv = function (data, nr) { + var addRegionDiv = function (data, index) { + var nr = index + 1; // we count regions from 1 + // create a digilib URL for this detail + var regionUrl = getRegionUrl(data, index); var $regionDiv = $('