//= require templates/notes/show
//= require templates/notes/new
-function initializeNotes(map) {
- var params = OSM.mapParams(),
- noteLayer = new L.LayerGroup({code: 'N'}),
+function initializeNotes(map, params) {
+ var noteLayer = map.noteLayer,
notes = {},
newNote;
})
};
- map.noteLayer = noteLayer;
-
map.on("layeradd", function (e) {
if (e.layer == noteLayer) {
loadNotes();
});
if (OSM.STATUS != 'api_offline' && OSM.STATUS != 'database_offline') {
- if (params.notes || params.layers.indexOf('N') >= 0) map.addLayer(noteLayer);
+ if (params.layers.indexOf(noteLayer.options.code) >= 0) {
+ map.addLayer(noteLayer);
+ }
+
if (params.note) {
$.ajax({
url: "/api/" + OSM.API_VERSION + "/notes/" + params.note + ".json",
return content[0];
}
+ var addNoteButton = $(".control-note .control-button");
+
function createNote(marker, form, url) {
var location = marker.getLatLng();
notes[feature.properties.id] = updateMarker(marker, feature);
newNote = null;
- $("#createnoteanchor").removeClass("disabled").addClass("geolink");
+ addNoteButton.removeClass("active").addClass("geolink");
}
}
});
}
- $(".leaflet-control-attribution").on("click", "#createnoteanchor", function (e) {
+ addNoteButton.on("click", function (e) {
e.preventDefault();
+ e.stopPropagation();
- if ($(e.target).hasClass("disabled")) return;
+ if (addNoteButton.hasClass("disabled")) return;
+ if (addNoteButton.hasClass("active")) return;
- $(e.target).removeClass("geolink").addClass("disabled");
+ addNoteButton.removeClass("geolink").addClass("active");
map.addLayer(noteLayer);
draggable: true
});
- var popupContent = $(JST["templates/notes/new"]({
- create_url: $(e.target).attr("href")
- }));
+ var popupContent = $(JST["templates/notes/new"]());
popupContent.find("textarea").on("input", disableWhenBlank);
function disableWhenBlank(e) {
- $(e.target.form).prop("disabled", $(e.target).val() === "");
+ $(e.target.form.add).prop("disabled", $(e.target).val() === "");
}
popupContent.find("input[type=submit]").on("click", function (e) {
e.preventDefault();
- createNote(newNote, e.target.form, $(e.target).data("url"));
+ createNote(newNote, e.target.form, '/api/0.6/notes.json');
});
newNote.addTo(noteLayer).bindPopup(popupContent[0], popupOptions()).openPopup();
newNote.on("remove", function (e) {
- $("#createnoteanchor").removeClass("disabled").addClass("geolink");
+ addNoteButton.removeClass("active").addClass("geolink");
}).on("dragstart", function (e) {
$(newNote).stopTime("removenote");
}).on("dragend", function (e) {