]> git.openstreetmap.org Git - rails.git/blobdiff - app/assets/javascripts/application.js
Simplify sidebar/resize
[rails.git] / app / assets / javascripts / application.js
index a7548e7f9cbff9a7175a431bd0912ae0394aef2e..336d3eab0b1689b3c04409f05cffa6263bb246a6 100644 (file)
@@ -5,6 +5,7 @@
 //= require augment
 //= require leaflet
 //= require leaflet.osm
+//= require leaflet.zoom
 //= require leaflet.extend
 //= require leaflet.locationfilter
 //= require i18n/translations
@@ -15,7 +16,6 @@
 //= require menu
 //= require sidebar
 //= require richtext
-//= require resize
 //= require geocoder
 //= require querystring
 
@@ -114,14 +114,29 @@ function updatelinks(loc, zoom, layers, bounds, object) {
   }
 }
 
+function minZoomAlert() {
+    alert(I18n.t("javascripts.site." + name + "_zoom_alert")); return false;
+}
+
 function getShortUrl(map) {
   return (window.location.hostname.match(/^www\.openstreetmap\.org/i) ?
-          'http://osm.org/go/' : '/go/') +
+          'http://osm.org/go/' : 'http://' + window.location.hostname + '/go/') +
           makeShortCode(map);
 }
 
-function minZoomAlert() {
-    alert(I18n.t("javascripts.site." + name + "_zoom_alert")); return false;
+function getUrl(map) {
+  var center = map.getCenter(),
+      zoom = map.getZoom(),
+      toZoom = zoomPrecision(zoom);
+
+  return (window.location.hostname.match(/^www\.openstreetmap\.org/i) ?
+          'http://openstreetmap.org/?' : 'http://' + window.location.hostname + '/?') +
+        querystring.stringify({
+            lat: toZoom(center.lat),
+            lon: toZoom(center.lng),
+            zoom: zoom,
+            layers: map.getLayersCode()
+        });
 }
 
 // Called to create a short code for the short link.
@@ -162,6 +177,12 @@ function makeShortCode(map) {
     return str;
 }
 
+// generate a cookie-safe string of map state
+function cookieContent(map) {
+  var center = map.getCenter().wrap();
+  return [center.lng, center.lat, map.getZoom(), map.getLayersCode()].join('|');
+}
+
 /*
  * Forms which have been cached by rails may have the wrong
  * authenticity token, so patch up any forms with the correct