$(document).ready(function () {
- var id = $("#id-embed");
+ const id = $("#id-embed");
- if (id.data("key")) {
- var hashParams = OSM.params(location.hash.substring(1));
- var mapParams = OSM.mapParams();
- var params = {};
-
- if (mapParams.object) {
- params.id = mapParams.object.type[0] + mapParams.object.id;
- mapParams = OSM.parseHash(location.hash);
- if (mapParams.center) {
- params.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");
- } else {
- params.map = (mapParams.zoom || 17) + '/' + mapParams.lat + '/' + mapParams.lon;
- }
+ if (id.data("configured") === false) {
+ // eslint-disable-next-line no-alert
+ alert(I18n.t("site.edit.id_not_configured"));
+ return;
+ }
- if (hashParams.background) params.background = hashParams.background;
- if (hashParams.comment) params.comment = hashParams.comment;
- if (hashParams.disable_features) params.disable_features = hashParams.disable_features;
- if (hashParams.hashtags) params.hashtags = hashParams.hashtags;
- if (hashParams.locale) params.locale = hashParams.locale;
- if (hashParams.maprules) params.maprules = hashParams.maprules;
- if (hashParams.offset) params.offset = hashParams.offset;
- if (hashParams.photo_overlay) params.photo_overlay = hashParams.photo_overlay;
- if (hashParams.presets) params.presets = hashParams.presets;
- if (hashParams.source) params.source = hashParams.source;
- if (hashParams.walkthrough) params.walkthrough = hashParams.walkthrough;
+ const hash = location.hash.substring(1);
+ const hashParams = hash ? OSM.params(hash) : {};
+ const hashArgs = OSM.parseHash(location.hash);
+ const mapParams = OSM.mapParams();
+ const params = new URLSearchParams();
- if (id.data("gpx")) {
- params.gpx = id.data("gpx");
- } else if (hashParams.gpx) {
- params.gpx = hashParams.gpx;
+ if (mapParams.object) {
+ params.set("id", mapParams.object.type + "/" + mapParams.object.id);
+ if (hashArgs.center) {
+ params.set("map", hashArgs.zoom + "/" + hashArgs.center.lat + "/" + hashArgs.center.lng);
}
-
- id.attr("src", id.data("url") + "#" + qs.stringify(params));
+ } else if (id.data("lat") && id.data("lon")) {
+ params.set("map", "16/" + id.data("lat") + "/" + id.data("lon"));
} else {
- alert(I18n.t("site.edit.id_not_configured"));
+ params.set("map", (mapParams.zoom || 17) + "/" + mapParams.lat + "/" + mapParams.lon);
}
+
+ const passThroughKeys = ["background", "comment", "disable_features", "gpx", "hashtags", "locale", "maprules", "notes", "offset", "photo", "photo_dates", "photo_overlay", "photo_username", "presets", "source", "validationDisable", "validationWarning", "validationError", "walkthrough"];
+ for (const key of passThroughKeys) {
+ if (hashParams[key]) params.set(key, hashParams[key]);
+ }
+
+ if (mapParams.layers.includes("N")) params.set("notes", "true");
+
+ if (id.data("gpx")) params.set("gpx", id.data("gpx"));
+
+ id.attr("src", id.data("url") + "#" + params);
});