# HG changeset patch # User hertzhaft # Date 1333497553 -7200 # Node ID a45894a81e40cca2e9b083deaa9c66664072146a # Parent 555f6f0d6be5b123e3520739d74c19efb32dbe14 #26: minor enhancements for the regions plugin diff -r 555f6f0d6be5 -r a45894a81e40 webapp/src/main/webapp/jquery/img/fullscreen/delallregions.png Binary file webapp/src/main/webapp/jquery/img/fullscreen/delallregions.png has changed diff -r 555f6f0d6be5 -r a45894a81e40 webapp/src/main/webapp/jquery/jquery.digilib.css --- a/webapp/src/main/webapp/jquery/jquery.digilib.css Mon Apr 02 08:19:21 2012 +0200 +++ b/webapp/src/main/webapp/jquery/jquery.digilib.css Wed Apr 04 01:59:13 2012 +0200 @@ -83,9 +83,9 @@ div.dl-digilib div.dl-region:hover { background-color: transparent; border: 2px solid red; - /* opacity: 0.5; */ + opacity: 0.6; /* do we still need this IE6-stuff? */ - filter:progid:DXImageTransform.Microsoft.Alpha(opacity=50); + filter:progid:DXImageTransform.Microsoft.Alpha(opacity=60); } div.dl-digilib div.dl-region a.dl-regionnumber { diff -r 555f6f0d6be5 -r a45894a81e40 webapp/src/main/webapp/jquery/jquery.digilib.regions.js --- a/webapp/src/main/webapp/jquery/jquery.digilib.regions.js Mon Apr 02 08:19:21 2012 +0200 +++ b/webapp/src/main/webapp/jquery/jquery.digilib.regions.js Wed Apr 04 01:59:13 2012 +0200 @@ -11,6 +11,20 @@ +According to the HTML specs, "area" and "a" elements are allowed inside of a "map". +Both can have a "coords" attribute, but "area" elements can't contain child nodes. +To have regions with content use "a" tags, e.g. + + + + MPI fuer Wissenschaftsgeschichte + + + Bibliotheca Hertziana + + + + */ (function($) { @@ -37,6 +51,11 @@ tooltip : "delete the last region", icon : "delregion.png" }, + delallregions : { + onclick : "removeAllRegions", + tooltip : "delete all regions", + icon : "delallregions.png" + }, regions : { onclick : "toggleRegions", tooltip : "show or hide regions", @@ -62,10 +81,10 @@ 'autoZoomRegionLinks' : false, // use full region as klickable link (instead of only number and text) 'fullRegionLinks' : false, - // css selector for area elements (should additionally be marked with class "keep") - 'regionContentSelector' : 'map.dl-regioncontent area', + // css selector for area elements (must also be marked with class "dl-keep") + 'htmlRegionsSelector' : 'map.dl-regioncontent area, map.dl-regioncontent a', // buttonset of this plugin - 'regionSet' : ['regions', 'addregion', 'delregion', 'regioninfo', 'lessoptions'], + 'regionSet' : ['regions', 'addregion', 'delregion', 'delallregions', 'regioninfo', 'lessoptions'], // url param for regions 'rg' : null }; @@ -152,6 +171,19 @@ redisplay(data); }, + // remove the last added region + removeAllRegions : function (data) { + if (!data.settings.isRegionVisible) { + alert("Please turn on regions visibility!"); + return; + } + var cssPrefix = data.settings.cssPrefix; + var $regions = data.$elem.find('div.'+cssPrefix+'region'); + $regions.remove(); + data.regions = []; + redisplay(data); + }, + // show/hide regions toggleRegions : function (data) { var show = !data.settings.isRegionVisible; @@ -222,7 +254,8 @@ var $infoDiv = $('
'); $infoDiv.append($('
').text('')); $.each(data.regions, function(index, r) { - var area = [ + if (r.fromHtml) return; + var area = [ fn.cropFloatStr(r.x), fn.cropFloatStr(r.y), fn.cropFloatStr(r.width), @@ -238,6 +271,7 @@ var cssPrefix = data.settings.cssPrefix; var $infoDiv = $('
'); $.each(data.regions, function(index, r) { + if (r.fromHtml) return; var area = [ fn.cropFloatStr(r.x), fn.cropFloatStr(r.y), @@ -253,6 +287,7 @@ var cssPrefix = data.settings.cssPrefix; var $infoDiv = $('
'); $.each(data.regions, function(index, r) { + if (r.fromHtml) return; var area = [ fn.cropFloatStr(r.x), fn.cropFloatStr(r.y), @@ -267,6 +302,7 @@ var cssPrefix = data.settings.cssPrefix; var $infoDiv = $('
'); $.each(data.regions, function(index, r) { + if (r.fromHtml) return; var area = r.toString(); $infoDiv.append($('
').text(area)); }); @@ -343,7 +379,7 @@ var createRegionsFromHTML = function (data) { var regions = data.regions; // regions are defined in "area" tags - var $content = data.$elem.find(data.settings.regionContentSelector); + var $content = data.$elem.find(data.settings.htmlRegionsSelector); console.debug("createRegionsFromHTML. elems: ", $content); $content.each(function(index, a) { var $a = $(a); @@ -391,10 +427,10 @@ } var regionRect = region.copy(); var show = data.settings.isRegionVisible; - if (show && zoomArea.overlapsRect(regionRect)) { + if (show && zoomArea.overlapsRect(regionRect) && !regionRect.containsRect(zoomArea)) { regionRect.clipTo(zoomArea); var screenRect = data.imgTrafo.transform(regionRect); - console.debug("renderRegion: pos=",geom.position(screenRect)); + // console.debug("renderRegion: pos=",geom.position(screenRect)); if (anim) { $regionDiv.fadeIn(); } else{ diff -r 555f6f0d6be5 -r a45894a81e40 webapp/src/main/webapp/jquery/test-regions.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/webapp/src/main/webapp/jquery/test-regions.html Wed Apr 04 01:59:13 2012 +0200 @@ -0,0 +1,74 @@ + + + + + + Digilib: Regions plugin test + + + + + + + + + + + + + + + + + + + + + + +
+

digilib doesn't work! Please switch on Javascript or notify the server administrator!

+ + + + + + + + + + + + + + + + + + + + + + + Testing an a tag with content + +
+ + +