]> git.openstreetmap.org Git - rails.git/blobdiff - app/assets/javascripts/welcome.js
Merge branch 'pull/5631'
[rails.git] / app / assets / javascripts / welcome.js
index 60648383adc10efa3979950848b5ef47c834be2c..77d1d513c3e5ba6f64b8fc24c5429cfdd70be335 100644 (file)
@@ -1,47 +1,40 @@
-$(document).ready(function() {
+$(document).ready(function () {
   var params = OSM.params();
 
   if (params.lat && params.lon) {
-    params.lat = parseFloat(params.lat);
-    params.lon = parseFloat(params.lon);
-    params.zoom = params.zoom || 17;
-
-    var url = '/edit';
-
-    if (params.editor) {
-      url += '?editor=' + params.editor;
-    }
+    var url = "/edit";
 
+    if (params.editor) url += "?editor=" + params.editor;
+    if (!params.zoom) params.zoom = 17;
     url += OSM.formatHash(params);
 
-    $('.start-mapping').attr('href', url);
-
-  } else if (navigator.geolocation) {
-    function geoSuccess(position) {
-      window.location = '/edit' + OSM.formatHash({
-        zoom: 17,
-        lat: position.coords.latitude,
-        lon: position.coords.longitude
-      });
-    }
-
-    function geoError() {
-      $('.start-mapping')
-        .removeClass('loading')
-        .addClass('error');
-    }
-
-    $('.start-mapping').on('click', function(e) {
+    $(".start-mapping").attr("href", url);
+  } else {
+    $(".start-mapping").on("click", function (e) {
       e.preventDefault();
+      $(".start-mapping").addClass("loading");
 
-      $('.start-mapping')
-        .addClass('loading');
+      if (navigator.geolocation) {
+        // handle firefox's weird implementation
+        // https://bugzilla.mozilla.org/show_bug.cgi?id=675533
+        window.setTimeout(manualEdit, 4000);
 
-      // handle firefox's weird implementation
-      // https://bugzilla.mozilla.org/show_bug.cgi?id=675533
-      window.setTimeout(geoError, 4000);
+        navigator.geolocation.getCurrentPosition(geoSuccess, manualEdit);
+      } else {
+        manualEdit();
+      }
+    });
+  }
 
-      navigator.geolocation.getCurrentPosition(geoSuccess, geoError);
+  function geoSuccess(position) {
+    window.location = "/edit" + OSM.formatHash({
+      zoom: 17,
+      lat: position.coords.latitude,
+      lon: position.coords.longitude
     });
   }
+
+  function manualEdit() {
+    window.location = "/?edit_help=1";
+  }
 });