diff options
Diffstat (limited to 'chimere/static/base.js')
| -rw-r--r-- | chimere/static/base.js | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/chimere/static/base.js b/chimere/static/base.js index 3c7c575..449cc0f 100644 --- a/chimere/static/base.js +++ b/chimere/static/base.js @@ -1,5 +1,5 @@ /* base function shared by some pages */ -/* Copyright (C) 2009 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> +/* Copyright (C) 2009-2010 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -17,6 +17,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. See the file COPYING for details. */ +var default_area; +var area_name; + /* show a block panel */ function show(id){ document.getElementById(id).style.display = 'block'; @@ -30,7 +33,9 @@ function hide(id){ function saveExtent() { /* save the current extent in a cookie */ if(!map) return; - document.cookie = "MAP_EXTENT=" + map.getExtent().toArray().join('_') + var extent_key = 'MAP_EXTENT'; + if (area_name){ extent_key = extent_key + '_' + area_name; } + document.cookie = extent_key + "=" + map.getExtent().toArray().join('_') + ';path="/"'; } @@ -38,10 +43,12 @@ function getExtent() { /* get the current extent from a cookie */ var cookies = document.cookie.split(';'); var map_extent; + var extent_key = 'MAP_EXTENT'; + if (area_name){ extent_key = extent_key + '_' + area_name; } for (i in cookies){ var items = cookies[i].split('='); key = items[0].split(' ').join(''); - if (key == 'MAP_EXTENT'){ + if (key == extent_key){ map_extent = items[1].split('_'); } } @@ -51,13 +58,18 @@ function getExtent() { function zoomToCurrentExtent(map){ /* zoom to current extent */ var current_extent = getExtent(); + var extent; if (OpenLayers && current_extent && current_extent.length == 4){ extent = new OpenLayers.Bounds(current_extent[0], current_extent[1], current_extent[2], current_extent[3]); - map.zoomToExtent(extent, true); - return true; + } + else if (OpenLayers && default_area && default_area.length == 4){ + extent = new OpenLayers.Bounds(default_area[1], default_area[0], + default_area[3], default_area[2]); } else{ return; } + map.zoomToExtent(extent, true); + return true; } |
