# HG changeset patch # User hertzhaft # Date 1351378411 -7200 # Node ID ae796bcac7f433319f7caa505196c887427a2bc0 # Parent 214cac7e56286cdac12bca3a8d8b185559cd2fe2 better text search for regions; border-box rox! diff -r 214cac7e5628 -r ae796bcac7f4 webapp/src/main/webapp/jquery/jquery.digilib.css --- a/webapp/src/main/webapp/jquery/jquery.digilib.css Sat Oct 27 00:12:36 2012 +0200 +++ b/webapp/src/main/webapp/jquery/jquery.digilib.css Sun Oct 28 00:53:31 2012 +0200 @@ -3,6 +3,11 @@ * * Martin Raspe, Robert Casties, 11.1.2011 */ +* { + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} div.dl-digilib .dl-disabled { display: none; @@ -135,12 +140,21 @@ display: none; } +div.dl-digilib div.dl-highlightregion { + border: 5px solid orange; + opacity: 0.8; +} + div.dl-digilib div.dl-findregion { background-color: transparent; border: 5px solid orange; opacity: 0.8; } +div.dl-digilib select.dl-finddata { + font-size: 11px; +} + div.dl-digilib #dl-calibration { background: url('img/blue.png'); position: absolute; diff -r 214cac7e5628 -r ae796bcac7f4 webapp/src/main/webapp/jquery/jquery.digilib.regions.js --- a/webapp/src/main/webapp/jquery/jquery.digilib.regions.js Sat Oct 27 00:12:36 2012 +0200 +++ b/webapp/src/main/webapp/jquery/jquery.digilib.regions.js Sun Oct 28 00:53:31 2012 +0200 @@ -40,7 +40,7 @@ */ -(function($) { +(function ($) { // the digilib object var digilib = null; // the normal zoom area @@ -122,6 +122,8 @@ 'rg' : null, // array with region data 'regions' : null, + // function for extracting the sort string (for the region search window) + 'regionSortString' : null, // region attributes to copy from HTML 'regionAttributes' : { 'id' :1, @@ -137,12 +139,12 @@ var actions = { // define a region interactively with two clicked points - defineUserRegion : function(data) { + defineUserRegion : function (data) { if (!data.settings.isRegionVisible) { alert("Please turn on regions visibility!"); return; } - var onComplete = function(data, rect) { + var onComplete = function (data, rect) { if (rect == null) return; var count = getRegions(data, 'regionURL').length; var attr = {'class' : CSS+'regionURL '+CSS+'overlay'}; @@ -156,17 +158,26 @@ fn.defineArea(data, onComplete, CSS+'regionArea'); }, - // remove the last added URL region + // remove all findregions or the last added user-defined region removeUserRegion : function (data) { if (!data.settings.isRegionVisible) { alert("Please turn on regions visibility!"); return; } - var selector = 'div.'+CSS+'regionURL'; - var $regionDiv = data.$elem.find(selector).last(); - if ($regionDiv.length == 0) return; - $regionDiv.remove(); - redisplay(data); + var selector = 'div.'+CSS+'findregion'; + var $regions = data.$elem.find(selector); + if ($regions.length > 0) { + $regions.remove(); + redisplay(data); + return; + } + selector = 'div.'+CSS+'regionURL'; + var $region = data.$elem.find(selector).last(); + if ($region.length > 0) { + $regionDiv.remove(); + redisplay(data); + return; + } }, // remove all manually added regions (defined through URL "rg" parameter) @@ -175,7 +186,7 @@ alert("Please turn on regions visibility!"); return; } - var selector = 'div.'+CSS+'regionURL'; + var selector = 'div.'+CSS+'regionURL, div.'+CSS+'findregion'; var $regionDivs = data.$elem.find(selector); if ($regionDivs.length == 0) return; $regionDivs.remove(); @@ -195,6 +206,8 @@ var $elem = data.$elem; var infoSelector = '#'+CSS+'regionInfo'; if (fn.isOnScreen(data, infoSelector)) return; // already onscreen + var $regions = getRegions(data, 'regionURL'); + if ($regions.length == 0) return; // no user regions available var html = '\