]> git.openstreetmap.org Git - rails.git/blobdiff - app/assets/javascripts/edit/id.js.erb
Replace qs with URLSearchParams
[rails.git] / app / assets / javascripts / edit / id.js.erb
index 2ce8974f5d0decd3d55bbfe5fb74bd270d184517..3c8b657cab6771824a34af5ca9961b2fd95e8896 100644 (file)
@@ -1,41 +1,49 @@
 $(document).ready(function () {
   var id = $("#id-embed");
 
-  if (id.data("key")) {
-    var hashParams = OSM.params(location.hash.substring(1));
+  if (id.data("configured") === true) {
+    var hash = location.hash.substring(1);
+    var hashParams = hash ? OSM.params(hash) : {};
     var mapParams = OSM.mapParams();
-    var params = {};
+    var params = new URLSearchParams();
 
     if (mapParams.object) {
-      params.id = mapParams.object.type[0] + mapParams.object.id;
+      params.set("id", mapParams.object.type + "/" + mapParams.object.id);
       mapParams = OSM.parseHash(location.hash);
       if (mapParams.center) {
-        params.map = mapParams.zoom + '/' + mapParams.center.lat + '/' + mapParams.center.lng;
+        params.set("map", mapParams.zoom + "/" + mapParams.center.lat + "/" + mapParams.center.lng);
       }
     } else if (id.data("lat") && id.data("lon")) {
-      params.map = "16/" + id.data("lat") + "/" + id.data("lon");
+      params.set("map", "16/" + id.data("lat") + "/" + id.data("lon"));
     } else {
-      params.map = (mapParams.zoom || 17) + '/' + mapParams.lat + '/' + mapParams.lon;
+      params.set("map", (mapParams.zoom || 17) + "/" + mapParams.lat + "/" + mapParams.lon);
     }
 
-    if (hashParams.background) params.background = hashParams.background;
-    if (hashParams.comment) params.comment = hashParams.comment;
-    if (hashParams.hashtags) params.hashtags = hashParams.hashtags;
-    if (hashParams.source) params.source = hashParams.source;
-    if (hashParams.disable_features) params.disable_features = hashParams.disable_features;
-    if (hashParams.offset) params.offset = hashParams.offset;
-    if (hashParams.walkthrough) params.walkthrough = hashParams.walkthrough;
-    if (hashParams.locale) params.locale = hashParams.locale;
-    if (hashParams.maprules) params.maprules = hashParams.maprules;
-    if (hashParams.presets) params.presets = hashParams.presets;
+    if (hashParams.background) params.set("background", hashParams.background);
+    if (hashParams.comment) params.set("comment", hashParams.comment);
+    if (hashParams.disable_features) params.set("disable_features", hashParams.disable_features);
+    if (hashParams.hashtags) params.set("hashtags", hashParams.hashtags);
+    if (hashParams.locale) params.set("locale", hashParams.locale);
+    if (hashParams.maprules) params.set("maprules", hashParams.maprules);
+    if (hashParams.offset) params.set("offset", hashParams.offset);
+    if (hashParams.photo) params.set("photo", hashParams.photo);
+    if (hashParams.photo_dates) params.set("photo_dates", hashParams.photo_dates);
+    if (hashParams.photo_overlay) params.set("photo_overlay", hashParams.photo_overlay);
+    if (hashParams.photo_username) params.set("photo_username", hashParams.photo_username);
+    if (hashParams.presets) params.set("presets", hashParams.presets);
+    if (hashParams.source) params.set("source", hashParams.source);
+    if (hashParams.validationDisable) params.set("validationDisable", hashParams.validationDisable);
+    if (hashParams.validationWarning) params.set("validationWarning", hashParams.validationWarning);
+    if (hashParams.validationError) params.set("validationError", hashParams.validationError);
+    if (hashParams.walkthrough) params.set("walkthrough", hashParams.walkthrough);
 
     if (id.data("gpx")) {
-      params.gpx = id.data("gpx");
+      params.set("gpx", id.data("gpx"));
     } else if (hashParams.gpx) {
-      params.gpx = hashParams.gpx;
+      params.set("gpx", hashParams.gpx);
     }
 
-    id.attr("src", id.data("url") + "#" + querystring.stringify(params));
+    id.attr("src", id.data("url") + "#" + params);
   } else {
     alert(I18n.t("site.edit.id_not_configured"));
   }