summaryrefslogtreecommitdiff
path: root/chimere/static/base.js
diff options
context:
space:
mode:
authoretienne <etienne@9215b0d5-fb2c-4bbd-8d3e-bd2e9090e864>2010-03-07 17:20:04 +0000
committeretienne <etienne@9215b0d5-fb2c-4bbd-8d3e-bd2e9090e864>2010-03-07 17:20:04 +0000
commit7dbdebc6d28415e0d735fdd235909666f125ad4b (patch)
treed4a6fa8920e652e41d42fce1936438f16ee9f66a /chimere/static/base.js
parent7f7c333f114eee34dd089543e84028eb18f448c4 (diff)
downloadChimère-7dbdebc6d28415e0d735fdd235909666f125ad4b.tar.bz2
Chimère-7dbdebc6d28415e0d735fdd235909666f125ad4b.zip
Dynamic management of area with URLs - #84
git-svn-id: http://www.peacefrogs.net/svn/chimere/trunk@69 9215b0d5-fb2c-4bbd-8d3e-bd2e9090e864
Diffstat (limited to 'chimere/static/base.js')
-rw-r--r--chimere/static/base.js22
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;
}