Stop creating a shared global querystring variable
[rails.git] / app / assets / javascripts / edit / id.js.erb
1 //= require querystring
2
3 $(document).ready(function () {
4   var querystring = require("querystring-component");
5   var id = $("#id-embed");
6
7   if (id.data("key")) {
8     var hashParams = OSM.params(location.hash.substring(1));
9     var mapParams = OSM.mapParams();
10     var params = {};
11
12     if (mapParams.object) {
13       params.id = mapParams.object.type[0] + mapParams.object.id;
14       mapParams = OSM.parseHash(location.hash);
15       if (mapParams.center) {
16         params.map = mapParams.zoom + '/' + mapParams.center.lat + '/' + mapParams.center.lng;
17       }
18     } else if (id.data("lat") && id.data("lon")) {
19       params.map = "16/" + id.data("lat") + "/" + id.data("lon");
20     } else {
21       params.map = (mapParams.zoom || 17) + '/' + mapParams.lat + '/' + mapParams.lon;
22     }
23
24     if (hashParams.background) params.background = hashParams.background;
25     if (hashParams.comment) params.comment = hashParams.comment;
26     if (hashParams.disable_features) params.disable_features = hashParams.disable_features;
27     if (hashParams.hashtags) params.hashtags = hashParams.hashtags;
28     if (hashParams.locale) params.locale = hashParams.locale;
29     if (hashParams.maprules) params.maprules = hashParams.maprules;
30     if (hashParams.offset) params.offset = hashParams.offset;
31     if (hashParams.photo_overlay) params.photo_overlay = hashParams.photo_overlay;
32     if (hashParams.presets) params.presets = hashParams.presets;
33     if (hashParams.source) params.source = hashParams.source;
34     if (hashParams.walkthrough) params.walkthrough = hashParams.walkthrough;
35
36     if (id.data("gpx")) {
37       params.gpx = id.data("gpx");
38     } else if (hashParams.gpx) {
39       params.gpx = hashParams.gpx;
40     }
41
42     id.attr("src", id.data("url") + "#" + querystring.stringify(params));
43   } else {
44     alert(I18n.t("site.edit.id_not_configured"));
45   }
46 });