+ function addNewNoteMarker(latlng) {
+ if (newNoteMarker) map.removeLayer(newNoteMarker);
+
+ newNoteMarker = L.marker(latlng, {
+ icon: noteIcons.new,
+ opacity: 0.9,
+ draggable: true
+ });
+
+ newNoteMarker.on("dragstart dragend", function (a) {
+ removeHalo();
+ if (a.type === "dragend") {
+ addHalo(newNoteMarker.getLatLng());
+ }
+ });
+
+ newNoteMarker.addTo(map);
+ addHalo(newNoteMarker.getLatLng());
+
+ newNoteMarker.on("dragend", function () {
+ content.find("textarea").focus();
+ });
+ }
+
+ function removeNewNoteMarker() {
+ removeHalo();
+ if (newNoteMarker) map.removeLayer(newNoteMarker);
+ newNoteMarker = null;
+ }
+
+ 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);
+ }
+