-//= require qs/dist/qs
-
OSM.NewNote = function (map) {
var noteLayer = map.noteLayer,
content = $("#sidebar_content"),
newNoteMarker = null;
}
+ function moveNewNotMarkerToClick(e) {
+ if (newNoteMarker) newNoteMarker.setLatLng(e.latlng);
+ if (halo) halo.setLatLng(e.latlng);
+ content.find("textarea").focus();
+ }
+
function updateControls() {
const zoomedOut = addNoteButton.hasClass("disabled");
const withoutText = content.find("textarea").val() === "";
content.find("#new-note-zoom-warning").prop("hidden", !zoomedOut);
content.find("input[type=submit]").prop("disabled", zoomedOut || withoutText);
+ if (newNoteMarker) newNoteMarker.setOpacity(zoomedOut ? 0.5 : 0.9);
}
page.pushstate = page.popstate = function (path) {
map.addLayer(noteLayer);
- var params = Qs.parse(path.substring(path.indexOf("?") + 1));
+ const params = new URLSearchParams(path.substring(path.indexOf("?")));
var markerLatlng;
- if (params.lat && params.lon) {
- markerLatlng = L.latLng(params.lat, params.lon);
+ if (params.has("lat") && params.has("lon")) {
+ markerLatlng = L.latLng(params.get("lat"), params.get("lon"));
} else {
markerLatlng = map.getCenter();
}
newNoteMarker.dragging.disable();
createNote(location, text, (feature) => {
+ if (typeof OSM.user === "undefined") {
+ var anonymousNotesCount = Number(Cookies.get("_osm_anonymous_notes_count")) || 0;
+ Cookies.set("_osm_anonymous_notes_count", anonymousNotesCount + 1, { secure: true, expires: 30, path: "/", samesite: "lax" });
+ }
content.find("textarea").val("");
addCreatedNoteMarker(feature);
OSM.router.route("/note/" + feature.properties.id);
});
});
+ map.on("click", moveNewNotMarkerToClick);
addNoteButton.on("disabled enabled", updateControls);
updateControls();
};
page.unload = function () {
+ map.off("click", moveNewNotMarkerToClick);
addNoteButton.off("disabled enabled", updateControls);
removeNewNoteMarker();
addNoteButton.removeClass("active");