Fixed individual note marker implementation, closes #78

- Removed forced noteLayer view, now respects current selection just
like an other browse page.
- Made marker replacement it’s own thing, seperate from noteLayer.
- Reduced opacity on noteLayer notes, it makes the selected note stand
out more
This commit is contained in:
Aaron Lidman 2013-11-20 11:43:31 -08:00
parent b5825b2f64
commit 5384ee236c
2 changed files with 14 additions and 15 deletions

View file

@ -2,8 +2,7 @@ OSM.Note = function (map) {
var noteLayer = map.noteLayer,
content = $('#sidebar_content'),
page = {},
noteState = map.hasLayer(noteLayer),
halo;
halo, currentNote;
var noteIcons = {
"new": L.icon({
@ -23,7 +22,7 @@ OSM.Note = function (map) {
})
};
function updateNote(marker, form, method, url) {
function updateNote(form, method, url) {
$(form).find("input[type=submit]").prop("disabled", true);
$.ajax({
@ -31,13 +30,7 @@ OSM.Note = function (map) {
type: method,
oauth: true,
data: {text: $(form.text).val()},
success: function (feature) {
marker = noteLayer.getLayer(marker);
if (feature.properties.status == "hidden") {
noteLayer.removeLayer(marker);
} else if (marker) {
marker.setIcon(noteIcons[feature.properties.status]);
}
success: function () {
OSM.loadSidebarContent(window.location.pathname, page.load);
}
});
@ -51,7 +44,7 @@ OSM.Note = function (map) {
content.find("input[type=submit]").on("click", function (e) {
e.preventDefault();
var data = $(e.target).data();
updateNote(data.noteId, e.target.form, data.method, data.url);
updateNote(e.target.form, data.method, data.url);
});
content.find("textarea").on("input", function (e) {
@ -69,12 +62,10 @@ OSM.Note = function (map) {
content.find("textarea").val('').trigger("input");
var data = $('.details').data();
if (!noteState) map.addLayer(noteLayer);
if (!window.location.hash) {
var coords = data.coordinates.split(',');
OSM.route.moveListenerOff();
map.once('moveend', OSM.route.moveListenerOn);
map.getZoom() > 15 ? map.panTo(coords) : map.setView(coords, 16);
}
@ -87,11 +78,19 @@ OSM.Note = function (map) {
});
map.addLayer(halo);
}
if (map.hasLayer(currentNote)) map.removeLayer(currentNote);
currentNote = L.marker(data.coordinates.split(','), {
icon: noteIcons[data.status],
opacity: 1,
clickable: true
});
map.addLayer(currentNote);
};
page.unload = function () {
if (map.hasLayer(halo)) map.removeLayer(halo);
if (!noteState) map.removeLayer(noteLayer);
if (map.hasLayer(currentNote)) map.removeLayer(currentNote);
};
return page;

View file

@ -43,7 +43,7 @@ function initializeNotes(map) {
} else {
marker = L.marker(feature.geometry.coordinates.reverse(), {
icon: noteIcons[feature.properties.status],
opacity: 0.9,
opacity: 0.8,
clickable: true
});
marker.id = feature.properties.id;