-OSM.NewNote = function(map) {
+//= require qs/dist/qs
+
+OSM.NewNote = function (map) {
var noteLayer = map.noteLayer,
- content = $("#sidebar_content"),
- page = {},
- addNoteButton = $(".control-note .control-button"),
- newNote,
- halo;
+ content = $("#sidebar_content"),
+ page = {},
+ addNoteButton = $(".control-note .control-button"),
+ newNote,
+ halo;
var noteIcons = {
"new": L.icon({
};
function newHalo(loc, a) {
- if (a === "dragstart" && map.hasLayer(halo)) {
+ var hasHalo = halo && map.hasLayer(halo);
+
+ if (a === "dragstart" && hasHalo) {
map.removeLayer(halo);
} else {
- if (map.hasLayer(halo)) map.removeLayer(halo);
+ if (hasHalo) map.removeLayer(halo);
halo = L.circleMarker(loc, {
weight: 2.5,
map.addLayer(noteLayer);
- var params = querystring.parse(path.substring(path.indexOf("?") + 1));
+ var params = Qs.parse(path.substring(path.indexOf("?") + 1));
var markerLatlng;
if (params.lat && params.lon) {
draggable: true
});
- newNote.on("dragstart dragend", function(a) {
+ newNote.on("dragstart dragend", function (a) {
newHalo(newNote.getLatLng(), a.type);
});
newNote.on("remove", function () {
addNoteButton.removeClass("active");
- }).on("dragstart",function () {
+ }).on("dragstart", function () {
$(newNote).stopTime("removenote");
}).on("dragend", function () {
content.find("textarea").focus();
};
page.unload = function () {
- noteLayer.removeLayer(newNote);
- map.removeLayer(halo);
+ if (newNote) noteLayer.removeLayer(newNote);
+ if (halo) map.removeLayer(halo);
addNoteButton.removeClass("active");
};